DevOps
CI/CD
다른 이름: Continuous Integration , Continuous Deployment , Continuous Delivery
정의
Continuous Integration/Continuous Deployment. 코드 커밋 시 자동 빌드/테스트(CI), 통과 시 자동 배포(CD). Jenkins, GitHub Actions, GitLab CI. 빠른 피드백, 버그 조기 발견, 배포 자동화로 개발 속도↑ 품질↑
상세 설명
기술 스펙
- CI (Continuous Integration): 코드 병합 시 자동 빌드/테스트
- CD (Continuous Deployment): 테스트 통과 시 자동 프로덕션 배포
- CD (Continuous Delivery): 수동 승인 후 배포
- Pipeline: 빌드 → 테스트 → 스테이징 → 프로덕션
- Artifact: 빌드 결과물 (JAR, Docker 이미지)
- Blue-Green: 두 환경 전환으로 무중단 배포
- Canary: 일부 트래픽만 신버전에 라우팅
실무 활용
- GitHub Actions: PR 시 자동 테스트
- Jenkins: 스케줄 빌드, 멀티 브랜치
- GitLab CI: .gitlab-ci.yml로 파이프라인
- CircleCI: Docker 기반 빌드
장점
- 빠른 피드백: 커밋 후 5~10분 내 테스트 결과
- 버그 조기 발견: 매 커밋마다 테스트
- 배포 자동화: 수동 배포 오류 제거
- 롤백 용이: 이전 버전으로 빠르게 복구
단점 및 제약
- 초기 구축 비용: Pipeline 설정 시간 필요
- 테스트 유지보수: 깨진 테스트 수정 부담
- 인프라 비용: 빌드 서버, Runner 필요
- 복잡한 디버깅: Pipeline 실패 원인 추적 어려움
호환성
GitHub, GitLab, Bitbucket. Jenkins, Travis CI, CircleCI
표준 정보
표준화 기구: DevOps 업계 표준 관행
출시 연도: 2000년