CI/CD란?

연수·2022년 3월 5일
0

CI/CD

목록 보기
1/4

📖 CI/CD의 정의

✔️ CI

Continuous Integration. 즉, 지속적 통합. 애플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 레포지토리에 통합되는 것을 의미

✔️ CD

Continuous Delivery/Deployment. 즉, 지속적인 서비스 제공 혹은 지속적인 배포. 개발자의 변경 사항이 공유 레포지토리로 자동 release되고 고객의 프로덕션 환경까지 release 되는 것을 의미

 

🚧 CI/CD의 프로세스

  • 위의 그림과 같이 CI/CD를 위한 파이프라인을 구성하고 이를 자동화 단계까지 수행한다. 또한, 중간중간 모니터링 지표를 구성하여 개발자들의 개발 방향을 가이드한다.
  • CI/CD 파이프라인은 개발 환경에서 테스트와 스테이징을 거쳐 최종적으로 출시하여 사용자에게 전달하기 위해 코드가 거치는 일련의 단계를 말한다.
  • CI/CD는 이 프로세스를 정기적으로 실행하는 것이기 때문에 각 단계마다 다음 단계를 트리거하거나 문제가 발생한 경우 플래그를 표시하여 가능한 한 많은 프로세스를 자동화하는 것이 중요하다.

 

⚡ CI/CD의 상세(핵심요소)

✔️ SCM, 플래그 및 브랜치

  • 전체 코드 베이스를 버전 관리 시스템(SCM)으로 전환한 다음, 팀의 모든 사용자가 자주 변경 사항을 커밋하도록 한다.
  • 기능 플래그를 사용하여 사용자가 코드를 볼 수 있는 환경을 지정하며, 기능 브랜치를 통해 별도의 브랜치에서 기능을 개발할 수 있다.

✔️ 빌드 및 테스트

  • 빌드 전 정적 분석 검사가 실행된다.
  • 전용 빌드 서버에서 자동화된 빌드를 실행한다.
  • 빌드 단계에서 통합 테스트, 구성 요소 테스트, 성능 및 보안 테스트 등 자동화 테스트를 실행한다.

✔️ 사전 프로덕션 환경

  • 테스트 및 스테이징 환경
  • 빌드된 결과를 통해 테스트 환경을 업데이트하고, 스테이징 환경을 통해 여러 기능적인 부분을 검증한다.

✔️ 배포

  • 코드 변경 사항이 각 파이프라인 단계를 성공적으로 통과하면 프로덕션에 릴리즈된다.
  • 수동 릴리즈(지속적 전달)를 통해 배포 시기를 통제할 수도 있고, 자동 릴리즈를 통해 완전히 자동화된 배포 프로세스를 구축할 수도 있다.

 

⛏️ CI/CD 툴

  • 대표적인 CI/CD 툴로는 Jenkins, Travis CI, Bamboo, AWS CodePipeline, GitLab CI/CD 등이 있다.

 

[참고] https://www.redhat.com/ko/topics/devops/what-is-ci-cd

profile
DCDI

0개의 댓글