CI/CD 파이프라인이란?
지속적 통합 및 지속적 배포(CI/CD) 파이프라인은 개발자가 새로운 버전의 소프트웨어를 제공하기 위해 따라야 하는 일련의 확립된 단계입니다. CI/CD 파이프라인은 자동화를 통해 소프트웨어 개발 라이프사이클 전반에서 소프트웨어 제공을 개선하는 데 중점을 두는 사례입니다.
소프트웨어 개발 라이프사이클의 개발, 테스트, 프로덕션, 모니터링 단계 전반에서 CI/CD를 자동화하는 팀은 고품질 코드를 더 빠르고 더 안전하게 개발할 수 있습니다. 테스트를 자동화하면 종속성과 기타 문제를 소프트웨어 개발 라이프사이클의 초반에 식별할 수 있으므로 후반에 시간을 절약할 수도 있습니다. CI/CD 파이프라인의 각 단계를 수동으로 실행할 수도 있지만, CI/CD 파이프라인의 진가는 자동화할 때 드러납니다.
CI/CD 파이프라인은 가상 머신과 컨테이너 기반 클라우드 네이티브 애플리케이션을 사용하는 소프트웨어 조직에 여러모로 유용합니다. 코드 업데이트와 변경 사항을 더 신속하게 통합할 수 있으므로 팀은 사용자 피드백과 비즈니스 변경 사항에 자주 효과적으로 대응하여 최종 사용자에게 긍정적인 결과를 가져다줄 수 있습니다.
CI/CD 파이프라인과 DevOps의 관계
소프트웨어 개발을 간소화하고 가속화하는 CI/CD 파이프라인은 개발자와 IT 운영 팀 간 협업을 촉진하는 일련의 아이디어 및 사례인 DevOps 방법론을 반영한 것입니다.
CI/CD 중 CI는 지속적 통합(continuous integration)을 말하며, 여기에는 코드의 구축, 테스트, 병합이 포함됩니다. 그리고 지속적 제공(continuous delivery)을 의미하는 CD는 소프트웨어를 리포지토리에 자동으로 릴리스하는 작업을 포함합니다. CD가 지속적 배포(continuous deployment)를 가리킬 수도 있습니다. 이 경우 소프트웨어를 프로덕션으로 자동으로 배포하는 단계가 추가됩니다.
CI/CD 파이프라인은 코드의 구축, 테스트 및 배포 경로를 통해 소프트웨어를 개발하는 프로세스를 안내합니다. CI/CD를 지원하는 프로세스를 자동화함으로써 개발 팀과 운영 팀은 인적 오류를 최소화하고 소프트웨어 출시 방식에 일관된 프로세스를 유지할 수 있습니다. 파이프라인에는 코드 컴파일링, 유닛 테스트, 코드 분석, 보안, 바이너리 생성 등을 위한 툴이 포함될 수 있습니다. 컨테이너화된 환경에서는 하이브리드 클라우드 전반에 배포할 컨테이너 이미지에 코드를 패키징하기 위한 툴도 파이프라인에 포함됩니다.
CI/CD와 DevOps는 모두 코드 통합 프로세스를 자동화하는 데 중점을 둡니다. 따라서 아이디어(예: 새 기능, 개선 사항 요청, 버그 수정)가 개발 단계에서 프로덕션 환경의 배포 단계로 이동하는 과정이 가속화되어 사용자에게 그 가치를 더 빠르게 제공할 수 있습니다. 일반적으로 표준 개발 환경에서 코딩 작업을 하는 개발자는 IT 운영 팀과 긴밀하게 협력하여 안정성을 저해하지 않고 소프트웨어 빌드, 테스트, 출시 속도를 가속화합니다.
Red Hat 리소스
Tekton이란?
Tekton은 클라우드 네이티브 CI/CD 파이프라인을 신속히 생성하기 위한 Knative 기반 프레임워크입니다. 쿠버네티스 네이티브 프레임워크인 Tekton을 사용하면 여러 클라우드 공급업체 또는 하이브리드 환경에 더 수월하게 배포할 수 있습니다.
또한 쿠버네티스에서 사용자 정의 리소스 정의(CRD)를 사용함으로써 여러 파이프라인에서 구성 요소를 재사용할 수 있습니다. Tekton은 쿠버네티스 컨트롤 플레인을 사용하여 파이프라인 태스크를 실행합니다. Tekton은 표준 업계 사양을 준수하므로 Knative, OpenShift와 같은 기존 CI/CD 툴과 효과적으로 연동합니다.
Tekton 프로젝트를 사용하면 중앙 팀을 통해 지속적 통합 서버, 플러그인, 구성을 유지하고 관리할 필요 없이 마이크로서비스의 라이프사이클 전체를 관리할 수 있는 쿠버네티스 스타일의 제공 파이프라인을 구축할 수 있습니다.
CI/CD 파이프라인은 보안을 어떻게 지원하나?
개발 및 배포 프로세스가 빠르기만 하고 보안은 취약하다면 조직이 위험에 처할 수 있습니다. 일반적인 위험으로는 민감한 데이터를 외부 소스에 노출시키거나, 안전하지 않은 코드나 타사 구성 요소를 통합하거나, 소스 코드 리포지토리나 빌드 툴을 무단 액세스에 노출시키는 것 등이 있습니다.
CI/CD 파이프라인 내 자동화된 점검과 테스트는 코드를 보호하고 소프트웨어 제공 시 취약점을 방지할 수 있습니다. 보안을 파이프라인에 통합하면 코드를 공격으로부터 보호하고, 데이터 유출을 방지하며, 정책을 준수하고, 품질 보증을 보장하는 데 도움이 됩니다. 개발 주기 전반에서 취약점을 식별하고 완화하면 코드 변경 사항이 프로덕션에 배포되기 전에 철저한 테스트를 거쳐 보안 표준을 준수하도록 보장할 수 있습니다.
Red Hat OpenShift Pipelines란?
Red Hat® OpenShift® Pipelines는 Tekton을 기반으로 하는 쿠버네티스 네이티브 CI/CD 솔루션으로, OpenShift 및 Red Hat 개발자 툴과의 긴밀한 통합을 제공합니다. 관리자와 개발자는 조직의 고유한 비즈니스 및 보안 요구 사항에 따라 애플리케이션에 대한 파이프라인 청사진을 만들 수 있습니다.
OpenShift Pipelines는 파이프라인의 각 단계를 자체 컨테이너에서 실행하도록 설계되었습니다. 따라서 각 단계를 파이프라인의 요구에 맞게 독립적으로 확장할 수 있습니다.
OpenShift 서브스크립션을 통해 제공되는 OpenShift Pipelines는 OpenShift 콘솔과 기본적으로 통합되므로 개발자가 애플리케이션과 함께 파이프라인을 직접 구성하고 실행할 수 있습니다.
Red Hat OpenShift Pipelines 기능
쿠버네티스 네이티브 파이프라인
표준 Tekton 사용자 정의 리소스 정의(CRD)를 사용하여 컨테이너로 실행되고 온디맨드로 확장되는 파이프라인을 정의합니다.
서버리스 실행
중앙 CI/CD 서버를 관리하지 않고도 팀의 제공 파이프라인, 플러그인, 액세스 제어를 완벽하게 제어합니다.
통합 CI/CD 경험
Pipeline Builder 시각 인터페이스뿐만 아니라 커맨드라인 인터페이스, 통합 개발 환경을 포함한 Red Hat OpenShift 콘솔 개발자 관점을 통해 간소화된 사용자 환경을 제공합니다.
Red Hat CI/CD를 선택하는 이유
Red Hat 전문가는 조직이 더 효율적으로 기존 애플리케이션을 현대화하고 클라우드 네이티브 애플리케이션 개발 여정을 가속화하는 데 필요한 사례와 툴을 개발하고 문화를 조성하도록 지원합니다.
Red Hat OpenShift는 Red Hat OpenShift Pipelines와 더불어 조직이 개발자 생산성을 개선하고, CI/CD 파이프라인을 자동화하며, 개발 주기 초기와 전체에 걸쳐 보안 작업을 전환하는 데 도움이 됩니다.
Red Hat OpenShift GitOps는 Git 리포지토리, 지속적 통합/지속적 제공(CI/CD) 툴, 쿠버네티스를 통합하여 품질 저하 없이 더 빠르고 안전한 확장 가능한 소프트웨어 개발을 실현하기 위한 워크플로우를 제공하는 오퍼레이터입니다. OpenShift GitOps는 고객이 선언적 Git 기반 CD 워크플로우를 구축하여 자체 애플리케이션 개발 플랫폼으로 직접 통합할 수 있도록 지원합니다.
또한 Red Hat 툴을 CI/CD 보안에 사용할 수 있습니다. Red Hat Advanced Cluster Security(ACS) for Kubernetes는 Red Hat OpenShift, Amazon Elastic Kubernetes Service(EKS), Microsoft Azure Kubernetes Service(AKS), Google Kubernetes Engine(GKE) 등 모든 주요 클라우드 및 하이브리드 플랫폼에서 컨테이너화된 쿠버네티스 워크로드를 보호하는 데 도움이 됩니다. Red Hat Trusted Software Supply Chain은 소프트웨어 개발 라이프사이클의 초기와 빌드 및 릴리스 파이프라인에 이르기까지 소프트웨어 구성 요소와 종속성의 보안에 초점을 두고 감사를 통해 보안 문제에 대한 조치를 취할 수 있는 보안 솔루션 제품군을 제공합니다. 이러한 솔루션에는 SBOM(Software Bills of Materials)과 취약점 해결 정보를 관리하는 Red Hat Trusted Profile Analyzer, 그리고 소프트웨어 아티팩트 공급망 수준(Supply-chain Levels for Software Artifacts, SLSA) 레벨 3 빌드 이미지를 생성하기 위해 기본 파이프라인 정의와 자동화된 보안 점검을 제공하는 Red Hat Trusted Application Pipeline이 포함되어 있습니다.
워크플로우를 자동화하도록 돕기 위해 Red Hat Ansible® Automation Platform에는 이벤트 기반 솔루션, 분석, 사전 구축된 콘텐츠 컬렉션 등 전사적으로 자동화를 구현하는 데 필요한 모든 툴이 포함되어 있습니다. 이 플랫폼의 공통된 YAML 기반 언어 및 원하는 상태 접근 방식을 활용하면 일상적인 운영은 물론 CI/CD 파이프라인에도 동일한 오토메이션 콘텐츠를 사용할 수 있습니다. 또한 Red Hat Ansible Automation Platform은 IT 인프라의 거의 모든 측면에서 작동하므로 더욱 간편하고 신속하게 일관된 개발, 테스트, 프로덕션 환경을 배포하여 애플리케이션의 신뢰성과 복구 능력을 높일 수 있습니다.
아울러 Ansible Automation Platform은 Red Hat Advanced Cluster Management for Kubernetes와 통합되어 CI/CD 파이프라인 내의 쿠버네티스 클러스터를 오케스트레이션할 수 있도록 지원합니다. 그리고 조직은 사람이 읽을 수 있는 자동화 언어를 사용하여 Red Hat OpenShift 오퍼레이터를 더욱 손쉽게 구축하고 유지 관리할 수 있습니다.
레드햇 공식 블로그
레드햇 공식 블로그에서 고객, 파트너, 커뮤니티 에코시스템 등 현재 화제가 되는 최신 정보를 살펴 보세요.