반응형
Spring Cloud Dataflow(SCDF) 란?
Cloud Foundry와 Kubernetes 환경에서 스트리밍(Streaming) 및 일괄 처리(Batch Data Processing) 파이프라인을 구축하기 위한 마이크로서비스(Microservice) 기반 툴킷.
데이터 파이프라인은 Spring Cloud Stream 또는 Spring Cloud Task 마이크로서비스 프레임워크를 사용하여 구축된 Spring Boot 앱으로 구성.
SCDF는 ETL부터 가져오기/내보내기, 이벤트 스트리밍, 예측분석에 이르기까지 다양한 데이터 유스케이스를 지원.
특징
- SCDF는 파이프라인을 배포하기 위해 Spring Cloud Daployer를 사용.
- 다양한 시나리오를 위해 구축된 스타터 앱을 제공하고 있어 학습과 실험에 용이
- 친숙한 Spring Boot 스타일 프로그래밍 모델을 사용하여 Custom 가능
- 스트림 파이프라인 DSL을 사용하여 출력과 입력을 쉽게 정의
- 파이프라인을 구축하기 위한 DashBoard GUI 제공
- Wavefront, Prometheus, influx DB 또는 다른 시스템을 사용하여 모니터링 제공
서버 구성요소
위 그림과 같이 Data Flow Server와 Skipper Server 두 개의 핵심 요소로 구성.
SCDF에 접근하는 주요 접근점으로는 Data Flow Server의 Rest API를 하며 Data Flow Server와 Shell 모두 통신 시 Web API를 사용
- Cloud Foundry, Kubernetes, Local에서 서버 실행 가능
Data Flow Server 의 역할
- DSL(Domain Specific Language) 기반의 스트림과 일괄 작업 정의 파싱
- Stream, Task, Batch job을 검증하고 유지
- JAR, Docker Image 같은 아티팩트를 DSL에서 사용할 이름으로 등록
- Batch job을 1개 이상의 플랫폼에 배포
- Job Scheduling을 플랫폼에 위임
- Task와 Batch job의 상세 실행기록을 조회
- 메세지 입출력을 구성하는 설정 프로퍼티를 Stream에 추가하고 배포 프로퍼티를 전달
- Stream 배포를 Skipper에 위임
- 감사 작업 (Stream 생성, 배포, 배포 취소, Batch 생성, 실행, 삭제)
- Stream과 Batch Job DSL 자동완성 기능 제공
Skipper Server 의 역할
- Stream을 1개 이상의 플랫폼에 배포
- Stream 업그레이드 및 롤백
- 각 Stream의 Manifest file(배포된 애플리케이션의 최종 정보 포함) 기록 저장
Database
Data Flow Server와 Skipper Server에는 RDMS 필요.
- 기본적으로 내장된 H2 Database 사용
- 지원 DB: H2, HSQLDB, MySQL, Oracle, Postresql, DB2
참고&출처
https://dataflow.spring.io/docs/concepts/streams/ (Version 2.9.6)
반응형