오픈소스를 활용한 배치 처리 플랫폼

2021. 4. 5. 17:31spring

728x90
반응형

1. 백엔드 개념

사용자의 추가적인 개입 없이 서비스를 지원하는 프로그램 또는 서비스

2. 배치 처리 플랫폼

백엔드 서비스 중 중요한 솔루션 중 하나

배치 Job : 시스템 사용자가 주기적으로 또는 특정시간에 자동으로 실행되도록 하는 프로그램

배치처리 플랫폼 : 배치 job을 실행하는 기반 프로그램

> Log, UI (Dashboard), Monitoring & Alert, Scheduler, Failover, Load Balancing

3. Batch Job 특징

  • 특정시간에 동작해야 한다.
  • 대부분 db or file 처리이다.
  • 성능을 위해서 java 이외의 언어로 해결할 수 있다.
  • 특정 시간 안으로 끝내야 하는 것은 거의 없다.
  • 초기 개발 외에는 유지보수는 거의하지 않는다.
  • 인수인계 할 때 빠트리는 경우가 많다.

4. 기존 배치 시스템/플랫폼 유형

가. linux crontab 이용한 쉡 스크립트

나. 웹 프레임워크 위에 web call 호출방식

다. 웹 프레임워크 위에 Quartz 이용

라. 자체 프레임워크 / 플랫폼 개발 (일반적인 배치, 서비스만의 특수한 상황을 해결)

마. Spring Batch

5. 배치 개발 시 장애발생 케이스

배치에 대한 정상 실행여부에 대한 모니터링이 쉽지 않다.

가. 개발환경이 제대로 준비되지 않아 테스트를 못함 (syntax 문제 등 예측 불가능)

나. 중복실행

다. 잘못만든 쿼리 문제

라. 코드오류

마. 서비스 DB 연결에 대한 타임아웃

바. 서버 장애

사. API 연동 장애

아. 메모리 Leak

서비스가 성장함에 따라 Batch Job이 복잡해지고 양이 많아져 서버 성능이 많이 저하되면서 

실패율이 높아짐.

6. 배치 처리 플랫폼 요구사항

가. 스케줄러

나. 쓸만한 대시보드 ui

다. 대시보드를 통해 관리자 확인 기능 

 - 배치 job 리스트 

 - 다음 실행 시간을 확인 

라. Job 실패에 대한 SMS / Mail 알림

마. Web에서의 Log 정보 확인

바. API 존재

사. Batch Job Framework 와 연동 가능 

아. Load balancing 기능

자. Fail over / Fail back 기능

차. 확장 가능한 플러그인 지원

카. Retry 가능 

타. 운영하기 쉬워야 하고 노드 확장성 존재

7. Batch Job Framework, Spring batch

가. 주요 concept

the concept of spring batch framework
the Job, Job instance, JobExecution of Spring batch
step, stepExecution 추가

 

나. 장점

  • Batch 개념을 명확히 할 수 있어 좋음. Job, Step, Reader, Writer, Processor
  • Job Repository 를 통해 Job 실행 상태 확인
  • Skip, Retry, Restart 가능
  • Commit Interval 지정
  • Scalability 제공 ( remote chunking, partitioning) 
  • 순차 및 병렬 실행 가능
  • Spring Framework 를 같이 연동해서 사용 편리
  • AOP (보안, 로깅, 트랜잰셕) 처리
  • 좋은 Utility Class 가 많음.
  • Document 와 포럼 게시판에서 좋은 정보

다. 관련 참고 문서

docs.spring.io/spring-batch/docs/current/reference/html/index.html

 

Spring Batch - Reference Documentation

Welcome to the Spring Batch reference documentation! This documentation is also available as single html and pdf documents. The reference documentation is divided into several sections: The following appendices are available: Lucas Ward, Dave Syer, Thomas

docs.spring.io

8. Batch 처리 Framework, 허드슨 또는 zenkins

가. 배치 운영 플랫폼

배치 운영 플랫폼

나. 배치 Job 운영을 위한 플러그인 개발 포인트

다. spring batch dashboard in zenkins ui (dashboard)

대시보드에 구현해야 될 기능1. 통계
대시보드가 구현해야할 기능4. Job 실패 시 sms/메일 알림

라. 장점

  • 실행로그
  • Plug in 개발 및 활용. Dashboard UI, 모니터링...
  • 확장 가능한 Plugin을 이용하여 커스터마이징
  • 노드확장 가능
  • 배포서버와의 api 연동
  • 문서 참조 내용이 많음
  • 로드밸런싱 기능
  • 간단한 Fail over 기능

 

728x90
반응형