728x90
➡️CI (Continious Integration)
- CI는 Continious Integration의 약자이며, 지속적 통합이라는 의미이다.
- 지속적 통합이란, 애플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합하는 것을 의미한다.
- CI는 지속적으로 서비스해야 하는 애플리케이션은 기능 추가 시마다 커밋을 날려 저장소에 버전을 업데이트 해야한다. 여러명의 사람이 한팀으로 작업을 할 경우 많은 커밋들이 쌓이게 된다. 그럴 때마다 , 기능 별로 빌드/테스트/병합을 한다면 너무 번거로운 작업이 된다.이러한 상황에서 자동화된 빌드 & 테스트는 소스코드의 충돌 등을 방어하는 이익을 제공할 수 있다.
- CI는 MSA환경에서는 대부분 소규모 기능 단위로 빠르게 개발 & 적용을 반복하는 방법론이 적용되기 때문에 기능 추가가 빈번하게 발생하게 된다. 이러한 상황에서 CI적용은 기능 충돌 방지등의 이익을 제공할 수 있다.
- 그래서 CI목표는 버그를 신속하게 찾아 해결하고, 소프트웨어 품질을 개선하고, 새로운 업데이트의 검증 및 릴리즈의 시간을 단축시키는 것에 있다.
➡️CD (Continuous Delivery & Continuous Deployment)
- CD는 Continuous Delivery & Continuous Deployment 두 용어의 약자이다. 해석을 하자면 지속적인 서비스 제공 혹은 지속적인 배포란 의미이다.
- Continuous Delivery는 공유 리포지토리로 자동으로 릴리즈 하는 것이고, Continuous Deployment는 production레벨까지 자동으로 deploy 하는 것을 의미한다.
- CD는 개발자의 변경 사항이 리포지토리를 넘어, 고객의 프로덕션 환경까지 릴리즈 되는 것을 의미한다.
- CD는 서비스 이용자가 최대한 빠른 시간 내에 최신 버전의 Production을 제공받을 필요가 있습니다. 그렇다는것은 소프트웨어가 언제든지 신뢰 가능한 수준의 버전을 유지할 수 있도록 지원하는 것이 CD라고 한다.
728x90
'Dev > 인프라' 카테고리의 다른 글
AWS Route 53 (5) | 2024.09.12 |
---|---|
Docker (1) | 2024.09.10 |
[Server] 로드 밸런싱(Load balancing) (0) | 2021.11.05 |
[AWS] EC2 인스턴스 구축하기 (0) | 2021.10.24 |
[Server]운영 서버에 대한 정리 (0) | 2021.10.21 |