CI/CD

흑이·2023년 1월 27일
0

CI/CD

  • CI : Continuous Integration (지속적인 통합)
    • 개발자들이 자기들의 개발을 중앙 레포지토리에 올려 테스트를 하고, 다른 개발자들의 코드에 영향이 가지 않게 해야함
    • 개발자들의 코드 충돌을 막아주는 것

  • CD : Continuous Deployment (지속적인 배포)
    • 개발자들은 수많은 개발과 버그를 수정함 지속적으로 프로그램을 배포함으로써 사용자가 불편함을 느끼지 못하도록 서버의 다운, 프로그램 일시 중지되는 현상을 막기 위해 도입한 개념
    • 많은 부분들이 자동화


CI/CD의 장점

  • 자동화 시스템 (Automation) - 테스트
  • Incremental Change
    (A, B, C 기능을 구현할때 A를 먼저 끝내고 테스트, 그다음 B로 이렇게 점점 프로그램을 수정시키는 것을 말함)


CI/CD - 중앙 리포지토리(Repository)

  • Github
    • Local & Mater branch
    • 로컬에서 테스트 후 마스터 브랜치로 머지


CI/CD - 배포준비 및 배포

  • 배포 준비
    • 테스트 통과 후 마스터 브랜치에 코드가 머지되면 배포를 준비
  • 배포
    • CI/CD로 자동화

CI의 순서

  1. 개발자가 구현한 코드를 기존 코드와 병합한다.
  2. 병합된 코드가 올바르게 동작하고 빌드되는지 검증한다.
  3. 테스트 결과 문제가 있다면 수정하고 다시 1로 돌아간다. 문제가 없다면 배포를 진행한다.

CD

  • CD은 CI를 통해서 새로운 소스코드의 빌드와 테스트 병합까지 성공적으로 진행되었다면, 빌드와 테스트를 거쳐 github과 같은 저장소에 업로드하는 것을 의미한다.

  • 지속적 배포는 이렇게 성공적으로 병합된 내역을 저장소뿐만 아니라 사용자가 사용할 수 있는 배포환경까지 릴리즈하는 것을 의미한다.

  • 지속적 배포에서는 지속적 통합을 통해 빌드한 소스코드를 테스트 가능한 알파나 베타 버전으로 만든다. 이 버전에서 테스트를 수행해 문제가 발생하면 수정한 뒤 정식 버전으로 배포를 진행한다.



https://tecoble.techcourse.co.kr/post/2021-08-14-ci-cd/
https://www.inflearn.com/course/aws-%EC%9E%85%EB%AC%B8/dashboard

0개의 댓글