CI/CD

지속적 통합/지속적 배포

전통적인 소프트웨어 전달 방식은 출시 기한을 정해놓고 소프트웨어를 완성(Waterfall모델)을 했었다 문제는 출시 시점에 소프트웨어의 신뢰성과 안정성을 보장할 수 없으며 출시를 약속하고 서비스를 진행했지만 예상치 못한 변수 및 문제점이 발생 가능성이 높음

Waterfall 모델의 특징

사용자가 항상 최신 상태로 업데이트 해야 하므로 사용자에게 소프트웨어의 수정된 사항을 전달하기 매우 어려움 사용 예 : Mobil Application

Waterfall 모델의 단점을 보안하고자 나온 Agile 모델

Agile이 사람이름인가? ‘날렵한, 민첩한, 기민한’ 뜻의 영어단어


CI/CD Pipline

CI(Continuous Integration)

  • 버그 조기 발견
  • 테스트 후 빠른 지속적 배포

CI Tools

  • Jenkins 별도 서버 필요, OS 호환성 좋음, 쿠버네티스와 Docker 호환됨
  • Travis CI SaaS 형태로 사용, 다양한 언어 지원
  • GitHub Action GitHub 저장소 기반, 편한 공유, YAML 파일로 CI/CD 파이프라인을 설정

💡 Build 프로그램의 소스 코드를 독립적인 아티팩트(artifact)로 변환하는 과정입니다. 때로는 그 artifact 그 자체로도 실행이 가능하며, 대체로 런타임(소프트웨어 실행 환경)이 필요한 경우가 많습니다.

CD(Continuous Delivery)

  • Release : 배포 가능한 소프트웨어 패키지를 작성
  • Deploy : Provisoning을 진행하고, 서비스를 사용자에게 노출
  • Operate : 서비스에 생길 수 있는 현황을 파악하고 문제를 감지

💡 – Provisioning : 자원을 할당하고 구성하는 과정 – Agile 개발에서의 Release ≠ 출시 Release : 서비스나 기능을 사용자가 사용 할 수 있게끔 만드는 것 (하나 이상의 변경 결과로 실제 환경에 배포된 하나 이상의 새롭거나 변경된 서비스 또는 서비스 구성 요소 모음)출시 : 서비스가 사용자에게 노출되거나 내보냄

CD(Continuous Delivery) 종류

Leave a Comment