argo workflow

argo workflows 의 도입 여정의 시작

나뭇빛자루 2023. 4. 14. 16:57
반응형

CI/CD 를 구축하면서 github Action 만 신경 쓰다가 결국 github가 장애가 발생하는 경우가 종종 생기곤 할 때 곤란한 부분이 있다고 생각했었고 실제로도 그런 경우를 겪기도 해서 유사시에 수동으로 빌드할 수 있는 젠킨스와 같은 중앙의 툴이 있었으면 좋겠다고 생각 했던 와중 argo workerflow 라는 툴이 눈에 들어오게 되었습니다.

argo 측에서 개발 하고 있는 오픈 소스로 설명 을 읽어보니 airflow와 비슷한 기능을 수행하는 오픈소스 였으나, 여러가지 기능이 개발(argo-events)되면서 CI 뿐만 아니라 API 게이트 웨이 같은 기능도 있어 서버리스 기능 까지 구현 할 수 있지 않을까? 란 생각이 들기 시작하면서 빠지게 된 것 같습니다.

무엇보다 Dags 및 크론 같은 작업들도 나오기 시작했고 MSA 인프라 운영에 있어 익숙해 지면 정말 편해질 것 같은 툴이라 생각 되어서 적용시켜 보기로 하였습니다.

 

그 외에도 사용해야할 이유에 대해 조시를 했는데, 아래와 같습니다.

  1. 쿠버네티스 통합: Argo Workflows 쿠버네티스 네이티브로 작동하므로, 쿠버네티스 클러스터 내에서 실행되는 기존의 인프라 서비스와 쉽게 통합할 있습니다. 이를 통해 기존의 쿠버네티스 지식을 활용하여 워크플로우를 관리할 있습니다.
  2. 표준화된 워크플로우 정의: Argo Workflows 사용하면 YAML 파일로 워크플로우를 정의할 있습니다. 이를 통해 표준화된 방식으로 워크플로우를 구성하고 버전 관리를 적용할 있습니다. 또한 워크플로우에 대한 추적 감사 기능이 강화되며, 재사용 가능한 구성 요소를 공유할 있습니다.
  3. 실행의 병렬화 조건부 실행: Argo Workflows 사용하면, 워크플로우 내에서 복잡한 실행 그래프를 정의할 있습니다. 병렬 실행, 순차 실행, 조건부 실행 다양한 실행 패턴을 지원하므로, 복잡한 파이프라인을 쉽게 구축할 있습니다.
  4. 장애 관리 자동 복구: Argo Workflows 워크플로우 내에서 작업에 대한 재시도 로직을 제공합니다. 이를 통해 일시적인 오류나 인프라 문제로 인한 실패가 발생한 경우, 워크플로우가 자동으로 복구되어 실행을 재개할 있습니다. 이러한 기능은 작업이나 규모의 파이프라인에서 높은 가용성을 보장하는 도움이 됩니다.

일단 무엇보다 실무에 적용전에 충분한 검증을 마치는게 중요하다고 생각해 dev 부터 차근히 도입할 생각이고 또한 여러가지 기능들을 레퍼런스로 남겨 두고 싶다는 목적이 가장 크며, 설레는 마음이 듦니다. 

 

마침 개인적으로 golang을 입문하면서 만든 프로그램이 있는데 해당 건을 사용하여, CI 를 진행해 볼 생각.

 

 

깃허브 정보

아르고 프로젝트 깃허브 : https://github.com/argoproj

 

Argo Project

Get stuff done with Kubernetes! Argo Project has 36 repositories available. Follow their code on GitHub.

github.com

 

반응형