Pro-JobSync
프로스트의 분산 배치 시스템 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과 로드 밸런싱을 통해 애플리케이션의 확장성과 시스템 안정성을 최적화합니다.
사용자 인터페이스

대시보드
작업 현황: 등록된 전체 작업 중 현재 실행 중, 예정 상태, 완료된 작업, 비활성화된 작업 수를 구분하여 실시간 운영 상태를 제공합니다.
처리내역: 일정 기간 동안의 작업 처리 추이를 나타내며, 다양한 색상은 특정 기간에 처리된 작업의 상태를 시각화합니다. 이 차트는 성공, 실패, 러닝 등의 상태를 시간의 흐름에 따라 비교할 수 있게 해줍니다.
시스템 상태: 서버의 가동 시간과 함께 애플리케이션, 데이터베이스, 디스크, 외부 서버 등 주요 컴포넌트의 정상 동작 여부를 실시간으로 점검할 수 있습니다.
시스템 현황: CPU, 메모리, 디스크 등 주요 시스템 자원의 사용률을 실시간으로 확인하여 리소스 병목이나 과부하 발생 가능성을 사전에 인지할 수 있습니다.

일반작업
작업 목록: 등록된 전체 작업이 목록 형태로 표시되며, 각 작업의 이름, 스케줄 유형, 핸들러, 상태 등을 한눈에 확인할 수 있습니다.
스케줄 유형: 각 작업이 수동 실행(NONE)인지, 특정 시간에 자동 실행(CRON)되는지 등 실행 주기를 확인할 수 있습니다.
핸들러 / GLUE 유형: 작업 실행 시 연결되는 핸들러 클래스명과 실행 방식(BEAN 등)을 확인하여 실행 로직의 흐름을 쉽게 파악할 수 있습니다.
상태 관리 스위치: 각 작업별로 대기 상태(on/off)를 전환할 수 있어 작업 활성화 여부를 빠르게 제어할 수 있습니다.
검색 및 필터: 작업 그룹 선택, 키워드 검색, 상태별 필터를 통해 원하는 작업을 빠르게 찾고 관리할 수 있습니다.

핸들러관리
핸들러 목록: 등록된 모든 핸들러를 리스트 형태로 확인할 수 있으며, 작업 이름과 함께 기능 설명이 함께 제공됩니다.
제목 / 배치명: 핸들러의 용도나 테스트 목적 등을 제목으로 표시하며, 연결된 배치 이름을 통해 핸들러의 실행 환경도 함께 파악할 수 있습니다.
검색 및 필터: 핸들러명 검색, 작업 그룹 선택 등의 필터 기능을 통해 원하는 핸들러를 빠르게 조회할 수 있습니다.
수정 일시: 해당 핸들러가 마지막으로 수정된 일시를 확인할 수 있어 최근 변경 이력을 추적하는 데 유용합니다.

작업 실행 현황
작업 목록 패널: 작업별로 실행 여부, 핸들러 이름, 작성자 등의 정보를 확인하고 개별 작업을 선택해 상세 실행 정보를 볼 수 있습니다.
실행 지표 요약: 선택한 작업의 CPU·메모리 평균 사용량, 최근 실행 성공률, 평균 실행 시간, 마지막 실행 시점을 요약으로 보여줍니다.
실행 이력 탭: 작업의 실제 실행 시작/종료 시간, 수행 시간(초), 실행 결과(성공/실패)를 확인할 수 있어 문제 발생 여부를 빠르게 파악할 수 있습니다.
성능/오류/로그 정보 탭: 작업 실행과 관련된 성능 지표, 오류 내역, 서버 로그, 핸들러 로그 등을 탭으로 나누어 상세하게 확인할 수 있습니다.

사용자 이력 감사
이력 리스트: 사용자 ID, 사용자명, 수행한 행동 유형(조회, 페이지 방문 등), 행동 상세 내용, API 경로, 실행 시간, IP 주소 등을 표 형식으로 확인할 수 있습니다.
검색 필터: 기간 설정, 행동 유형, 키워드 검색, 그룹 필터 등을 통해 원하는 로그를 빠르게 조회할 수 있습니다.
파라미터 보기: 각 요청에 전달된 파라미터 값을 별도로 확인할 수 있어, 사용자의 접근 방식과 요청 내용을 상세하게 분석할 수 있습니다.
감사 추적 기능: 로그인을 포함한 시스템 내 주요 기능 접근 기록이 저장되어 있어, 보안 감사, 이상 행위 탐지, 사용자 책임 추적 등에 활용됩니다.

서버 리소스 리포트
핸들러 목록: 등록된 모든 핸들러를 리스트 형태로 확인할 수 있으며, 작업 이름과 함께 기능 설명이 함께 제공됩니다.
제목 / 배치명: 핸들러의 용도나 테스트 목적 등을 제목으로 표시하며, 연결된 배치 이름을 통해 핸들러의 실행 환경도 함께 파악할 수 있습니다.
검색 및 필터: 핸들러명 검색, 작업 그룹 선택 등의 필터 기능을 통해 원하는 핸들러를 빠르게 조회할 수 있습니다.
수정 일시: 해당 핸들러가 마지막으로 수정된 일시를 확인할 수 있어 최근 변경 이력을 추적하는 데 유용합니다.
개인정보처리방침
-
수집하는 개인정보의 항목 및 수집방법
- 수집항목
- 수집방법
- DSA Full Course
- 개인정보의 수집 및 이용목적
- 수집한 개인정보의 제공
-
수집한 개인정보의 보유
- 프로스트 정책에 따른 정보 보유
- 관련 법령에 따른 정보의 보유
- 수집한 개인정보의 국외이전
- 개인정보의 파기 절차 및 방법
- 개인정보 자동 수집 장치의 설치ㆍ운영 및 그 거부에 관한 사항
- 개인정보의 안전성 확보 조치
- 이용자의 권리와 그 행사방법
-
개인정보보호책임자 및 고객서비스에 관한 사항
- 고객서비스 담당부서
- 개인정보보호책임자
- 고지의 의무
이메일주소무단수집거부
본 홈페이지에 게시된 이메일 주소가 전자우편 수집 프로그램이나 그 밖의 기술적 장치를 이용하여 무단으로 수집되는 것을 거부하며, 이를 위반 시 정보통신망법에 의해 형사 처벌됨을 유념하시기 바랍니다.
게시일: 2023년 3월 25일
Credits
Home
- DevOpsSec: Image by Wayhomestudio on Freepik
- Mis: Image by Wayhomestudio on Freepik
- PC/Mobile: Image by Benzoix on Freepik
- Specialist: Image by Freepik
- Team: Image by rawpixel.com on Freepik
- Software: Image by rawpixel.com on Freepik
Membership
- Login: Image by rawpixel.com on Freepik
- Join: Image by rawpixel.com on Freepik
Company Intro
- About: Image by Pixabay
- Profile: Image by Image by rawpixel.com on Freepik
Culture
- Work Life: Image by Andrey Popov on Adobe Stock
- Heal Family: Image by Rawpixel.com on Adobe Stock
- Horizontal: Image by Pixabay
- Trust: Image by Jon Anders Wiken on Adobe Stock
MIS/ERP/EIP
DevSecOps
- Security: Image by rawpixel.com on Freepik
- Automation: Image by Freepik
- Monitoring: Image by rawpixel.com on Freepik
- Culture: Image by Murrstock on Adobe Stock
Web/Mobile
- Front-end: Image by Freepik
- Back-end: Image by Freepik
- Database: Image by DCStudio on Freepik
- API: Image by Freepik
Recruit Notice
- Join Our Team: Image by Freepik