사용자 지정 흐름을 위한 버전 제어¶
Openflow는 GitHub Git 리포지토리 클라이언트를 포함한 레지스트리 클라이언트를 지원하여 사용자 지정 흐름 정의를 저장하고 버전을 지정할 수 있습니다. 이를 통해 표준 소프트웨어 개발 수명 주기(SDLC) 사례(예: 분기, 끌어오기 요청, 코드 검토, 환경 승격)를 지원합니다.
일반적인 워크플로는 다음과 같습니다.
프로덕션 흐름 정의를 나타내는
main분기를 유지 관리합니다.새로운 개발을 위한 기능 분기를 생성합니다.
Openflow 캔버스에서 변경 사항을 개발하고 커밋합니다.
끌어오기 요청을 열고 Flow Diff로 검토하고 병합합니다.
전제 조건¶
흐름 정의를 저장하기 위한 GitHub 리포지토리.
repository액세스 권한이 있는 GitHub 개인 액세스 토큰.Openflow 캔버스에 대한 액세스 권한이 있는 Openflow 런타임.
런타임 통합 오브젝트에 대한 적절한 Snowflake 역할 권한.
1단계: GitHub 레지스트리 클라이언트 생성¶
GitHub에서 리포지토리를 생성하고 흐름 정의를 저장합니다.
GitHub에서 리포지토리 액세스 권한이 있는 개인 액세스 토큰(PAT)을 생성합니다.
Openflow 캔버스에서 Controller Settings 로 이동하여 새 레지스트리 클라이언트를 생성합니다.
유형으로 GitHub Registry Client 를 선택합니다.
다음을 사용하여 레지스트리 클라이언트를 구성합니다.
GitHub 리포지토리 URL .
GitHub 리포지토리 소유자.
인증을 위한 개인 액세스 토큰.
2단계: 새 흐름 생성 및 버전 지정¶
Openflow 캔버스에서 흐름에 대한 새 프로세스 그룹을 생성합니다.
프로세서를 추가하고, 연결을 구성하고, 데이터 파이프라인을 설정하여 흐름을 구축합니다.
프로세스 그룹을 마우스 오른쪽 버튼으로 클릭하고 Start Version Control 을 선택합니다.
1단계 에서 구성한 GitHub 레지스트리 클라이언트를 선택합니다.
흐름 이름과 초기 커밋 메시지를 제공합니다.
저장하면 흐름 정의가 GitHub 리포지토리에 커밋됩니다. GitHub 에서 리포지토리를 확인하여 검증할 수 있습니다.
3단계: 분기를 사용하여 변경 사항 관리¶
개발 분기 생성¶
GitHub 리포지토리에서 새 분기를 생성합니다(예: dev 또는 feature/add-new-table 과 같은 기능 분기).
분기에서 가져오기 및 개발¶
Openflow 캔버스에서 도구 모음의 Import from Registry 아이콘을 캔버스로 드래그하여 GitHub 레지스트리에서 새 프로세스 그룹으로 흐름을 가져옵니다.
가져올 때 작동할 대상 분기(예:
dev)를 선택합니다.프로세스 그룹 내에서 흐름을 변경합니다.
Openflow에서 변경 사항을 커밋합니다. 이를 통해 업데이트된 흐름 정의가 GitHub에서 선택한 분기로 푸시됩니다.
끌어오기 요청을 통한 검토 및 병합¶
GitHub의 개발 분기에서
main으로 끌어오기 요청을 엽니다.변경 사항을 검토합니다. 사람이 읽을 수 있는 diff의 경우 Snowflake Flow Diff GitHub Action(4단계 참조)을 사용합니다.
풀 요청이 승인된 후 병합합니다.
Openflow 캔버스로 돌아가서
main프로세스 그룹을 업데이트하여main분기에서 최신 버전을 가져옵니다.
4단계: Snowflake Flow Diff(GitHub Action) 설정¶
Snowflake Flow Diff는 파이프라인 변경 사항의 시각적 차이를 끌어오기 요청 대화에서 직접 렌더링하여 흐름 변경 사항을 사람이 읽을 수 있도록 만드는 GitHub Action입니다.
워크플로 파일 설정¶
GitHub 리포지토리에서
.github/workflows/flowdiff.yml파일을 생성합니다.Snowflake Flow Diff 리포지토리 에서 워크플로 구성을 복사합니다(README의 사용법 섹션 참조).
워크플로 파일을 커밋하고 푸시합니다.
흐름 변경 사항 검토¶
풀 요청이 열리면 Flow Diff 작업이 자동으로 실행됩니다.
끌어오기 요청의 Conversations 탭으로 이동하여 Flow Diff 분석이 나타날 때까지 기다립니다.
분석은 원시 JSON diff 대신 사람이 읽을 수 있는 흐름 변경 사항의 시각적 비교를 보여줍니다.
여러 환경에서 매개 변수 관리¶
Openflow는 매개 변수를 사용하여 다양한 런타임에서 환경별 값(예: 연결 문자열, 자격 증명, 테이블 이름)을 관리합니다.
다음 개념을 염두에 두세요.
매개 변수는 프로세스 그룹과 일대일 매핑이 있는 매개 변수 컨텍스트로 그룹화됩니다.
매개 변수 컨텍스트 상속을 사용하면 상위 컨텍스트에서 공유 매개 변수를 정의하고 하위 컨텍스트의 특정 값을 재정의할 수 있습니다. 이는 개발, 스테이징 및 프로덕션 환경 전반에서 흐름을 승격하는 데 유용합니다.
매개 변수 컨텍스트는 Secrets Manager와 통합되어 민감한 자격 증명을 흐름 정의에 저장하지 않고도 안전하게 처리할 수 있습니다.
권장 SDLC 워크플로¶
개발 환경: 개발자는 기능 분기를 생성하고, 흐름을 빌드 또는 수정하고, 기능 분기에 대해 Openflow 캔버스에서 변경 사항을 커밋합니다.
코드 검토: GitHub에서 끌어오기 요청을 엽니다. 읽기 편한 검토를 위해 Snowflake Flow Diff를 사용합니다.
기본 분기에 병합: 승인 후 풀 요청을
main분기에 병합합니다.프로덕션으로 승격: 프로덕션 런타임에서 프로세스 그룹을 업데이트하여
main분기에서 최신 버전을 가져옵니다.매개 변수화: 매개 변수 컨텍스트를 사용하여 흐름 정의 자체를 수정하지 않고 환경별 구성을 처리합니다.