X

CI (Continuous Integration), CD (Continuous Delivery)

1. 기존 개발 환경의 문제점과 CI/CD 도입 필요성

  • 전통적인 개발 환경의 코드 통합과 배포 문제들을 해결하기 위해 작게, 자주, 자동화 적용하는 개발/배포 철학인 CI (Continuous Integration)와 CD (Continuous Delivery or Continuous Deployment)가 등장

 

2. CI (Continuous Integration)의 개념 및 단계 별 활동

(1) CI의 개념 및 주요 단계

개념 소프트웨어 품질 확보를 위해 코드 통합 주기 단축, 자동 빌드와 테스트로 품질을 검증하는 개발 프로세스
주요
단계

(2) CI의 주요 단계 및 활동

주요 단계 활동 도구 사례
① 코드 커밋
(Code Commit)
– Git 등 VCS Repository에 코드 푸시(Push)
– Pull Request, Review 후 메인 브랜치에 병합(Merge)
– GitHub
– GitLab
② 빌드 (Build) – 버그, 코드 스타일 위반, 보안 취약점 등 검사
– 소스 코드를 바이너리로 변환 등 실행 가능한 형태 생성
– Jenkins
– Gradle
테스트 (Test) – 단위 코드가 의도대로 작동하는지 검증(Unit Test)
– 전체 코드가 정상 동작하는지 검증 (Integration Test)
– JUnit
– Playwright

 

3. CD (Continuous Delivery)의 개념 및 단계 별 활동

  • CD: Continuous Delivery 또는 Continuous Deployment

(1) CD의 개념 및 주요 단계

개념 사용자에 소프트웨어 신속 제공을 위해 코드 검증 및 운영 환경 배포를 자동화하는 프로세스
주요
단계

(2) CD의 주요 단계 및 활동

주요 단계 활동 도구 사례
④ 아티팩트 생성/저장
(Artifact Repository)
– 빌드/테스트 완료 결과물(실행 파일, Docker 이미지 등)에 버전을 추가하여 저장소에 안전하게 저장 – JFrog
– Nexus Repo.
⑤ 스테이징 환경 배포
(Staging Deployment)
– 운영 환경과 거의 동일하게 구성된 환경에 배포
– 실제 데이터와 유사한 환경에서 최종 점검 진행
– Argo CD
– Jenkins
⑥ 운영 환경 배포
(Production Deployment)
– 실제 사용자가 사용하는 운영 환경에 배포
롤링, 블루/그린, 카나리 배포 등 중단 최소화
– Argo CD
– Jenkins
  • CI/CD의 기술적 도구를 기반으로 신뢰 구축과 개발/운영의 벽(Silo) 해소, 지속적 개선(Continuous Improvement) 문화 및 프로세스로 적용한 DevOps로 진화

 

3. CI/CD 파이프라인 기반 DevOps

(1) DevOps의 개요

개념 수행 절차
개발과 운영의 합성어로 개발과 운영 간의 상호 작용을 원활하게 하기 위한 개발 방법론

(2) DevOps의 구성요소

구분 구성요소 역할
품질 테스트 자동화 서비스 통합/시스템 테스트
– 단위테스트(xUnit), UI 테스트
프로세스 내재화 – 업무 백로그-운영을 프로세스화
– 운영 이슈 개선 위한 프로세스
프로세스 소규모 릴리즈 – 변화에 유연, 롤백 용이
– Cycle-time 감소, 피드백 강화
지속적 통합
(Cont. Integration)
– 개발초기-릴리즈 간 요구 반영
CMDB 코드 통합, Test, Release
도구 어플리케이션
릴리즈 자동화
– 개발팀은 형상관리 기반 배치
– 운영팀은 표준화GW 사용
프로비저닝 IaC 기반 코드 자동 설치, 시스템 구성
– Tool: 퍼펫(Puppet), 셰프(Chef)
  • DevOps에 인공지능 기반 분석 및 추론을 통해 IT 운영 문제 해결 및 자동화하는 AIOps로 진화

 
[참고]

  • RedHat, CI/CD(지속적 통합/지속적 배포)란, 2025.2
  • IBM, Chrystal R. China, Micheal Goowin, 지속적 통합이란 무엇인가요
도리: