첫번째로, 파이프라인을 구성 할 때 [관리 담당]에 대한 부분을 고려해야한다.
프로젝트를 쿠버네티스로 배포할 때 반드시 Kubectl 뿐만 아니라 Helm과 Kustomize를 이용하여 배포도 가능하다.
Jenkins Pipeline으로 여러 프로젝트 작업을 모아 볼 수 있어 업무 분장 및 관리 책임에도 좋다.
두번째로, [운영 정책]이 있다.
Jenkins에서는 소스 빌드랑 컨테이너 빌드만하고, ArgoCD라는 쿠버네티스 전용 배포툴을 이용하면 각각에 쿠버네티스 환경에 배포를 할 수 가 있다.
ArgoCD에서 모든 배포를 담당하는 단일 구성의 경우에는 하나의 ArgoCD만 관리하면 편하지만, 장애가 발생하면 모든 Node의 배포가 중단이된다.
각 Node마다 ArgoCD를 두는 분리 구성의 경우, 관리해야 할 ArgoCD가 Node 개수에 비례하여 늘어나서 관리가 힘들지만, 장애가 발생해도 다른 Node의 배포에는 영향이 없다.
세번째로, [제품선정]이다.
온라인 용 CI/CD 도구로 GitHub Actions가 있고, 오프라인 용 도구로 Jenkins, jenkinsX, TEKTON이 있다.
온라인은 인터넷 환경에 연결해서 쓰기 때문에, 당연히 CI/CD 서버를 별도로 만들 필요가 없다는 장점이 있다.
오프라인으로 JenkinsX는 젠킨스에서 컨테이너 환경에 맞춰서 새롭게 만든거고, Tekton 역시 컨테이너 환경에 최적화된 CI/CD를 목적으로 만들어진 도구이다.