해결된 질문
작성
·
264
0
강의 주제랑 벗어나는 얘기지만 CI/CD에 대해 궁금한점이 있어 질문 드립니다.
프로젝트를 진행하다가 젠킨스 구축을 하려고 하는데 젠킨스 안에 awscli, git, terrform, docker 등 개발자 뿐만아니라 저 또한 젠킨스 자동화 파이프라인 이용해보려고 IoC 툴들을 인스톨하였는데 안그래도 기본플로그인에 여러가지 툴들이 들어있다보니 용량이 너무 비대해졌습니다. 물론 개발자랑 공통되는 툴들도 있지만 가이드라인의 기준이 없어서 왠만한건 인스톨하게 되네요;;
이 부분에 대해서 견해를 듣고자 질문드립니다.
그리고 필드에서는 팀마다 각각 따로 환경에 맞게 만들어주는지 이 부분대해서도 궁금합니다..
답변 3
1
0
0
안녕하세요.
제가 답변을 열심히 작성했는대, 중간에 잘 입력이 안됐나보네요ㅠㅠ
너무 늦게 답변드려 죄송합니다.
많은 분들이 비대해지는 젠킨스에 많은 고민을 가집니다.
처음에는 몇가지 툴을 설치하다가 나중에는 정말로 많은 Tool들을 설치하게 됩니다.
젠킨스의 Job 이 많아 지고, Job 마다 설정이 달라지며, 하물며 써야하는 Tool들의 버전까지 달라지는 상황이 옵니다.
막상 이부분이 문제가되고 고칠려고 맘먹고 보면 너무나 커져버리고 중요한 역할을 하고 있습니다.
이런 상황이 발생하면 절대 안됩니다. Legacy 를 이관하는 작업은 너무나 고통스러운 작업입니다.
이 부분때문에 젠킨스의 worker(slave) 를 사용해야 합니다.
각 Job 은 독립적이고, Job 이 실행될때마다 항상 똑같은 환경이어야 합니다.
worker(slave)를 머신으로 설치하는 경우도 있지만, 요즘은 대부분 Docker 를 이용하게 됩니다.
가장 대중적인 방법은 Jenkins 의 Worker(slave)를 ECS, Fargate, Codebuild 등을 통해서 구현을 하는겁니다.
AWS 환경이 아닐 경우는 다른 k8s 같은 것도 가능합니다.
매 Job 이 실행될때마다 내가 지정한 Docker image 로 (node,pod 등 아무거나) 새로운 환경으로 작업을 실행하는 것입니다.
Jenkins slave configuration 같은걸로 검색을 하게되면 정말로 많은 자료를 찾아볼 수 있습니다.
제가 생각하는 가장 쉽고, 강력한 방법인 AWS Codebuild 를 구축하는 법도 소개드립니다.
https://devops-art-factory.gitbook.io/devops-workshop/terraform/jenkins-workshop
언제든 질문드리면 제가 아는 한도내에서 답변 드리도록 하겠습니다.
감사합니다.