프로그래머스 데브코스 웹 풀사이클 21주차 1일차

웹 기반 문서 편집기 제작 프로젝트
빌드 및 패키징
컨테이너 이미지 빌드 절차
- 코드의 빌드
- 컨테이너의 빌드
- 이미지의 레지스트리 푸시
상세 단계
- Production Build 단계
기존에 작성했던 Makefile 의 타겟을 그대로 이용하여 build 디렉토리에 빌드 결과물 생성한다
- Container Build 단계
빌드 결과물을 컨테이너 이미지 안으로 넣고 부가적인 설정을 행하여 컨테이너화
세부 설정은 배포 시점에 결정될 수 있도록 한다
이미지 태그에 빌드 버전이 포함되도록 관리한다
- Image Push 단계
AWS ECR 에 빌드된 이미지 푸시한다
Jenkins 플러그인에 AWS access key (와 상응하는 secret access key) 를 등록해서 인증한다
스테이징 배포
Shell Script 작성
- 스테이징 환경과 프로덕션 환경의 차이에 대응하는 S3 백엔드 설정한다
- KUBECONFIG_PATH: 적용할 kubeconfig 파일 IMG_BE: 백엔드 컨테이너 생성에 적용할 이미지IMG_FE: 프론트엔드 컨테이너 생성에 적용할 이미지 변수로 지정한다
- 인자로 주어지는 on/off 스위치에 따라 리소스 배포/삭제 동작한다.
스테이징 서버에 배포
- 스테이징 서버의 minikube 클러스터에 배포 상태를 확인한다
- 스테이징 서버의 URL 을 이용한 브라우저 접근으로 테스트한다
인수 테스트
전체 CI/CD 파이프라인의 구조
- 스테이징 배포와 프로덕션 배포는 동일한 구성의 환경을 대상으로한다
- 스테이징 서버에서는 인수 테스트 실행한다
- 프로덕션 서버에 대해서는 스모크 테스트만 실행한다