Programing/운영, 배포, 관리 / / 2021. 12. 15. 17:35

CI/CD란 무엇일까? (Continuous Integration/Continuous Delivery)

Continuous Integration(CI)란?


- Continuous Integration(CI)란 지속적인 통합이라는 의미

 

- 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스팅 되어 공유 레포에 통합되는 것을 의미

 

- CI를 적용하면 코드들을 main브랜치와 잘 merge되는지, 빌드되는지 확인하고 동작을 검증하는 과정 수행

 

- git등의 형상관리 툴을 사용하면 지속적인 버전 업데이트를 하게 되는데, 이것을 자동화 된 빌드/테스트를 하는 것

 

- 최근엔 MSA 처럼 작은 단위로 기능을 쪼개어 개발하는 애자일 방법론을 채택하고 있는데, CI를 사용하면 기능 충돌 방지 예방 가능

 

->> 테스팅을 통해 버그를 빠르게 찾아서 빠르게 소프트웨어의 품질 개선을 통해 빠르게 업데이트의 검증 및 릴리즈 시간 단축의 의의

 

CI의 간단한 순서 정리1

1. 개발자가 구현한 코드를 기존 코드와 병합

2. 병합된 코드가 올바르게 동작하고 빌드되는지 검증

3. 테스트 결과 문제가 있다면 수정하고 다시 1로 돌아간다. 문제가 없다면 배포를 진행

CI의 간단한 순서 정리2

1. 모든 개발자는 퇴근하기 전에 자신의 코드를 중앙 코드와 통합한다.

2. 통합된 코드에서 본인의 코드가 제대로 동작하는지 테스트한다.

3. 통합된 코드가 제대로 빌드되는지 테스트한다.

4. 결과를 정리하고. 버그가 있다면 다음날 업무 목록에 적어둔다.

 

Continuous Delivery(CD)란?


- CD는 CI의 연장선이며 소프트웨어가 항상 신뢰 가능한 수준에서 배포될 수 있도록 지속적으로 관리하자는 의미

 

- Continuous Delivery (지속적 배포) : 지속적 제공은 CI를 통해서 새로운 소스코드의 빌드와 테스트 병합까지 성공적으로 진행되었다면, 빌드와 테스트를 거쳐 github과 같은 저장소에 업로드하는 것을 의미

 

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

 

 

 

 

CI/CD 자동화 도구에는 Jenkins, Travis 등이 있다.

[나중에 포스팅 할 예정]

 

 

 

 

ref.

1. https://artist-developer.tistory.com/24

2.  https://tecoble.techcourse.co.kr/post/2021-08-14-ci-cd/

3. https://itholic.github.io/qa-cicd/

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유