
젠킨스 (Jenkins)
1. 자바로 작성된 오픈 소스 자동화 서버
2. 지속적 인도 프로세스를 구축하는 데 널리 이용됨
CI (Continuous Integration : 지속적 통합) 단계
- 일반적으로 개발자가 소스 코드를 커밋하고 푸시하는 것으로 시작
- 응용 소프트웨어를 자동으로 빌드, 통합
- (자동) 테스트를 통하여 배포할 수 있는 상태임을 확인
CD (Continuous Delivery/Deployment : 지속적 인도) 단계
- CI 단계에서 소프트웨어가 배포 가능한 상태임을 확인하느 것으로 시작
- 응용 소프트웨어를 컨테이너 이미지로 만들어 냄
- 포드, 디플로이먼트, 서비스 등 다양한 오브젝트 조건에 맞춰 (미리 설정한 파일을 통해) 배포


젠킨스의 특징
1. 다양한 프로그래밍 언어 지원
2. 플러그인을 통한 확장
- 사용자가 직접 플러그인을 작성해 젠킨스의 기능을 확장하는 것을 가능
3. 이식성
- 여러 종류의 컴퓨터에서뿐만 아니라 컨테이너 및 클러스터 환경에도 부드럽게 적용
4. 대부분의 소스 관리 시스템 지원
5. 분산 처리 지원
- 마스터/슬레이브 구조를 채택하여 여러 노드에서 작업 수행
6. 코드로 파이프라인 구성
- 프로세스 자동화에 적합

수평적 확장
1. 조직 (개발팀, 테스트팀, 데브옵스팀)이 늘어날 때마다 마스터 인스턴스의 수를 늘려 가는 방식
- 비교 : 수직적 확장 - 마스터에 대한 부하가 증가함에 따라 마스터 시스템에 자원을 추가하는 방식
2. 통합 자동화가 복잡해진다는 단점이 있으나, 다음과 같은 중요한 이점이 있음
- 마스터 역할을 하는 컴퓨터의 하드웨어 사양에 대한 부담이 감소(특히, 조직이 많이 커진다면?)
- 팀 마다 각기 다른 설정이 가능
- 팀 전용 마스터 인스턴스가 있으므로 팀워크와 업무 효율이 높아짐
- 마스터 인스턴스 하나에 문제가 생겨도 다른 팀에 끼치는 영향이 최소화됨

