Back-End

CI/CD

kwaktaem 2022. 2. 22. 20:33

CI (Continuous integration)

  • 지속적인 통합을 의미
  • 직속적인 통합은 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어서 공유 레포지토리에 통합하는 것을 의미한다.

 

CI가 필요한 환경에서의 조건

다수의 개발자가 형성관리 툴을 공유하여 사용하는 환경

  • 자동화된 빌드와 테스트는 원천 소스코드의 충돌 등을 방어

 

MSA(Micro Service Archietecture) 환경

  • 최근에 떠오르고 있는 아키텍쳐 모델
  • MSA는 작은 기능별로 서비스를 짧게 나누어 개발하는 형태를 의미
  • MSA환경에서는 대부분 소규모 기능 단위로 빠르게 개발하는 것과 적용을 반복하는 개발방법론이 적용되기 때문에 기능 추가가 빈번하게 발생하게 된다. 이러한 상황에서 CI의 적용은 기능 충돌 방지 등을 제공한다.

 

CI의 핵심 목표

  • 버그를 신속하게 찾아 해결
  • 소프트웨어의 품질을 개선
  • 새로운 업데이트의 검증 및 릴리즈의 시간을 단축시키는 것

 

CD (Continuous Delivery & Continuous Deploymnet)

  • 지속적인 서비스 제공 및 지속적인 배포
  • Continuous Delivery는 공유 레포지토리로 자동으로 릴리즈하는 것
  • Continuous Deployment는 Production 레벨까지 자동으로 Deploy하는 것
  • CI가 새로운 소스코드의 빌드, 테스트, 병합을 의미한다면, CD는 개발자의 변경 사항이 레포지토리를 넘어서, 고객의 Production 환경까지 릴리즈 된는 것을 의미

출처: https://artist-developer.tistory.com/24