웹 파이프라인/CD

간단한 CD 파이프라인

thinktank911 2025. 12. 18. 17:54

 

CD 파이프라인 설계

CI 파이프라인 상태

  • Code checkout -> Build & test -> Packaging&Registry push까지 완성
  • Staging과 Acceptance test는 임시상태(docker 이용)

스테이징 환경과 프로덕션 환경 구성 <- 테라폼 IaC 이용
Acceptance test와 smoke test 단계 설정
빌드버전 관리

파이프라인 개발 전략

  • 스테이징 환경 구성 설계
  • 로컬 환경에서 테스트
  • Jenkins 파이프라인에 통합
    • Build agent 구성 업데이트
    • pipeline script 테스트
    • Jenkinsfile 작성

소프트웨어 배포 환경 유형

개발환경

  • 코드 개발에 적용: 모든 개발자가 이용하는 공유 서버를 활용하거나 개발자마다 별도 실행 환경 활용

테스트 환경

  • QA 팀이 외부 시스템과의 상호작용을 퐘한 통합 테스트에 적용: 실제 서비스 운용 구성과 같지 않음

스테이징 환경

  • 실제 서비스하기 직전 최종 테스트에 적용: 서비스 운용 환경(프로덕션)을 가능한 그대로 복제

프로덕션 환경

  • 최종 사용자를 대상으로 서비스 적용: 비즈니스 요구사항에 따라 설계, 웅용 및 진화

서로 다른 클러스터에의 동일한 방식의 접근

둘 이상 클러스터에 대한 접근 방식을 각각 Jenkins credentials로 설정하고
스테이징과 프로덕션에 적용


마무리

  • Docker - 응용 컨테이너화하여 독릭적이고 통일괸 환경에서 실행할 수 있도록 함
  • Kubernetes - 컨테이너화된 응용을 효과적이고 안정적으로 운용
  • Terraform - 응용이 실행될 인프라 리소스 구성과 의존 관계 코드로 관리
  • Jenkins - 빌드, 테스트, 배포, 관리 등의 작업을 자동화하여 CI/CD 파이프라인 실행

비기능 테스트

종류

  • 성능 테스트
    • 부하 테스트
    • 스트레스 테스트
    • 확장성 테스트
  • 내구성 테스트
  • 보안 테스트
  • 유지보수 테스트
  • 복구 테스트

릴리스 패턴

프로덕션 새로운 소프트웨어 버전으로 업데이트할 때의 위험도 낮추는 전략

  • 최종 릴리스에 수동 승인 절차 갖추는 방식 채택

릴리스 패턴의 종류

  • 롤링 업데이트
  • 블루-그린 배포
  • 카나리아 릴리스

모니터링과 진단

  • 모니터링
    • 시스템 구성 인프라 내의 자원 상태와 활용도 등을 지속적 검사
  • 진단
    • 잠재적 위험 요소를 조기 발견하고 대응책 수립
  • 알림
    • 빌드 성공/실패, 자원 활용의 변화 등에 대하여 자동알림 설정