DevOps 와 CI/CD

DevOps

데브옵스란 Development + Operatorions 개발과 운영의 경계를 허무는 것이다. 개발팀과 운영팀이 단일팀으로 병합되어 엔지니어가 개발, 테스트, 배포, 운영 까지 관여한다. DevOps는 개발과 운영을 통합하여 개발 프로세스의 속도를 높이는 접근방식, 문화이다.

CI Continuous Integeration 지속적 통합

지속적 통합(CI)은 다수의 개발자가 작성하고 수정한 소스코드들이 자동화된 빌드 및 테스트되어 공유 레포지토리에 지속적으로 통합하는 것을 의미한다. 일반적으로 단위테스트, 통합테스트 등의 테스트 자동화가 포함된다. 자동화된 테스트를 통해 버그를 찾고, 소프트웨어 품질을 개선하며, 업데이트를 검증하고 출시하는데 걸리는 시간을 단축시킨다.

CD Continuous Delivery 지속적 제공(전달)

지속적 전달 Continuous Delivery는 CI 에서 빌드 및 테스트를 마친 이후 유효한 코드를 스테이징 환경으로 푸시한다.

CD Continuous Deploy 지속적 배포

CI/CD 파이프라인의 마지막 단계로 지속적 제공 Continuous Delivery의 확장된 형태이다. 레포지토리에 변경사항이 발생하면 이를 프로덕션 환경까지 자동으로 릴리스 하는것을 의미한다.

두 CD의 차이

AWS CI/CD Illustration

프로덕션 배포전에 승인이 필요한지, 자동으로 배포를 하는지의 차이