1. Jenkins

Jenkins의 역사는 길다. 또  Jenkins 커뮤니티는 매우 활기차고 강하다. 성숙도가 높고, 사용자가 플랫폼 상에서 필요로 하는 모든 것을 다룰 수 있다. Jenkins는 대부분 Cloudbees에 의해 제어된다. 


2. Jenkins X

소프트웨어 개발 프로세스는 지난 몇 년 동안 완전, 계속 발전하고 있습니다. DevOps를 통해 응용 프로그램 및 구성 관리에 대한 개발자의 책임이 크게 증가했다. DevOps는 개발 속도를 높이고 중단 시간의 위험을 줄이는 것을 목표로 하는데, 개발자에서 운영자로의 전환은 쉬운 일이 아니다. 그럼에도 불구하고 DevOps는 더욱 관심받고 있다. 그와 동시에 마이크로 서비스 아키텍처, 컨테이너, Kubernetes 등의 변화가 다가왔다.

기존의 Jenkins를 Kubernetes 환경에 맞게 손을 보고 추가 도구를 제공하는 것이 Jenkins X이다. 핵심적인 도구는 jx인데 Kubernetes 클러스터의 생성 및 설정이 가능하다. 구체적으로 말하자면 Jenkins X를 사용한다는 것은, Jenkins뿐 아니라 이미지 저장소인 Nexus, Helm Chart 저장소인 Chartmuseum, Helm Chart UI인 Monocular 등을 Helm Chart로 만들어서 Kubernetes에 설치, 연동하는 것을 의미한다.

  • 장점은 다음과 같다.
  • 설치 용이
  • 격리
  • 성능
  • 빠른 복구
  • 예측 가능한 릴리스 

3. Concourse

CloudFoundry 개발팀은 Jenkins의 파이프 라인에서 여러 문제를 경험했다. 잘 작동 시키려고 노력했지만 CloudFoundry가 실행해야 하는 다양한 플랫폼과 서비스 상에서 큰 어려움을 겪었고 Jenkins라는 플러그인 아키텍처로 고생했다. 결국 Concourse가 나오게 되었다. Concourse는 컨테이너와 같은 최신 기술 및  뛰어난 파이프 라인 등 현대적이고 플러그인 지양적인 빌드 엔진을 추구한다. CloudFoundry와 같이 Concourse CI도 오픈소스다.

Resource, Task, Job이라는 구성요소가 있다.

  • Resource는 파이프라인의 작업에 사용할 오브젝트로 도커 이미지, Github, S3 등이 그 예이다.
  • Task는 Concourse 안에서 구성 가능한 최소 작업 단위로 Input/Output이 있는 일종의 함수다.
  • Job은 Task와 Resource를 연결하여 실제 파이프라인을 구성한다.