웹 파이프라인/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 파이프라인 실행
비기능 테스트
종류
- 성능 테스트
- 부하 테스트
- 스트레스 테스트
- 확장성 테스트
- 내구성 테스트
- 보안 테스트
- 유지보수 테스트
- 복구 테스트
릴리스 패턴
프로덕션 새로운 소프트웨어 버전으로 업데이트할 때의 위험도 낮추는 전략
- 최종 릴리스에 수동 승인 절차 갖추는 방식 채택
릴리스 패턴의 종류
- 롤링 업데이트
- 블루-그린 배포
- 카나리아 릴리스
모니터링과 진단
- 모니터링
- 시스템 구성 인프라 내의 자원 상태와 활용도 등을 지속적 검사
- 진단
- 잠재적 위험 요소를 조기 발견하고 대응책 수립
- 알림
- 빌드 성공/실패, 자원 활용의 변화 등에 대하여 자동알림 설정