개요

가장 많이 쓰일것으로 짐작되는 대표적인 Continuous Integration 솔루션인 젠킨스와 뱀부의 특징 및 장단점을 그간 사용한 경험에 비추어 정리해 보았다. 아직 CI 를 사용하지 않고 도입할 계획이 있다면 도움이 되길 바란다.

Hudson 은 오라클 인수후 지속적으로 사용자가 줄고 있는 듯 하고 위 두개외 다른 솔루션은 제대로 써 본적이 없으므로 정리할 능력이 없다.

(info) 둘 다 CI 의 기본 기능이 충실하니 일반적인 CI 의 기능(자동화 빌드, 자동화 테스트 및 통지, 커버리지 감시등)은 제외하였다. 

Jenkins

장점

  1. 무료이고 Reference 및 사용자가 많고 정보가 많은 편이다. (openstack 의 CI 에도 적용되어 있다.- https://jenkins.openstack.org/)
  2. Hudson core 개발자가 jenkins 를 시작했고 주요 플러그인 개발자도 jenkins 로 전환해서 개발 속도가 빠르고 플러그인 지원이 좋은 편이다.
  3. 설치 및 사용이 간단하다. 실제로 maven 으로 build 가 구성되어 있다면 jenkins 설치후 project 만드는데 얼마 안 걸린다.
  4. Remote Access API 를 제공하므로 다른 솔루션에서 연계하여 기능 확장이 가능하다.

단점

  1. 프로젝트 별 보안 및 권한 설정등이 불편하다. (bamboo 에 비해)
  2. JIRA나 redmine 등 Issue tracking 과 연계가 불편하거나 완벽하지 않다.

 

Bamboo

장점

  1. 손쉽고 직관적인 UI를 갖고 있고 상용 SW 에 걸맞게 예쁜 외양을 자랑한다.
  2. atlassian 제품군과 완벽한 통합 제공. JIRA 의 대쉬보드나 confluence의 Page에 bamboo build chart 를 붙일수도 있고 JIRA 의 특정 이슈와 관련된 build 내역을 조회하는 등 atlassian 제품을 기존에 사용하고 있다면 각 제품군을 통합해서 더욱 유기적으로 사용할 수 있다.
  3. MS의 Visual Studio, Mac OSX 의 XCode 등 Java 이외의 개발 환경을 지원한다. ( Visual Studio 지원은 아직 그리 잘 돌아가지 않고 복잡해서 시행착오를 좀 거쳐야 하고 써본 경험상 bamboo 에 붙이는건 그리 추천하지 않는다.)
  4. Jenkins 에 비해 프로젝트 권한 설정이나 분산 빌드가 아주 간편하다.
  5. Remote Access API 를 제공하므로 다른 솔루션에서 연계하여 기능 확장이 가능하다.

 

단점

  1. 제법 비싼 비용이 발생한다.  (build 를 할수 있는 remote agent 수 따라 라이센스 비용이 책정되는데 5 remote agent 가 $2,200 이다. 1년후마다 매년 구입가의 50% subscription 비용 추가 발생.)
  2. Project, Plan, Stage, Task 의 개념이 복잡해서 익숙해지고 제대로 쓰려면 약간의 시간이 필요하다.

결론

  1. CI 를 아직 도입하지 않았다면 당장 jenkins 부터 도입하는걸 추천한다.
  2. 예산이 있고 기존에 atlassian 제품을 쓰고 있었다면 bamboo 도 좋은 선택이다. bamboo 는 jenkins project 를 import 하는 기능이 있으므로 migration 도 가능하다. jenkins 에 비해 비용이 들겠지만 그만한 가치는 한다고 생각한다.