๐ ๊ฐ์
Spring Batch ๊ธฐ๋ฐ ๋ฐฐ์น ์์ ์ ์ค์ผ์ฅด๋ง ๋ฐ ์ด๋ ฅ ํ์ธํ๋๋ฐ Jenkins๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ค.
Jenkins๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋๋ ๋ถํธํจ๋ค์ด ์์๋ค.
- (๊ฐ์ฅ ํฐ ๋ถํธํจ) ๋์ ๋ด์ง ์์ผ๋ฉด ์ด์คํ๋ฅผ ํ๊ธฐ ๊น๋ค๋กญ๋ค. ThinBackup ? NAS ?
- Spring Batch ์์ ์ ๋ฑ๋กํ๊ธฐ ์ํ ๋ณ๋ Jenkins ์ค์ or Jenkinsfile์ ๋ง๋ค์ด์ผ ํ๋ค.
Jenkins๋ ์ข์ง๋ง, ๋ค๋ฅธ ๋์์ด ์์์ง ์ฐพ์๋ณด๋ ๊ทธ ๊ณผ์ ์ ๊ณต์ ํ๊ณ ์ ํ๋ค.
๐ Spring Batch ๊ด๋ฆฌ ๋๊ตฌ Jenkins ๋์ ํ์๊ธฐ
Spring Batch ๊ด๋ฆฌ ๋๊ตฌ Jenkins ๋์์ ์ฐพ์๋ณด์.
Spring Batch ๊ด๋ฆฌ ๋๊ตฌ๋ก์จ ์ ์ ํ๋ค๊ณ ํ๋จํ๋ ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ๋ค.
- IDC ์ด์คํ๋ฅผ ์ ๊ณตํ๋๊ฐ (์๋ํ๋ง๊ณ ๋ฅ๋ํ๋ก ๋ง์ด๋ค.)
- ๋ฐฐ์น ์์ ์ํ ์ด๋ ฅ ํ์ ์ด ์ฉ์ดํ๊ฐ
- ๋ฐฐ์น ์์ ์ ์ํฅ์ผ๋ก ์๋ฒ ๋ฆฌ์์ค์ ์ด์๊ฐ ๋ฐ์ํ์ง ์๋๊ฐ
- ๊ด๋ฆฌ ๋๊ตฌ๊ฐ ์ง์์ ์ผ๋ก ์ ์ง๋ณด์๋๊ณ ์๋๊ฐ
- ๊ด๋ฆฌ ๋๊ตฌ์ ์ปค๋ฎค๋ํฐ๊ฐ ํ์ฑํ๋์ด ์๋๊ฐ
Spring Batch Admin
Spring Batch Job์ ๊ด๋ฆฌํ๊ณ ๋ชจ๋ํฐ๋ง ํ ์ ์๋ ์น ์ฑ์ด๋ค.
๊ณต์ GitHub Repo์์๋ ๋งํ๊ณ ์๋ฏ์ด ๋์ด์ ์ฌ์ฉํ์ง ๋ง๊ณ Spring Cloud Data Flow๋ฅผ ์ฌ์ฉํ๊ธธ ๊ถ์ฅํ๊ณ ์๋ค.
https://github.com/spring-attic/spring-batch-admin
Spring Cloud Data Flow
Spring Cloud Data Flow(SCDF)๋ Steaming, Batch ์์ ์ ์ํํ๋ ๊ฒ์ ๋์์ฃผ๋ ๋๊ตฌ์ด๋ค.
์์์๋ ์ธ๊ธํ๋ ๋ฐ์ ๊ฐ์ด Spring์์ ๊ถ์ฅ๋๋ ๋ฐฉ์์ด๋ค.
๊ธฐ์กด Spring Batch์ Job์ด ์๋๋ผ Spring Cloud Task๋ผ๋ ๋จ์๋ก ๊ด๋ฆฌ๋๋ค.
๊ธฐ์กด Spring Batch ๊ธฐ๋ฐ ์ฝ๋๋ค์ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋์ง๋ ์ฃผ์ ๊ฒํ ํฌ์ธํธ๊ฐ ๋ ๊ฒ ๊ฐ๋ค.
Spring Batch ๋ฉํ๋ฐ์ดํฐ(e.g. Job Paratmeter)๊ฐ ํฌํจ๋ ๋์๋ณด๋๋ฅผ ์ ๊ณตํ๋ค.
https://spring.io/projects/spring-cloud-dataflow
Spring Scheduler
Spring Scheduler๋ ์ค์ผ์ฅด๋ง์ ๋ฐ๋ผ ์ ํด์ง ์์ ์ ์ํํด์ฃผ๋ ๊ธฐ๋ฅ? ๋ชจ๋? ์ด๋ค.
์๋์ผ๋ก ์์
์ ์ํํด์ฃผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ๋ค์ค ์ธ์คํด์ค ํ๊ฒฝ์์ ๋์ ์ํ์ ๋ง๊ธฐ ์ํด ์ฃผ๋ก Quartz์ ๊ฐ์ด ์ฌ์ฉ๋๋ค.
Spring Scheduler๋ก ์ํํ๋ ๊ฒฝ์ฐ Spring Application์ด ๋์์ง์ฑ๋ก ๋ฆฌ์์ค๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ค.
๊ทธ๋ฆฌ๊ณ Spring Batch์ ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํจ์ผ๋ก์จ ์ค์ผ์ฅด๋ง๊ณผ ๋ฐฐ์น ์์ ๊ฐ์ ์ํฅ์ ๋ฐ์ ์ ์๋ ๊ตฌ์กฐ์ด๋ค.
์๋ฅผ ๋ค๋ฉด, ๋ฐฐ์น ์์ ์ ์ํํ๋ค๊ฐ OOM์ด ๋ฐ์ํ๋ฉด ํ๋ก์ธ์ค๊ฐ ๋ค์ด๋์ด ์ค์ผ์ฅด๋ง๊ณผ ๋ฐฐ์น ์์ ๋ชจ๋ ์ํ๋์ง ๋ชปํ๋ค.
https://github.com/spring-guides/gs-scheduling-tasks
K8s CronJob
K8s ํ๊ฒฝ์์ ์ฌ์ฉํ ์ ์๋ ์ค์ผ์ฅด ์์ ๋ฆฌ์์ค์ด๋ค.
์ค์ผ์ฅด๋ง ํํฉ์ด๋ ์ํ ๊ฒฐ๊ณผ ์ด๋ ฅ ๊ด๋ฆฌ, ๋ชจ๋ํฐ๋ง ๋ฑ์ ๋ถํธํจ์ด ์์ด์ ์ค์ ์ด์ ๋๊ตฌ๋ก ์ฌ์ฉํ๊ธฐ ์ด๋ ต๋ค๊ณ ์๊ฐํ๋ค.
CronJob์ผ๋ก๋ง ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ ๋ณ๋๋ก ์์ฒด ๊ตฌ์ถํด์ผํ๋ ๊ธฐ๋ฅ๋ค์ด ๋ง๋ค.
https://kubernetes.io/ko/docs/tasks/job/automated-tasks-with-cron-jobs/
Airflow
ํ์ด์ฌ ๊ธฐ๋ฐ์ Workflow๋ฅผ ์ ์ํ๊ณ ์ค์ผ์ฅด๋ง ๋ฐ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํ ์คํ์์ค ํ๋ซํผ์ด๋ค.
Schduler ์ญํ ๋ก ์ ์ํ๋ ์ ์๋ ์ ๋๋ก๋ง ์ฌ์ฉ๋ ์ ์์ ๊ฒ ๊ฐ๋ค.
์ถ๊ฐ๋ก Workflow์ Job์ ๋๋ ์ ๊ฐ์ด ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๋ ํ์ฉ๋๋ ๋์ ์ ์์ผ๋ ๋ณต์ก๋๋ ๊ด๋ฆฌํฌ์ธํธ๊ฐ ๋ง์ด ๋์ด๋ ๊ฒ ๊ฐ๋ค.
์ด ๋ถ๋ถ์ Jenkins์์๋ ๋์ผํ๊ฒ ๋ฐ์ํ ์ ์๋ ๋ถ๋ถ์ผ๋ก ๋ก์ง ์ํ๊ณผ ์ค์ผ์ฅด๋ฌ์ ์ญํ ์ ์ ๋ถ๋ฆฌํด์ ์ฐ๋๋ก ๋ ธ๋ ฅ ์ค์ด๋ค.
https://github.com/apache/airflow
๐ฌ ๋งบ์๋ง
์ง๊ธ๋ Jenkins๋ฅผ ๋ฉ์ธ์ผ๋ก ์ฌ์ฉํ๊ณ ์์ด์.
Spring Cloud Data Flow๋ฅผ ์กฐ๊ธ ๋ ์ดํด๋ณผ ์๊ฐ์ ๋๋ค.
ํ์ฌ๋ ์ ์ ํ Spring Batch ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ์ฐพ์ผ๋ฌ ๋ค๋๊ณ ์์ด์. ๐
์ข์ ๋๊ตฌ๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์. ๐โ๏ธ
๋ค์ ํธ์ [2024/๊ฐ๋ฐ] - Spring Cloud Data Flow ๋ก์ปฌ ๊ตฌ์ถ๊ธฐ๋ก ์ฐพ์๋ต๊ฒ ์ต๋๋ค.
'2024 > ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Spring Cloud Data Flow ํบ์๋ณด๊ธฐ - Architecture (1) (0) | 2024.08.10 |
---|---|
Spring Cloud Data Flow ๋ก์ปฌ ๊ตฌ์ถ๊ธฐ (0) | 2024.08.01 |
GenAI ? LLM ? (2) | 2024.04.22 |