CI : 개개인의 branch code가 공통으로 사용되는 master code에 안정적으로 병합되는 것을 자동화하는 것
CD : 마스터코드를 배포서버에 배포하는 것.
그런데 배포 서버도 여러 종류가 있고 (개발/QA/운영), 배포 시점에 코드 테스트를 할 수도 있다.
---
내가 개발한 코드가 Github에서 Jenkins로 가고, Jenkis에서 Gradle로 보낸담에
Maven이라는 Library 저장소에서 내 코드에 대한 dependencies를 다운받고, Gradle이 소스 컴파일을 한 다음에
docker가 컨테이너 이미지를 빌드하고 이걸 container registry에 저장함.
그리고 helm chart 저장소에서 ci/cd 툴에다가 helm 차트 탬플릿을 배포하고, CI/CD가 그걸 이용해서 helm을 쿠버네티스에 배포하면
쿠버네티스가 배포하면서 컨테이너 저장소에서 컨테이너 이미지 가져와서 pod을 배포하는거임.
---
배포시 고려 요소?
1. 한 helm 차트로 여러 환경에 배포
개발, QA, 운영
2. 한 Helm 차트로 여러 App을 배포
Spring, Kubernetes Resource, Tomcat, Plugin Enabled
3. Helm 차트 배포/관리
Helm Command, Kubernetes Resource
4. 배포 전략
Recreate/Rolling, Canary, Blue/Green
'System Engineering > DevOps' 카테고리의 다른 글
SLURM (리눅스 클러스터 - 작업 스케줄러) (0) | 2022.05.19 |
---|
최근댓글