HyeLog
Jenkins 분산 빌드 아키텍처 (Master, Agent) 본문
젠킨스에서는 단일 서버의 부하를 분산하기 위해서 분산 빌드 아키텍처를 사용할 수 있다. 이 아키텍처를 알아보기 위해 관련된 용어 몇 가지를 정리해보자.
- Jenkins Controller(=Master) : Jenkins Controller는 작업의 실행 방법, 시점, 위치등을 총괄하는 젠킨스 아키텍처의 두뇌 역할을 담당한다. 여러 설정들을 할 수 있는 GUI (웹사이트)를 제공한다. 또한 agent 들에게 명령을 내려 빌드 작업을 실행시킨다. agent들에 대한 관리, 작업 예약, 모니터링 등을 오케스트레이션이라고 부른다.
- Agents(=Slave) : 빌드 작업이 실행되는 프로세스다. Java가 실행될 수 있는 모든 운영체제에서 실행할 수 있다. 컨트롤러가 에이전트에 명령을 내리면, 에이전트가 빌드 작업을 수행한다.
- Nodes : Agent가 실행되고 있는 머신이다. AWS EC2에서 agent가 실행되고 있다면, EC2 인스턴스가 node가 되는 것이다. Jenkins Controller도 node에서 실행된다. 이 node에서도 agent와 빌드를 실행할 수 있겠지만, 심각한 성능 저하 혹은 확장성 감소, 보안 문제가 발생할 수 있다.
- Executors : 사실상 Agent의 쓰레드다. Executors의 개수를 설정하여 한 node에서 동시에 실행될 수 있는 작업을 설정할 수 있다.
'DevOps > Jenkins' 카테고리의 다른 글
Jenkins 란? Jenkins 기초 개념 (2) | 2023.06.06 |
---|