기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Jenkins X
Jenkins X는 Kubernetes 환경에 대한 GitOps 원칙을 구현하는 클라우드 네이티브 오픈 소스 CI/CD 플랫폼입니다. Jenkins X는 Argo CD 또는 Flux와 같은 GitOps 도구만은 아니지만 GitOps 관행을 워크플로에 통합합니다.
GitOps 지원
| 영역 | 도구 기능 |
|---|---|
Git 중심 워크플로 |
Jenkins X는 Git 리포지토리를 애플리케이션 코드와 구성 모두에 대한 기본 정보 소스로 사용합니다. 애플리케이션 및 인프라에 대한 모든 변경은 Git을 통해 이루어집니다. |
코드형 환경(EaC) |
환경(예: 스테이징 및 프로덕션)은 Git 리포지토리에서 코드로 정의됩니다. 이를 통해 버전 관리 및 환경 구성 검토가 가능합니다. |
자동화된 CI/CD 파이프라인 |
Jenkins X는 프로젝트에 대한 CI/CD 파이프라인을 자동으로 설정합니다. 이러한 파이프라인은 코드(파이프라인 코드)로 정의되고 Git에 저장됩니다. |
Kubernetes 네이티브 |
Jenkins X는 Kubernetes 환경을 위해 특별히 구축되었습니다. Kubernetes 리소스와 사용자 지정 리소스 정의(CRDs 사용합니다. |
미리 보기 환경 |
Jenkins X는 풀 요청에 대한 임시 환경을 자동으로 생성합니다. 병합 전에 변경 사항을 쉽게 검토하고 테스트할 수 있습니다. |
환경 간 홍보 |
Jenkins X는 GitOps 접근 방식을 사용하여 환경 간에 애플리케이션을 홍보합니다(예: 스테이징에서 프로덕션으로). 적절한 검토 및 승인 프로세스를 보장하기 위해 풀 요청을 사용하여 승격을 처리합니다. |
차트 Helm 관리 |
Jenkins X는 Helm 차트를 사용하여 애플리케이션을 패키징하고 배포합니다. 차트는 Git 리포지토리에서 버전 관리됩니다. |
자동 버전 관리 |
Jenkins X는 애플리케이션 및 릴리스의 버전 관리를 자동으로 관리합니다. 의미 체계 버전 관리를 사용하고 릴리스 정보를 생성합니다. |
ChatOps 통합 |
Jenkins X는 일반적인 작업을 위해 ChatOps를 지원합니다. 이는 자동화 및 협업의 GitOps 원칙에 부합합니다. |
확장성 |
이 도구는 기능을 확장하기 위한 플러그인 시스템을 제공합니다. 이를 통해 다양한 클라우드 네이티브 도구와 통합할 수 있습니다. |
코드형 인프라(IaC) |
Jenkins X는 인프라를 정의하고 관리하기 위해 Terraform AWS Cloud Development Kit (AWS CDK), CloudFormation, 및 기타 IaC 도구를 지원합니다. 인프라 정의는 애플리케이션 코드와 함께 버전이 제어됩니다. |
자동 롤백 |
Jenkins X는 배포 후 문제가 감지되면 자동 롤백을 지원합니다. |
보안 암호 관리 |
이 도구는 외부 보안 암호 관리 솔루션과 통합되어 민감한 정보를 안전하게 처리합니다. |
관찰성 |
Jenkins X는 관찰성을 위한 모니터링 및 로깅 도구와의 통합을 제공합니다. |
다중 클라우드 지원 |
Jenkins X는 다양한 클라우드 공급자와 온프레미스 환경에서 작동하도록 설계되었습니다. |
팀 공동 작업 |
이 도구는 Git 기반 워크플로 및 풀 요청을 통해 협업을 장려합니다. |
지속적인 피드백 |
이 도구는 자동화된 테스트 및 미리 보기 환경을 통해 변경 사항에 대한 빠른 피드백을 제공합니다. |
DevOps 모범 사례 |
Jenkins X는 기본적으로 GitOps 원칙을 포함한 DevOps 모범 사례를 구현합니다. GitOps |
선언적 구성 |
이 도구는 선언적 구성을 사용하여 애플리케이션 및 환경을 정의합니다. |
자동 업그레이드 |
Jenkins X는 Jenkins X 플랫폼 자체의 업그레이드를 자동화하는 도구를 제공합니다. |
Jenkins X는 이러한 GitOps 원칙을 구현하여 Kubernetes에 대한 포괄적인 CI/CD 솔루션을 생성합니다. 이는 GitOps 관행을 준수하면서 코드 커밋에서 프로덕션 배포에 이르기까지 전체 소프트웨어 제공 프로세스를 자동화하고 간소화하는 것을 목표로 합니다. 이렇게 하면 팀이 클라우드 네이티브 환경에서 더 빠르고 안정적이며 일관된 배포를 달성할 수 있습니다.
Jenkins X와 Argo CD 또는 Flux와 같은 도구의 주요 차이점은 Jenkins X가 배포 및 환경 관리를 위한 GitOps 원칙을 통합하면서 빌드 자동화 및 파이프라인 관리를 포함한 보다 포괄적인 CI/CD 솔루션을 제공한다는 것입니다. 따라서 단일 GitOps 프레임워크 내에서 CI 및 CD 측면을 모두 다루는 all-in-one 솔루션이 필요한 팀에 특히 적합합니다.
자세한 내용은 Jenkins X 설명서를
아키텍처
다음 다이어그램은 Jenkins X를 사용하는 GitOps 기반 CD 워크플로를 보여줍니다. 자세한 내용은 Jenkins X 설명서를
여기서 각 항목은 다음과 같습니다.
-
1단계: 풀 요청(PR) 병합. 개발자는 Kubernetes 매니페스트, 차트 Helm 또는 Git 리포지토리에 저장된 애플리케이션 코드에 대한 변경 사항을 포함하는 풀 요청을 생성합니다. 검토 및 승인 후 PR이 기본 브랜치에 병합되고 소스 제어에서 원하는 상태가 업데이트됩니다.
-
2단계: 리포지토리 동기화. Jenkins X는 변경 사항을 감지하면 CI/CD 파이프라인을 자동으로 트리거합니다. 파이프라인은 GitOps 원칙을 사용하여 다양한 환경(예: 스테이징 및 프로덕션)을 통해 애플리케이션을 빌드, 테스트 및 홍보합니다.
-
3단계: 대상 네임스페이스에 배포. Jenkins X는 환경 리포지토리(스테이징 및 프로덕션)를 새 애플리케이션 버전으로 업데이트합니다. 클러스터는 Git에서 최신 매니페스트를 가져와 애플리케이션을 적절한 네임스페이스에 배포하여 변경 사항을 자동으로 조정합니다.