본문 바로가기

PRODUCT/Cloud

클라우드 네이티브 CI/CD 구현을 고민 중이라면?Red Hat OpenShift GitOps + Red Hat OpenShift Pipeline 조합 추천

클라우드 네이티브 애플리케이션을 위한 지속적 통합/지속적 배포(이하 CI/CD) 기반의 DevOps 파이프라인 구축은 모두의 관심사입니다. 여러 도구와 방법론이 시장에 나와 있는데요, 이중 지난 몇 년간 꾸준한 사랑을 받은 것이 있습니다. 바로 GitOps입니다. GitOpsDevOps를 실행하는 방법의 하나입니다. GitOps를 적용하면 코드를 이용해 인프라 프로비져닝과 관리 그리고 애플리케이션 배포와 운영을 DevOps 체제 아래에서 할 수 있습니다.

 

GitOps 구현의 지름길

 

GitOps를 실제 프로젝트에 적용해 DevOps를 구현하려면 소스 코드 저장소, GitOps 리포지토리, 컨테이너 레지스트리 등 고려할 것이 많습니다. 이를 좀 더 쉽게 접근할 방법이 있습니다. 바로 Red Hat OpenShift GitOps를 활용하는 것입니다. Red Hat OpenShift GitOpsArgo CD를 사용해 클러스터 리소스를 관리합니다.

참고로 Argo CDCI/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 GitOpsRed Hat OpenShift Pipeline을 적용하면 컨테이너 환경에서 CI/CD 파이프라인의 각 단계가 매끄럽게 흘러갑니다. 이 흐름의 예를 하나 들어 보겠습니다.

 

개발자가 소스 코드를 리포지토리에 체크인하면 GitHub 웹 후크가 푸시 이벤트로 Red Hat OpenShift Pipeline을 트리거합니다. 그러고 나면 첫 번째 Tekton CI 작업이 실행되어 GitHub 리포지토리에 코드를 복제합니다. 그런 다음 두 번째 Tekton CI 작업이 진행되어 애플리케이션 테스트 사례를 빌드하고 실행합니다. 다음으로 세 번째 Tekton CI 과정으로 소스 코드에서 컨테이너로 이미지가 빌드되며, 해당 이미지는 컨테이너 레지스트리로 푸시됩니다. 마지막 Tekton CI 작업으로 새 이미지 배포 구성 업데이트가 이루어집니다. 이후 구성 파일은 GitOps 저장소에 담기고, Red Hat OpenShift GitOpsGitOps 리포지토리에서 구성 파일을 선택하고 리소스를 Red Hat OpenShift 클러스터에 배포합니다. 이를 도식화하면 다음과 같습니다.

출처: IBM 코드 패턴

 

살펴본 바와 같이 Red Hat OpenShift GitOpsRed Hat OpenShift Pipeline를 활용하면 컨테이너환경에서 클라우드 네이티브 CI/CD 체인을 구현할 수 있고, 이를 바탕으로 DevOps를 실행할 수 있습니다. 그렇다면 오픈 소스를 쓰지 않고 굳이 Red Hat OpenShift GitOpsRed Hat OpenShift Pipeline 사용을 추천하는 것일까요? 이는 REHL를 쓰는 이유와 같습니다. 사전검증과 긴밀한 통합 그리고 신뢰할 수 있는 지원 때문입니다. 여기에 이유를 한 가지 더 하자면 Red Hat OpenShift GitOpsRed Hat OpenShift Pipeline 모두 Red Hat OpenShif 컨테이너 플랫폼의 웹 콘솔 인터페이스상에서 OperatorHub에서 검색 및 설치할 수 있는 편의성도 높습니다. 오픈 소스 기술을 기반으로 한 클라우드 네이티브 CI/CD 구현에 관심이 있다면 락플레이스가 도움을 드리겠습니다.