롯데ON, Batch Scheduler 내재화로 비용 절감 및 운영 효율 UP!
by DD
6개월 전
조회수 7
외부 Batch Scheduler 솔루션의 운영 비용 절감을 위해 내재화를 시작함
Quartz Scheduler를 기반으로, 공통 라이브러리 및 BLUE-GREEN 배포 환경을 고려하여 시스템을 구축함
중복 실행 방지, 무한 RUNNING 등 다양한 예외 케이스를 해결하고, 안정적인 Batch 환경을 구축함
내재화 아키텍처 설계: 안정성과 효율성의 균형
내재화 과정에서 Quartz Scheduler를 활용하여 Batch 실행을 관리하고, 공통 라이브러리를 통해 각 MSA 프로젝트와 통합했다. 구체적으로 API 호출 방식을 통해 Batch 실행을 요청하고, Kafka를 활용하여 모니터링 및 결과 전송을 구현했다. 따라서 BLUE-GREEN 배포 환경에서도 안정적인 운영이 가능하도록 설계되었다.
중복 실행 및 무한 RUNNING 방지 전략
내재화 과정에서 중복 실행과 무한 RUNNING 문제를 해결하기 위해 다양한 기법을 도입했다. Queue 사이즈 제한 및 TTL(Time To Live) 개념을 도입하여 중복 실행을 방지하고, afterJob 수행 보장을 통해 무한 RUNNING 문제를 해결했다. 반면, 이러한 개선은 Batch 작업의 안정성을 높이는 데 기여했다.
배포 환경 고려 사항: BLUE-GREEN 배포
BLUE-GREEN 배포 환경에서 Scheduler의 동작을 제어하기 위해 리더 선출 방식을 구현했다. DB Lock을 활용하여 리더 서버를 조회하고, 최신 Tag의 서버를 리더로 선출했다. 따라서 배포 후 기존 Pod와 신규 Pod가 공존하는 상황에서도 Scheduler의 일관성을 유지할 수 있었다. 결과적으로 서비스 안정성을 확보했다.