argo
Argo는 Kubernetes 환경에서 워크플로우(Workflow), 이벤트 기반 자동화, 애플리케이션 배포 등을 선언적 방식으로 실행할 수 있게 해주는 클라우드 네이티브 오픈소스 프로젝트이다. CNCF(Cloud Native Computing Foundation) 산하에서 관리되며, 머신러닝 파이프라인, CI/CD, 데이터 처리 자동화 등에 광범위하게 사용되고 있다.
특히 YAML 기반으로 모든 실행 단계를 정의할 수 있으며, GitOps 원칙을 적용한 배포 및 제어가 가능하여 복잡한 자동화 시나리오를 컨테이너 기반으로 실행하는 데 최적화된 도구로 평가받고 있다.
주요 특징
- 워크플로우 기반 실행: DAG(Directed Acyclic Graph) 구조 또는 단계형(step-based)의 작업 흐름 정의 가능.
- Kubernetes 네이티브: 모든 컴포넌트가 Kubernetes 위에서 동작하며, CRD(Custom Resource Definition) 기반으로 리소스를 관리함.
- GitOps와의 자연스러운 통합: Git 기반 선언형 배포 자동화 가능 (특히 Argo CD).
- 확장 가능한 실행 환경: 다양한 파라미터, 조건문, 반복문 등을 이용한 유연한 실행 제어 가능.
- 경량화된 설치 구조: Kubernetes 클러스터 내에서 빠르고 간편하게 배포 가능.
장점
- 자동화 파이프라인의 선언적 관리: 모든 실행 단계를 YAML로 정의하여 관리 및 버전 제어 용이.
- 컨테이너 기반 병렬 처리 최적화: 각 작업이 독립된 컨테이너로 실행되므로 고성능 분산 처리에 적합.
- ML 워크플로우/CI/CD 등 다양한 활용: 범용 파이프라인 도구로 다양한 도메인에서 사용 가능.
- GitOps 강화: Argo CD와의 연계로 지속적인 배포(Continuous Delivery) 관리 자동화.
- 풍부한 생태계: Argo Workflows, Argo CD, Argo Events, Argo Rollouts 등으로 구성되어 있으며, 각각 독립적으로 또는 통합적으로 활용 가능.
관련 용어
- Workflows: 복잡한 작업 흐름을 DAG 혹은 Step 기반으로 실행하는 핵심 컴포넌트.
- CD: GitOps 방식의 Kubernetes 애플리케이션 배포 관리 도구.
- Events: 다양한 이벤트 소스를 트리거로 활용하여 Argo Workflow를 실행하는 이벤트 기반 프레임워크.
- Rollouts: Canary, Blue-Green 배포 전략을 지원하는 배포 관리 도구.
- DAG (Directed Acyclic Graph): 작업 흐름에서 각 태스크 간의 의존성을 표현하는 방향성 비순환 그래프.
주요 솔루션 및 사용 사례
- 주요 솔루션
- Workflows: 데이터 전처리, 모델 학습, 결과 평가 등 복잡한 머신러닝 워크플로우 자동화.
- CD: Git에 정의된 Kubernetes 리소스를 자동으로 배포하고 실시간으로 동기화.
- Events: Kafka, Webhook, Cron 등 다양한 이벤트 트리거를 통해 워크플로우 실행.
- Rollouts: 실시간 트래픽 분할 기반 배포 전략으로 무중단 릴리스 구현.
- 사용 사례
- 머신러닝 파이프라인 자동화: 데이터 수집 → 정제 → 모델 학습 → 결과 저장 과정을 자동으로 처리.
- CI/CD 파이프라인: 코드 커밋 시 자동으로 테스트, 빌드, 배포까지 수행.
- 크론 기반 일일 작업 실행: 매일 정해진 시간에 로그 수집 및 분석 워크플로우 실행.
- 헬스 체크 기반 롤링 배포: 신규 버전 배포 시 문제 발생 여부를 자동 판단하고 롤백 수행.
- 복잡한 데이터 처리 파이프라인 구성: 다수의 병렬 작업과 조건 분기를 포함한 유연한 처리 흐름 정의.


