Jenkins X - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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 설명서를 참조하세요.

Jenkins X 아키텍처 및 워크플로 켜기 AWS.

여기서 각 항목은 다음과 같습니다.

  • 1단계: 풀 요청(PR) 병합. 개발자는 Kubernetes 매니페스트, 차트 Helm 또는 Git 리포지토리에 저장된 애플리케이션 코드에 대한 변경 사항을 포함하는 풀 요청을 생성합니다. 검토 및 승인 후 PR이 기본 브랜치에 병합되고 소스 제어에서 원하는 상태가 업데이트됩니다.

  • 2단계: 리포지토리 동기화. Jenkins X는 변경 사항을 감지하면 CI/CD 파이프라인을 자동으로 트리거합니다. 파이프라인은 GitOps 원칙을 사용하여 다양한 환경(예: 스테이징 및 프로덕션)을 통해 애플리케이션을 빌드, 테스트 및 홍보합니다.

  • 3단계: 대상 네임스페이스에 배포. Jenkins X는 환경 리포지토리(스테이징 및 프로덕션)를 새 애플리케이션 버전으로 업데이트합니다. 클러스터는 Git에서 최신 매니페스트를 가져와 애플리케이션을 적절한 네임스페이스에 배포하여 변경 사항을 자동으로 조정합니다.