1. CI/CD란?
소프트웨어 개발 프로세스를 자동화하고 효율화하는 방법론.
1 - 1. CI(Continuous Integration, 지속적 통합)
CI는 코드 변경사항을 주기적으로 통합하는 프로세스를 말한다.
1 - 1 - 1. 주요 특징
- 코드 변경사항을 자주 병합하여 충돌을 예방하고 오류를 조기에 발견한다.
- 자동화된 빌드와 테스트 과정을 거친다.
- 버그를 빠르게 발견하고 코드 품질을 향상 시킨다.
1 - 2. CD(Continuous Delivery/Deployment, 지속적 제공/배포)
CD는 CI 이후의 단계로, 두 가지 의미로 사용된다.
1 - 2 - 1. Continous Delivery (지속적 제공)
배포 준비가 완료된 코드를 수동으로 프로덕션 환경에 배포한다.
1 - 2 - 2. Continuous Deployment (지속적 배포)
배포 준비가 완료된 코드를 자동으로 프로덕션 환경에 배포한다.
CD의 목표는 다운타임을 최소화하면서 사용자에게 최신 버전의 소프트웨어를 제공하는 것이다.
2. CI/CD의 이점
- 개발 생산성 향상
- 버그와 오류를 빠르게 발견 및 수정
- 소프트웨어 제공 속도 향상
- 코드 품질 개선
- 팀 간 협업 촉진
3. CI/CD 도구
3 - 1. GitHub Actions
GitHub 저장소에 직접 통합되어 있는 CI/CD 도구.
3 - 1 - 1. 특징
- GitHub 저장소와의 강력한 통합
- 다양한 이벤트 기반 트리거
- 풍부한 커뮤니티
- 무료 사용 가능
3 - 2. Jenkins
Jenkins는 오픈 소스 CI/CD 도구.
3 - 2 - 1. 특징
- 높은 커스터마이징 가능
- 다양한 플러그인 지원
- 분산 빌드 및 다중 플랫폼 지원
- 대규포 프로젝트에 적합
3 - 3. GitLab CI
- GitLab CI는 GitLab과 통합된 CI/CD 도구로, GitLab 저장소를 기반으로 CI/CD 파이프라인을 구성할 수 있다.
3 - 3 - 1. 특징
- GitLab과의 통합
- 강력한 파이프라인 편집기 제공
- 자동화된 DevOps 수명 주기 관리
- 클라우드 및 온프레미스 모두 지원
References
https://docs.github.com/ko/actions
https://docs.gitlab.com/ee/ci/
https://velog.io/@ksj051203/CICD
https://ccomccomhan.tistory.com/297#google_vignette
https://velog.io/@juheesvt/Jenkins-Who-Are-You
https://velog.io/@junho5336/github-actions-deploy-pipeline
'인프라 > CI, CD' 카테고리의 다른 글
GitHub Actions로 CI/CD 파이프라인 구축하고 cloudtype에 배포하기 (0) | 2024.12.11 |
---|---|
GitHub Actions로 구현하는 자동화된 테스트 기반 CI 파이프라인 (0) | 2024.12.10 |
2024 12 9 TIL - GitHub Actions로 CI/CD 파이프라인 구축하기(Feat. AWS ECR, ECS) (2) | 2024.12.09 |
2024 12 6 TIL - AWS ECS, ECR, Gitlab CI로 CI/CD 파이프라인 구축하기 (2) | 2024.12.06 |