내 잡다한 노트
Jenkins 에이전트 본문
젠킨스의 Master-Agent 아키텍처는 작업(빌드, 테스트, 배포 등)을 분산해서 실행하도록 설계되었습니다. 이를 통해 젠킨스는 확장성과 성능을 극대화할 수 있습니다.
젠킨스 에이전트란?
- **에이전트(Agent)**는 젠킨스 마스터의 지시에 따라 실제 빌드나 작업을 실행하는 서버 또는 프로세스입니다.
- 이를 통해 젠킨스는 여러 서버에서 병렬로 작업을 실행할 수 있어 대규모 프로젝트에서도 효율적으로 운영됩니다.
Master-Agent 아키텍처
- Master (컨트롤러)
- 젠킨스의 중심 역할을 담당하며 다음과 같은 기능을 수행합니다:
- 작업(빌드, 테스트, 배포) 스케줄링.
- 작업 로그 수집 및 표시.
- 에이전트 관리.
- 플러그인 및 사용자 인터페이스 제공.
- 젠킨스의 중심 역할을 담당하며 다음과 같은 기능을 수행합니다:
- Agent (노드)
- 실제로 작업을 실행하는 노드로, CPU, 메모리 등의 자원을 사용해 빌드를 수행합니다.
- 에이전트는 반드시 젠킨스 마스터와 통신할 수 있어야 합니다.
에이전트 구성 방식
젠킨스 에이전트는 다양한 방식으로 설정할 수 있습니다:
- 스태틱 에이전트
- 특정 서버를 에이전트로 설정하여 항상 사용.
- 장점: 설정이 간단하고 안정적.
- 단점: 리소스 확장에 한계.
- 다이내믹 에이전트
- 필요할 때만 생성되는 에이전트.
- Docker, Kubernetes 등을 통해 에이전트를 동적으로 생성.
- 장점: 리소스를 효율적으로 사용 가능.
- 단점: 설정이 다소 복잡.
에이전트를 사용하면 좋은 경우
- 병렬 빌드
여러 에이전트를 통해 작업을 병렬로 실행하여 빌드 시간을 단축. - 리소스 분산
CPU/메모리가 부족한 마스터 노드 대신 에이전트에서 빌드를 실행. - 특화된 환경 요구
- 특정 에이전트에서만 필요한 빌드 도구나 라이브러리를 설치.
- 예: Windows에서만 실행해야 하는 작업.
- 클라우드 활용
- AWS, Azure, GCP 같은 클라우드에서 에이전트를 실행해 확장성 제공.
'DevOps > Jenkins' 카테고리의 다른 글
Jenkinsfile 이란? (0) | 2024.11.27 |
---|---|
Jenkins New item 페이지 (0) | 2024.11.24 |
Jenkins agent (0) | 2024.11.24 |
Groovy 란? (0) | 2024.11.24 |
젠킨스 Jenkins (1) | 2024.11.21 |