전공영역 공부 기록

argo workflow란

악분 2022. 7. 10. 17:34
반응형

이 글은 영상으로도 만나볼 수 있습니다.

영상: https://youtu.be/kxl6wYd5i2g

1. argo workflow란?

쿠버네티스를 이용한 workflow 관리 시스템입니다. workflow를 쿠버네티스럽게 생성하고 관리하는 특징이 있습니다.

 

2. workflow란?

argo workflow를 이해하기 전, workflow가 무엇인지 알아야 합니다. argo workflow의 핵심은 쿠버네티스보다는 workflow의 이해가 더 필요합니다.

 

workflow는 work(작업 또는 task) + flow(흐름)의 합성어로서, 작업에 실행 순서를 설정하여 실행합니다.

 

데브옵스 엔지니어에게 쉽게 접할 수 있는 사례는 CI/CD파이프라인입니다. 빌드/배포를 위한 작업들을 정의하고 순서대로 실행하죠. 이런 과정을 통틀어 workflow라고 합니다.

 

3. 쿠버네티스를 이용하는 argo workflow

3.1 CRD활용

workflow를 작성하기 위해서 시스템에서 인식하는 언어로 스크립트를 작성합니다.

 

젠킨스를 예로 들면 groovy언어로 파이프라인을 작성합니다.

 

argo workflow는 쿠버네티스럽게 workflow를 생성(CRD)하고 관리합니다. 생성된 workflow는 쿠버네티스 pod로 실행됩니다.

 

3.2 쿠버네티스를 이용하면 생기는 장점

쿠버네티스는 관리자가 수동으로 해야하는 관리 포인트가 대부분 자동화되어 있습니다. 서버 자원(cpu, 메모리 등)을 검사하여 실행하는 로직, 실행한 작업(pod)상태 관리 등이 있습니다. 그러므로, 개발자 또는 엔지니어는 workflow를 만드는것에 집중할 수 있습니다. 물론, 쿠버네티스 기본을 배우는 오버헤드가 발생합니다.

 

4. 아키텍처 하이레벨

아키텍처는 공식문서(https://argoproj.github.io/argo-workflows/architecture/)에 자세히 설명되어 있습니다. 요약하면 argo workflow controller가 현재 상태를 의도한 상태로 업데이트합니다. 옵션으로 argo workflow자체 DB를 구축해서 workflow상태를 관리할 수 있습니다.

반응형

'전공영역 공부 기록' 카테고리의 다른 글

튜토리얼용 argo workflow 설치  (0) 2022.07.10
argo workflow hello world실행  (0) 2022.07.10
SRE 백엔드 pytest DB연동 - 작성중  (0) 2022.07.03
SRE 백엔드 레이어  (0) 2022.07.03
git commit 취소  (0) 2022.07.03