개요
CI/CD 파이프라인은 새 버전의 소프트웨어를 제공하기 위해 수행해야 할 일련의 단계입니다. 지속적 통합/지속적 배포(CI/CD) 파이프라인은 DevOps 또는 사이트 신뢰성 엔지니어(SRE) 방식을 통해 더 효과적으로 소프트웨어를 제공하는 데 초점을 맞춘 방법입니다.
CI/CD 파이프라인은 특히 통합 및 테스트 단계와 제공 및 배포 단계에서 모니터링 및 자동화를 도입하여 애플리케이션 개발 프로세스를 개선합니다. CI/CD 파이프라인의 각 단계를 수동으로 실행할 수도 있지만, CI/CD 파이프라인의 진가는 자동화할 때 드러납니다.
CI/CD 파이프라인의 요소
CI/CD 파이프라인의 단계는 각기 다른 태스크 하위 집합으로 이루어져 있는데, 이를 파이프라인 단계(pipeline stage)라고 부릅니다. 일반적인 파이프라인 단계는 다음과 같습니다.
- 빌드(Build) - 애플리케이션을 컴파일하는 단계
- 테스트(Test) - 코드를 테스트하는 단계. 이 단계를 자동화하여 시간과 수고를 줄일 수 있습니다.
- 릴리스(Release) - 애플리케이션을 리포지토리에 제공하는 단계
- 배포(Deploy) - 코드를 프로덕션에 배포하는 단계
- 검증 및 컴플라이언스(Validation & compliance) - 빌드 검증 단계는 해당 조직의 필요에 따라 결정됩니다. Clair와 같은 이미지 보안 스캔 툴을 사용하여 알려진 취약점(CVE)과 비교하는 방법으로 이미지의 품질을 보장할 수 있습니다.
여기에 나오지 않은 파이프라인 단계도 있습니다. 이 목록은 흔히 볼 수 있는 단계의 예일 뿐입니다. 조직의 필요에 따라 고유한 파이프라인을 구성하면 됩니다.
컨테이너와 CI/CD 파이프라인
전통적인 CI/CD 시스템은 가상 머신을 사용하는 파이프라인을 위해 설계되었지만, 클라우드 네이티브 애플리케이션 개발은 CI/CD 파이프라인에 여러모로 유익합니다. 컨테이너가 있는 CI/CD 파이프라인은 어떤 모습일까요?
OpenShift Pipelines
OpenShift Pipelines는 Tekton에 구축된 Red Hat OpenShift 기능 중 하나입니다. Tekton은 오픈소스 프로젝트로서 클라우드 네이티브CI/CD 파이프라인을 신속히 생성하기 위한 프레임워크를 제공합니다. Tekton은 표준 클라우드 네이티브 CI/CD 경험과 컨테이너를 제공하는 쿠버네티스 플랫폼을 위한 CI/CD 프레임워크입니다. 쿠버네티스 네이티브 프레임워크인 Tekton을 사용하면 여러 클라우드 제공업체 또는 하이브리드 환경에 더 수월하게 배포할 수 있습니다. Tekton은 쿠버네티스의 CRD(Custom Resource Definition)를 활용하여 쿠버네티스 제어판에서 파이프라인 태스크를 실행합니다. 또한 Tekton은 표준 업계 사양을 준수하므로 Jenkins, Jenkins X, Skaffold, Knative와 같은 기존 CI/CD 툴과 효과적으로 연동됩니다.