

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

# GitLab CI/CD
<a name="gitlab-cicd"></a>

GitLab CI/CD는 지속적인 통합, 전송 및 배포 기능을 제공하는 GitLab 플랫폼의 통합 부분입니다. GitLab CI/CD는 GitOps 도구만은 아니지만 특히 Kubernetes 배포에 사용할 때 GitOps 원칙을 구현하도록 구성할 수 있습니다.

## GitOps 지원
<a name="gitlab-cicd-gitops"></a>


| 영역 | 도구 기능 | 
| --- | --- | 
| Git을 신뢰할 수 있는 단일 소스로 사용 | GitLab CI/CD는 Git 리포지토리를 사용하여 애플리케이션 코드와 인프라 구성을 모두 저장합니다. 시스템에 대한 모든 변경 사항은 Git을 통해 이루어지므로 전체 기록 및 감사 추적이 보장됩니다. | 
| 선언적 구성 | GitLab CI/CD 파이프라인은 Git 리포지토리에 저장된 선언적 구성인 .gitlab-ci.yml 파일에 정의됩니다. Kubernetes 매니페스트, 차트 Helm 또는 기타 코드형 인프라(IaC) 파일을 동일한 리포지토리에 저장하여 원하는 인프라 상태를 정의할 수 있습니다. | 
| 자동화된 파이프라인 | GitLab CI/CD는 변경 사항이 리포지토리로 푸시될 때 파이프라인을 자동으로 트리거합니다. 이러한 파이프라인에는 애플리케이션 구축, 테스트 및 배포 단계가 포함될 수 있습니다. | 
| Kubernetes 통합 | GitLab CI/CD는 네이티브 Kubernetes 통합을 제공하고 Kubernetes 클러스터에 대한 GitOps 스타일 배포를 지원합니다. Git의 구성을 기반으로 Kubernetes 리소스를 자동으로 생성하고 관리할 수 있습니다. | 
| 환경 관리 | GitLab CI/CD는 여러 환경(예: 스테이징 및 프로덕션)의 정의를 코드로 지원합니다. 이러한 환경에 대한 배포는 GitOps 관행에 따라 자동화되거나 수동 승인이 필요할 수 있습니다. | 
| 애플리케이션 검토 | GitLab은 다른 GitOps 도구의 미리 보기 환경과 마찬가지로 병합 요청을 위한 임시 환경을 자동으로 생성할 수 있습니다. 이를 통해 병합 전에 변경 사항을 쉽게 검토하고 테스트할 수 있습니다. | 
| 지속적 배포 | GitLab CI/CD는 변경 사항이 특정 브랜치에 병합될 때 Kubernetes 클러스터에 변경 사항을 자동으로 배포하도록 구성할 수 있습니다. | 
| IaC | GitLab CI/CD는 Terraform 및와 같은 도구와의 통합을 지원 CloudFormation 하여 인프라를 코드로 관리합니다. 인프라 정의는 애플리케이션 코드와 함께 버전을 제어할 수 있습니다. | 
| 관찰성 및 모니터링 | GitLab CI/CD는 Prometheus 및 Grafana와의 통합을 포함하여 내장된 모니터링 및 관찰성 기능을 제공합니다. | 
| 보안 스캔 | GitLab CI/CD에는 CI/CD 파이프라인에 통합하여 GitOps 워크플로의 일부로 보안을 적용할 수 있는 보안 스캔 도구가 내장되어 있습니다. | 
| 컨테이너 레지스트리 | GitLab CI/CD에는 GitOps 워크플로에서 컨테이너 이미지 관리를 원활하게 통합하기 위한 컨테이너 레지스트리가 내장되어 있습니다. | 
| Auto DevOps | GitLab CI/CD의 Auto DevOps 기능은 Kubernetes 배포에 대한 GitOps 원칙을 따르는 CI/CD 파이프라인을 자동으로 구성할 수 있습니다. | 
| 승인 워크플로 | GitLab CI/CD는 환경 간에 제어된 프로모션을 제공하는 배포에 대한 승인 프로세스를 지원합니다. | 
| 보안 암호 관리 | GitLab CI/CD는 CI/CD 파이프라인 내에서 보안 암호를 안전하게 관리하고 사용하는 기능을 제공합니다. | 
| 버전 관리 및 릴리스 | GitLab CI/CD는 CI/CD 프로세스의 일부로 자동 버전 관리 및 릴리스 관리를 지원합니다. | 
| 롤백 | GitLab CI/CD를 사용하면 배포 후 문제가 감지되면 이전 버전으로 쉽게 롤백할 수 있습니다. | 
| 감사 로그 | GitLab CI/CD는 GitOps의 추적 가능성 측면을 지원하기 위해 모든 작업에 대한 포괄적인 감사 로그를 제공합니다. | 
| 다중 프로젝트 파이프라인 | GitLab CI/CD는 여러 프로젝트 또는 리포지토리에 걸쳐 있는 복잡한 GitOps 워크플로를 지원합니다. | 
| ChatOps | GitLab CI/CD는 채팅 인터페이스를 통해 협업 및 작업을 제공하는 ChatOps 통합을 지원합니다. | 
| Kubernetes 클러스터 관리 | GitLab CI/CD는 GitLab 인터페이스에서 직접 Kubernetes 클러스터를 관리하는 기능을 제공합니다. | 

GitLab CI/CD는 GitOps용으로 독점적으로 설계되지는 않았지만, 특히 이미 GitLab을 기본 개발 플랫폼으로 사용하는 팀의 경우 GitOps 관행을 구현하는 데 효과적으로 사용할 수 있습니다. GitLab 소스 제어, CI/CD 및 Kubernetes 관리를 결합한 통합 접근 방식을 사용하면 GitOps 워크플로를 구현하기 위한 강력한 도구가 됩니다.

GitLab CI/CD와 Argo CD 또는 Flux와 같은 전용 GitOps 도구 간의 주요 차이점은 GitLab이 CI/CD 기능과 함께 소스 제어 관리, 문제 추적 및 기타 개발 도구를 포함하는 보다 포괄적인 플랫폼을 제공한다는 것입니다. 따라서 더 광범위한 개발 시스템 내에서 GitOps 관행을 구현할 수 있는 all-in-one 솔루션이 필요한 팀에 특히 적합합니다.

GitLab CI/CD 및 아키텍처에 대한 자세한 내용은 [GitLab CI/CD 설명서를](https://docs.gitlab.com/ci/) 참조하세요.