CI/CD란 무엇인가

2021. 1. 8. 02:56Dev

728x90
반응형

d1.awsstatic.com/whitepapers/DevOps/practicing-continuous-integration-continuous-delivery-on-AWS.pdf

위 문서를 보고 작성한 글입니다.

 

 

 

CI(Continuous Integration)는 빌드와 테스트의 자동화

CI => Build & Test

CI는 개발자들이 코드를 머지하면 자동으로 빌드와 테스트 해주는 것 (지속적인 통합)

CI의 목표는 버그를 빨리 찾아서 알리는 것, 소프트웨어의 품질 향상, 새 소프트웨어의 validate와 release시간 단축

그래서 더 작은 커밋, 더 작은 코드변경까지 통합하려한다.

하루 한번 커밋하던 기존 방식에서 Integration의 빈도를 높인다.

추가로 비슷한 환경 테스트, 팀을 위한 프로세스 시각화, 개발자가 어떤 버전이든 쉽게 쓸 수 있게 해준다.

 

 

CD(Continuous Delivery)는 배포의 자동화

CD => Deploy

CD는 코드가 변하면 자동으로 빌드, 테스트, 릴리즈 준비까지 되는 것

CD는 전체 자동화 or 부분 자동화로 나눌 수 있다.

CD가 잘 구현되었다는 것은, 언제나 배포 가능한 build artifact를 가진것

 

 

CI/CD는 소프트웨어를 안정성과 보안을 유지하면서 빠르게 변화시키는 방법, 관행(practice)이다.

At the scale of a company like Amazon, thousands of independent software teams must be able to work in parallel to deliver software quickly, securely, reliably, and with zero tolerance for outages.

아마존같은 큰 회사에, 많은 독립적인 소프트웨어 팀이 있고, 절대 끊기지않게 software를 deliver해야한다. quickly, securely, reliably하게

CI/CD is key to delivering software features rapidly and reliably.

 

 

Continuous Delivery Is Not Continuous Deployment

Continuous Delivery와 Continuous Deployment의 차이는?

Delivery는 프로덕션은 수동으로, Deployment는 프로덕션까지 자동으로

(the point of continuous delivery is not to apply every change to production immediately,

but to ensure that every change is ready to go to production)

CD(Delivery)는 코드가 바뀔 때 마다 프로덕션이 되는게 아니라, 프로덕션을 할 준비가 되는것