프로스트의 분산 배치 시스템 Pro-JobSync를 소개합니다.

소개

모던 아키텍처(MA) 기반의 분산 작업 스케줄링 솔루션으로, 빠른 개발, 간단한 학습, 가벼운 무게, 확장 용이성을 핵심 설계 목표로 합니다.

JOB-SYNC 분산 작업 스케줄링 시스템은 아키텍처 설계부터 데이터 관리, 보안, 모니터링까지 전반적인 시스템 지원을 제공합니다. 이 시스템은 문제 해결과 사용자 경험 최적화를 위한 직관적 도구를 통해 효율적인 데이터 처리와 분석 작업을 가능하게 합니다.

JOB-SYNC는 데이터 처리와 분석 작업을 자동화하기 위한 고가용성 솔루션으로 주기적이거나 이벤트 기반으로 대량의 데이터를 분산 처리하고, 중앙 집중식으로 통합 관리 가능합니다.

웹 페이지를 통한 간편한 작업 관리, 동적 관리 기능, 고가용성(HA), 분산 처리 및 HA, 등록 센터, 탄력적 확장성 및 축소성, 다양한 트리거 전략, 스케줄링 만료 전략, 블로킹 처리 전략, 작업 시간 초과 제어, 작업 실패 재시도 및 알림, 라우팅 전략, 작업 진행 상황 모니터링 등을 포함합니다.


주요 기능

동적 관리 기능

사용자가 웹 페이지를 통해 작업을 쉽게 생성, 읽기, 수정 및 삭제할 수 있으며, 실시간으로 작업 상태를 변경하고, 실행 중인 작업을 즉시 중지할 수 있습니다.

스케줄링 센터의 고가용성(HA) 및 Executor의 분산 처리

중앙 집중식 설계를 통해 스케줄링 센터를 클러스터로 배포될 수 있으며, 이를 통해 고가용성을 달성할 수 있습니다. 또한 Executor의 작업은 분산하여 실행되며 클러스터로 배포될 수 있어 실행의 고가용성을 보장합니다.


다양한 트리거 및 스케줄링 전략

Executor는 정기적으로 작업을 자동 등록하며, 스케줄링 센터는 이러한 작업을 감지하고 실행을 트리거합니다. 수동으로 Executor 주소를 입력하는 것도 지원됩니다. 또한 새로운 Executor가 추가되거나 제거될 때, 다음 스케줄링에서 작업이 재분배 됩니다. 또한 Cron 트리거, 고정 간격 트리거, API 트리거, 수동 트리거, 부모-자식 작업 트리거, 스케줄링 만료 전략, 블로킹 처리 전략 등을 제공합니다. 이를 통해 사용자는 다양한 요구 사항에 맞춰 유연하게 작업 스케줄링을 할 수 있습니다.


실패 알림 및 재시도 메커니즘

작업 실패 시 이메일, SMS, KakaoTalk 등 다양한 방법으로 알림을 제공하며, 사용자 정의 작업 실패 재시도 횟수를 설정할 수 있습니다. 이를 통해 사용자는 시스템의 신뢰성과 오류 대응 시간을 단축시킬 수 있습니다.

작업 진행 상황 모니터링 및 로그 관리

작업 진행 상황을 실시간으로 모니터링 할 수 있으며, 롤링 실시간 로그 기능을 통해 스케줄링 결과를 온라인으로 확인하고 롤링 방식으로 실행 로그를 실시간으로 확인할 수 있습니다.


아키텍처

현행 아키텍처
현행 아키텍처

Job Scheduler: 작업을 스케줄링하고 관리하는 효과적인 웹 애플리케이션입니다. 사용자는 작업 생성, 수정, 삭제를 손쉽게 관리할 수 있으며, 배치 실행기의 상태를 모니터링할 수 있습니다. 로그 관리 기능은 시스템의 실행 상태를 실시간으로 추적하고 분석하여 중요한 인사이트를 제공합니다. 작업 실행에 실패한 경우, 설정된 알람을 통해 즉각적인 통지를 받을 수 있습니다. 또한, 작업 간의 종속성을 정의하여 복잡한 작업 흐름과 스케줄을 자동으로 조율할 수 있습니다.

Task Executor: 실제 작업 실행에 필수적인 런타임 환경을 제공합니다. Java 개발 환경에 최적화되어 있으며, 개발자는 이를 통해 탄력적인 배치 프로세스를 구현할 수 있습니다. 각 Task Handler는 구체적인 작업 단위를 실행하고, 여러 인스턴스에 분산 배치되어 높은 가용성을 보장합니다. 이 시스템은 작업 부하가 증가하거나 시스템이 확장될 때, 효율적인 작업 분배와 관리를 가능하게 합니다. Task Executor를 통해 개발자는 복잡한 데이터 처리 작업을 효과적으로 관리할 수 있습니다.

목표 아키텍처
목표 아키텍처

Vue.js: 클라이언트 인터페이스 개발에 Vue.js 프레임워크를 적용, 반응형 UI를 구현합니다.

Prometheus와 Grafana: 시스템 모니터링을 위해 Prometheus로 데이터를 수집하고 Grafana로 시각화합니다.

ELK Stack: 로그 관리 및 트러블슈팅을 위해 Elasticsearch가 로그 데이터를 저장하고, Logstash가 로그를 수집, Kibana가 데이터를 시각화합니다.

Kubernetes: 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화합니다.

Docker: Outscaling과 로드 밸런싱을 통해 애플리케이션의 확장성과 시스템 안정성을 최적화합니다.


사용자 인터페이스

대시보드, 스케줄링 보고서

작업 수: 현재 등록되어 있는 작업의 총 개수를 나타냅니다.

트리거 수: 작업이 실행되어 생성된 트리거 로그의 총 개수입니다.

배치 수: 시스템에 등록된 배치 프로세스를 수행하는 Executor의 총 개수를 보여줍니다.

핸들러 수: 모든 Executor에 등록된 작업을 처리하는 핸들러의 총 개수를 표시합니다.

처리비율: 각 색상은 시스템에서 현재 진행 중인 다양한 상태의 작업을 나타냅니다. 초록색은 '성공', 빨간색은 '실패', 노란색은 '러닝' 의 상태입니다.

트리거비율: 시스템에 의해 발생된 트리거 로그의 유형을 나타냅니다. 각 색상은 트리거의 다른 유형을 나타냅니다.

에이전트비율: 배치 프로세스를 수행하는 에이전트들이 어떤 유형에 속하는지를 나타냅니다. 다른 색상은 시스템 내의 에이전트 유형을 분류하여 표시합니다.

처리내역: 일정 기간 동안의 작업 처리 추이를 나타내며, 다양한 색상은 특정 기간에 처리된 작업의 상태를 시각화합니다. 이 차트는 성공, 실패, 러닝 등의 상태를 시간의 흐름에 따라 비교할 수 있게 해줍니다.

전체 메뉴

대시보드: 애플리케이션의 핵심 정보를 요약하여 보여주는 허브입니다. 모든 중요한 지표를 이곳에서 확인할 수 있습니다.

작업 관리: 개별 작업에 대한 상세 정보와 현재 상태를 조회하고, 관리 작업을 수행할 수 있는 공간입니다.

작업 로그: 작업이 실행될 때마다 생성되는 로그를 상세히 분석하고 검토할 수 있습니다. 문제 해결과 성능 최적화에 필수적인 정보를 제공합니다.

배치 관리: 배치 프로세스와 관련된 Executor의 등록, 관리, 모니터링을 담당합니다. 시스템의 자동화된 작업을 효과적으로 관리할 수 있습니다.

핸들러 관리: 작업 처리 단위인 Task Handler를 관리하는 공간으로, Executor에 할당되는 작업들을 효율적으로 배분하고 조정합니다.

사용자 관리: 사용자 계정에 관련된 모든 관리 작업을 수행합니다. 여기서는 사용자를 생성, 수정, 삭제할 수 있고, 권한을 할당하는 등의 작업을 진행할 수 있습니다.

개인정보처리방침

  1. 수집하는 개인정보의 항목 및 수집방법
    1. 수집항목
    2. 수집방법
    3. DSA Full Course
  2. 개인정보의 수집 및 이용목적
  3. 수집한 개인정보의 제공
  4. 수집한 개인정보의 보유
    1. 프로스트 정책에 따른 정보 보유
    2. 관련 법령에 따른 정보의 보유
  5. 수집한 개인정보의 국외이전
  6. 개인정보의 파기 절차 및 방법
  7. 개인정보 자동 수집 장치의 설치ㆍ운영 및 그 거부에 관한 사항
  8. 개인정보의 안전성 확보 조치
  9. 이용자의 권리와 그 행사방법
  10. 개인정보보호책임자 및 고객서비스에 관한 사항
    1. 고객서비스 담당부서
    2. 개인정보보호책임자
  11. 고지의 의무

이메일주소무단수집거부

본 홈페이지에 게시된 이메일 주소가 전자우편 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 수집되는 것을 거부하며, 이를 위반 시 정보통신망법에 의해 형사 처벌됨을 유념하시기 바랍니다.

게시일: 2023년 3월 25일

Credits

Home
  1. DevOpsSec: Image by Wayhomestudio on Freepik
  2. Mis: Image by Wayhomestudio on Freepik
  3. PC/Mobile: Image by Benzoix on Freepik
  4. Specialist: Image by Freepik
  5. Team: Image by rawpixel.com on Freepik
  6. Software: Image by rawpixel.com on Freepik
Membership
  1. Login: Image by rawpixel.com on Freepik
  2. Join: Image by rawpixel.com on Freepik
Company Intro
  1. About: Image by Pixabay
  2. Profile: Image by Image by rawpixel.com on Freepik
Culture
  1. Work Life: Image by Andrey Popov on Adobe Stock
  2. Heal Family: Image by Rawpixel.com on Adobe Stock
  3. Horizontal: Image by Pixabay
  4. Trust: Image by Jon Anders Wiken on Adobe Stock
MIS/ERP/EIP
  1. ERP: Image by Freepik
  2. EIP: Image by Freepik
DevSecOps
  1. Security: Image by rawpixel.com on Freepik
  2. Automation: Image by Freepik
  3. Monitoring: Image by rawpixel.com on Freepik
  4. Culture: Image by Murrstock on Adobe Stock
Web/Mobile
  1. Front-end: Image by Freepik
  2. Back-end: Image by Freepik
  3. Database: Image by DCStudio on Freepik
  4. API: Image by Freepik
Recruit Notice
  1. Join Our Team: Image by Freepik