[DevOps] CI/CD란 무엇인가?
CI / CD
CI (Continuous Integration)
여러 개발자가 작성하거나 수정한 소스를 빌드하고, 테스트를 거치며 지속적으로 통합 하는 과정 CI 파이프라인이 구축되어있지 않은 상황이라면, 10명의 개발자가 각자, 빌드 후, 테스트, 통합의 과정을 거치게 되는데 문제는 빌드, 테스트, 배포 과정이 10명의 개발자가 개발한 소스를 모아서 한꺼번에 빌드하는 작업을 진행한다면, 많은 시간이 소요된다.
- 여러 개발자들이 같은 애플리케이션을 동시에 작업할 수 있도록 함
- 여러 개발자들 간에 서로 코드 충돌을 방지
- 개발자들이 적용한 변경사항이 버그 테스트를 거쳐 공유 레포지터리에 통합
- 자동화된 테스트에서 기존코드와 신규코드간에 충돌이 발견되면, CI를 통해 버그를 더 빠르고 자주 수정
CD (Continuous Delivery/Deployment)
CD는 개발된 SW가 배포되는 시점에 신뢰할 수 있는 수준을 유지하도록 지속적으로 관리하는 과정
CD를 통해 개발부터 배포까지 간소화되기 때문에, 소스 코드 수정 후 즉각적인 반영이 가능하다는 장점이 있다. ( 빠른 장애 대응 ) 또한 빌드, 테스트, 배포를 자동화가 가능하며, 테스트를 통해 애플리케이션 배포에 대한 위험을 줄여주므로, 변경사항을 작은 조각으로 세분화하여 쉽게 릴리즈가 가능하다.
- CI를 통해 빌드와 테스트를 진행하고, 이를 통과한 코드에 대해 테스트서버와 운영서버에 자동으로 릴리즈
- 항상 배포할 수 있는 준비가 되어있는 소스코드를 자동으로 올라갈 수 있도록 함
- 지속적인 제공을 거쳐 배포가능한 코드를 프로덕션 레벨로 릴리즈하는 것을 의미
CI / CD Tool
- Jenkins
- Openshift
- Travis
- CircleCI 등…
Reference
- https://dzone.com/articles/the-complete-introduction-to-cicd-1
- https://www.redhat.com/ko/topics/devops/what-is-ci-cd
- https://itholic.github.io/qa-cicd/
댓글남기기