Spring Cloud Data Flow

이진호·2023년 3월 5일
0

Spring Cloud Data Flow

목록 보기
1/1
post-thumbnail

Spring Cloud Data Flow

Spring Cloud Data Flow는 Cloud Foundry와 Kubernetes에서 스트리밍 및 배치 데이터 처리 파이프라인을 구축하기 위한 마이크로서비스 기반 도구 세트입니다.

데이터 처리 파이프라인은 Spring Cloud Stream 또는 Spring Cloud Task 마이크로서비스 프레임워크를 사용하여 구축된 Spring Boot 앱으로 구성됩니다.

이로 인해 Spring Cloud Data Flow는 import/export, 이벤트 스트리밍 및 예측 분석까지 다양한 데이터 처리 유스 케이스에 이상적입니다.

Architecture

Server Components

Spring Cloud Data Flow는 두 가지 핵심 서버로 구성.

  • Data Flow 서버
  • Skipper 서버

Data Flow Server

  • DSL(Domain-Specific Language) 기반 스트림, 배치 job 정의 파싱.
  • 스트림, 태스크, 배치 job 정의를 검증하고 저장(persist)
  • jar나 도커 이미지같은 아티팩트를 DSL에서 사용할 이름에 등록.
  • 배치 job을 하나 이상의 플랫폼에 배포.
  • job 스케줄링을 플랫폼에 위임.
  • 태스크와 배치 job의 상세 실행 내역 질의.
  • 스트림에 메시징 입출력을 구성하는 설정 프로퍼티를 추가하고, 배포 프로퍼티(초기 인스턴스 수, 메모리 요구 사항, 데이터 파티셔닝 등)를 전달.
  • 스트림 배포를 Skipper에 위임.
  • 감사(Auditing)작업 (스트림 생성, 배포, 배포 취소(undeployment 및 배치 생성, 실행, 삭제).
  • 스트림, 배치 job을 위한 DSL 탭 자동 완성 기능 제공.

Skipper Server

  • 스트림을 하나 이상의 플랫폼에 배포.
  • 하나 이상의 플랫폼에서 스트림을 업그레이드 및 롤백, 상태 기계(state machine) 기반 blue/green 업데이트 전략을 사용.
  • 각 스트림의 매니페스트 파일(어떤 애플리케이션이 배포되었는지에 대한 최종 정보를 가지고 있음) 히스트리를 저장.

Database

Data Flow 서버와 Skipper 서버를 사용하려면 RDBMS가 설치되어 있어야 함. 이 서버들은 기본적으론 임베디드 H2 데이터베이스를 사용. 외부 데이터베이스를 사용하려면 서버 설정 수정이 필요. H2, HSQLDB, MySQL, Oracle, Postgresql, DB2, SqlServer를 지원. 필요한 스키마들은 각 서버가 시작할 때 자동으로 생성.

Security

Data Flow와 Skipper Server executable jar는 관련 REST 엔드포인트들을 안전하게 보호할 땐 OAuth 2.0 인증을 사용. 접근이 필요할 땐 기본 인증이나 OAuth2 액세스 토큰을 사용하면 됨. OAuth provider의 경우 LDAP을 포괄적으로 지원하는 CloudFoundry UAA(User Account and Authentication) 서버를 권장.

출처

0개의 댓글