✅ 2) 기말 과제 전체 흐름 설계
📦 a. Nightly Build (infra-repo/nightly-build.yml)
- 매일 (또는 수동 버튼 클릭으로) 실행
- 각 app repo (frontend, backend-signup, backend-post)의 main 최신 코드 기준
- 빌드 + Docker 이미지 만들고 ECR에 푸시
- 테스트용 temp EC2 인스턴스에 배포해서 Smoke Test 수행
- 통과 시 → ECR:frontend-temp, ECR:backend-signup-temp 등 이미지 유지
🧪 b. QA 배포 (infra-repo/deploy-to-qa.yml)
- Nightly Build 성공시 자동 트리거
- 위에서 만든 temp 이미지 → QA EC2에 정식 배포
- docker run 해서 프론트+백엔드 2개 서비스 연결
- https://qa.myapp.com 같은 QA 환경에 접근 가능
🚀 c. Semantic Release (release.yml in each app-repo)
- 개발자가 main 브랜치에 semantic commit 메시지로 머지
- GitHub Actions에서 release.yml 실행
- .releaserc.json, prepare-release.sh, semantic-release 로 Maven 빌드
- RC 태그 (v1.2.0, rc5 등) 붙음
- infra repo의 promotion workflow 트리거 (예: promote-rc 이벤트)
- 이때 → UAT (또는 이후 Prod)로 자동 승격될 수 있음
🔁 전체 순서 다시 요약하면:
css
CopyEdit
[개발자 commit → main 머지] ↓ [nightly-build 수동 실행] ↓ [temp EC2에서 smoke test] ↓ [deploy-to-qa 수동 실행] ↓ [QA EC2에 실제 배포 + 테스트] ↓ [semantic-release 자동 실행] ↓ [UAT로 Promote (infra repo가 trigger됨)]
>>> 우선,, 토요일 현재,
MSA랑 Nightly Build, 그리고 deploy-to-qa 까지 했음. | 나머지는 이제 UAT랑 Production 하면됨.
-우선 MSA로 쪼갰음. 백엔드 2개로 api 기준 쪼개고 프론트엔드. 이렇게 3개의 Microservice (fe에 nginx.conf셋팅)
-각각 도커 만들어 주고. 각각의 레포에 올렸음. 푸시하면 ECR에 도커 이미지 저장되게끔 했음.
-nightly build 는 인프라 레포에 있고 도커 이미지 pull 해 와서 temp로 생성한 EC2에 배포하고 스모크 테스트
-성공하면 deploy-to-qa.yml을 트리거.
-deploy-to-qa.yml의 경우 성공시 태깅까지 해주고 그다음에 이제 뒤에 UAT랑 Production 트리거 해야겠지.
'미국유학 > CS686 DevOps' 카테고리의 다른 글
Final Project 구상 (0) | 2025.04.21 |
---|---|
Mid-term project : CICD pipeline with github action & aws & docker (nightly build and semantic release) (0) | 2025.03.02 |
Midterm Project - make CI pipeline with my Jake Project! (0) | 2025.02.27 |
C언어와 Java 언어 동작 방식 (0) | 2025.02.20 |
Assignment #7 (0) | 2025.02.16 |