-
Notifications
You must be signed in to change notification settings - Fork 0
CI CD란?
Vardy edited this page Dec 10, 2023
·
1 revision
CI는 Continuous Integration의 약자로 지속적인 통합이라는 의미이고, 간단히 요약하자면 빌드/테스트 자동화 과정입니다.
즉, 여러 명의 개발자가 함께 프로젝트를 진행하는 환경(소스/버전 관리 시스템을 사용하는 환경)에서 변경 사항(커밋)이 있을 때마다 빌드와 일련의 자동 테스트가 이루어져 동작을 검사하고 변경 사항으로 인한 문제가 생기지 않도록 보장합니다.
지속적 통합은 유익하지만 CI/CD 파이프라인을 구현하기 위한 첫 번째 단계이기도 합니다.
CD는 Continuous Delivery(지속적인 서비스 제공) 또는 Continuous Deployment(지속적인 배포)를 의미하고, 간단히 요약하면 배포 자동화 과정 입니다.
지속적인 배포는 입증된 지속적인 통합 및 지속적인 전달 단계를 기반으로 동작합니다.
즉 커밋할 때마다 빌드, 자동화된 테스트 프로세스가 진행되고, 다양한 사전 프로덕션 환경으로 승격되며, 문제가 발생하지 않으면 최종적으로 배포가 이루어집니다.
그래서 CI/CD 파이프라인을 구축한다면, 하루에도 여러 번 이루어지는 릴리즈를 단순한 작업으로 만들 수 있습니다.
- Jenkins: Jenkins는 가장 널리 사용되는 오픈 소스 CI/CD 도구 중 하나입니다. 빌드, 테스트, 배포 등의 작업을 자동화하고 다양한 플러그인을 통해 확장 가능합니다.
- Travis CI: Travis CI는 클라우드 기반의 CI/CD 서비스로, GitHub와 연동하여 소스 코드 변경 사항이 감지될 때 자동으로 빌드 및 배포 작업을 수행할 수 있습니다.
- CircleCI: CircleCI는 클라우드 기반의 CI/CD 플랫폼으로, 빌드, 테스트, 배포 등을 자동화하고 Docker 컨테이너를 지원합니다.
- GitLab CI/CD: GitLab은 Git 저장소와 CI/CD 기능을 통합한 통합 소프트웨어 개발 플랫폼으로, 코드 관리와 CI/CD 프로세스를 편리하게 관리할 수 있습니다.
- TeamCity: TeamCity는 JetBrains에서 개발한 CI/CD 도구로, 다양한 언어와 플랫폼을 지원하며 유연한 구성 및 통합 기능을 제공합니다.
- Bamboo: Atlassian에서 개발한 CI/CD 도구로, JIRA, Confluence 등의 다른 Atlassian 제품과 통합이 용이하며 빌드 및 배포 프로세스를 자동화합니다.
- Spinnaker: Netflix에서 개발한 오픈 소스 CD (Continuous Delivery) 플랫폼으로, 클라우드 환경에서 애플리케이션 배포를 관리하는 데 사용됩니다.
- AWS CodePipeline: Amazon Web Services (AWS)의 CI/CD 서비스로, AWS 리소스 및 서비스와 통합하여 애플리케이션 배포 프로세스를 자동화합니다.
- 개발: 개발자는 로컬 환경에서 코드를 작성하고 버전 관리 도구인 Git을 사용하여 코드를 커밌(Commit)합니다.
- 빌드: 개발자 또는 빌드 담당자는 수동으로 코드를 빌드하고 컴파일하여 실행 파일 또는 배포 가능한 아티팩트를 생성합니다.
- 테스트: 수동 또는 자동으로 테스트 스위트를 실행하여 코드의 품질을 확인합니다. 이러한 테스트는 수동 또는 스크립트를 실행하여 수행됩니다.
- 배포: 릴리즈 준비 상태의 코드는 수동으로 서버로 배포됩니다. 이로 인해 배포 프로세스에 오류 및 인간 에러의 위험이 있습니다.
- 개발: 개발자는 로컬 환경에서 코드를 작성하고 Git 저장소에 커밋합니다.
- 자동 빌드: CI/CD 파이프라인에서는 코드 커밋이 감지되면 자동으로 빌드 프로세스를 시작합니다. 빌드 서버에서 소스 코드를 가져와 빌드 및 컴파일을 자동으로 수행하고 배포 가능한 아티팩트를 생성합니다.
- 자동 테스트: 빌드 이후 CI/CD 파이프라인은 자동으로 테스트 스위트를 실행합니다. 이러한 테스트는 단위 테스트, 통합 테스트, 성능 테스트 등을 포함할 수 있습니다.
- 자동 배포: 테스트가 통과되면 CI/CD 파이프라인은 자동으로 스테이징 환경 또는 프로덕션 환경으로 코드를 배포합니다. 이 과정에서 롤백 및 모니터링 옵션도 포함될 수 있습니다.
- 지속적인 모니터링: CI/CD 파이프라인을 통해 배포된 애플리케이션은 모니터링 및 로깅 시스템과 통합되어 운영 팀이 실시간으로 시스템의 상태를 확인하고 문제를 식별할 수 있습니다.