클라우드 네이티브 애플리케이션을 위한 지속적 통합/지속적 배포(이하 CI/CD) 기반의 DevOps 파이프라인 구축은 모두의 관심사입니다. 여러 도구와 방법론이 시장에 나와 있는데요, 이중 지난 몇 년간 꾸준한 사랑을 받은 것이 있습니다. 바로 GitOps입니다. GitOps는 DevOps를 실행하는 방법의 하나입니다. GitOps를 적용하면 코드를 이용해 인프라 프로비져닝과 관리 그리고 애플리케이션 배포와 운영을 DevOps 체제 아래에서 할 수 있습니다.
GitOps 구현의 지름길
GitOps를 실제 프로젝트에 적용해 DevOps를 구현하려면 소스 코드 저장소, GitOps 리포지토리, 컨테이너 레지스트리 등 고려할 것이 많습니다. 이를 좀 더 쉽게 접근할 방법이 있습니다. 바로 Red Hat OpenShift GitOps를 활용하는 것입니다. Red Hat OpenShift GitOps는 Argo CD를 사용해 클러스터 리소스를 관리합니다.
참고로 Argo CD는 CI/CD를 위한 오픈 소스 기반 도구로 선언형(Declarative)으로 반복적인 작업을 자동화합니다. 여기서 말하는 선언형이란 작업 순서에 맞춰 여러 명령어를 순차적으로 사용하는 것이 아니라 코드 형태로 작업 절차를 기술하여 사용하는 것을 뜻합니다. 이렇게 해서 매번 명령어를 일일이 입력해 작업하지 않고 반복할 수 있는 프로세스를 정립할 수 있습니다. 예를 들어 클러스터 구성, 모니터링, 스토리지 상태 확인과 여러 OpenShift 컨테이너 플랫폼 클러스터를 대상으로 구성 변경 적용 및 롤백 작업을 자동화할 수 있습니다.
Red Hat OpenShift GitOps의 단짝 Red Hat OpenShift Pipeline
애플리케이션 배포와 운영 자동화의 경우 Red Hat OpenShift GitOps와 함께 짝을 이루는 솔루션을 쓰면 CI/CD 체인을 완성할 수 있습니다. 소개한 바와 같이 Red Hat OpenShift GitOps는 지속적 배포(CD)를 담당합니다. CI/CD 체인을 구성하려면 지속적 통합(CI) 파트를 담당할 도구가 필요합니다. 이때 적용할 수 있는 옵션 중 하나가 Red Hat OpenShift Pipeline입니다.
Red Hat OpenShift Pipeline은 오픈 소스 프로젝트인 Tekton을 기반으로 하는 클라우드 네이티브 CI 솔루션입니다. 이를 적용하면 수천 라인의 방대한 YAML 파일 작성을 하지 않고도 컨테이너 환경에서 CI/CD 파이프라인을 생성해 실행할 수 있습니다.
Red Hat OpenShift GitOps와 Red Hat OpenShift Pipeline을 적용하면 컨테이너 환경에서 CI/CD 파이프라인의 각 단계가 매끄럽게 흘러갑니다. 이 흐름의 예를 하나 들어 보겠습니다.
개발자가 소스 코드를 리포지토리에 체크인하면 GitHub 웹 후크가 푸시 이벤트로 Red Hat OpenShift Pipeline을 트리거합니다. 그러고 나면 첫 번째 Tekton CI 작업이 실행되어 GitHub 리포지토리에 코드를 복제합니다. 그런 다음 두 번째 Tekton CI 작업이 진행되어 애플리케이션 테스트 사례를 빌드하고 실행합니다. 다음으로 세 번째 Tekton CI 과정으로 소스 코드에서 컨테이너로 이미지가 빌드되며, 해당 이미지는 컨테이너 레지스트리로 푸시됩니다. 마지막 Tekton CI 작업으로 새 이미지 배포 구성 업데이트가 이루어집니다. 이후 구성 파일은 GitOps 저장소에 담기고, Red Hat OpenShift GitOps는 GitOps 리포지토리에서 구성 파일을 선택하고 리소스를 Red Hat OpenShift 클러스터에 배포합니다. 이를 도식화하면 다음과 같습니다.
살펴본 바와 같이 Red Hat OpenShift GitOps와 Red Hat OpenShift Pipeline를 활용하면 컨테이너환경에서 클라우드 네이티브 CI/CD 체인을 구현할 수 있고, 이를 바탕으로 DevOps를 실행할 수 있습니다. 그렇다면 오픈 소스를 쓰지 않고 굳이 Red Hat OpenShift GitOps와Red Hat OpenShift Pipeline 사용을 추천하는 것일까요? 이는 REHL를 쓰는 이유와 같습니다. 사전검증과 긴밀한 통합 그리고 신뢰할 수 있는 지원 때문입니다. 여기에 이유를 한 가지 더 하자면 Red Hat OpenShift GitOps와 Red Hat OpenShift Pipeline 모두 Red Hat OpenShif 컨테이너 플랫폼의 웹 콘솔 인터페이스상에서 OperatorHub에서 검색 및 설치할 수 있는 편의성도 높습니다. 오픈 소스 기술을 기반으로 한 클라우드 네이티브 CI/CD 구현에 관심이 있다면 락플레이스가 도움을 드리겠습니다.
'PRODUCT > Cloud' 카테고리의 다른 글
서비스 메시 플랫폼이 필요하다면?Wish List에 넣어야 할 아이템 ‘OpenShift Service Mesh’! (1) | 2023.05.11 |
---|---|
하이브리드 클라우드 환경을 위한 단일 관리 창 One Pick: ' Red Hat Hybrid Cloud Console ' (0) | 2022.06.22 |
OpenShift 콘솔을 이용한 하이브리드 클라우드 모니터링 (0) | 2022.06.08 |
하이브리드 클라우드 보안 개선 팁 (0) | 2022.03.16 |
Red Hat OpenStack에서 Octavia가 지원하는 로드밸런서 서비스 (0) | 2022.03.02 |