개요
CI/CD 는 애플리케이션 개발 단계를 자동화하여 짧은 주기로 서비스를 제공하는 방법임
지속적인 통합, 지속적인 배포, 지속적인 서비스 제공으로 이루어지는데 이는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제를 해결해 줄 수 있음
CI vs CD
애플리케이션 개발에 지속적인 자동화 및 지속적인 모니터링을 추가하는 것!
CI(Continuous Integration)
- 클래스와 기능에서부터 전체 애플리케이션을 구성하는 서로 다른 모듈에 이르기까지 모든 것에 대한 테스트를 수행함
- 자동화된 테스트에서 코드 간의 충돌이 발견되면 CI를 통해 버그를 빠르게 수정 할 수 있음
CD(Continuous Delivery)
지속적 제공 관점
- 개발자의 변경(커밋) 사항을 레포에서 프로덕션 환경까지 자동으로 릴리즈함
- 애플리케이션 제공 속도를 저해하는 수동 프로세스로 인한 프로세스 과부하 문제를 해결함
- 파이프라인의 다음 단계를 자동화함으로써 지속적인 제공이 가진 장점을 활용함
지속적 배포 관점
- 애플리케이션을 프로덕션으로 릴리즈 하는 작업을 자동화 함
- 개발자가 애플리케이션에 변경 사항을 작성한 후 몇 분 이내에 애플리케이션을 자동으로 실행 할 수 있는 것
- CI/CD 파이프라인의 여러 테스트 및 릴리스 단계를 수행 할 수 있어야 하기 때문에 많은 선행 시간이 투자 되어야 함