소프트웨어 개발에서 분야를 막론하고 사용되는 개념 중 하나가 지속적 통합 및 배포다. 최근 이 분야를 주도하고 있는 기술인 젠킨스는 십 년이 넘는 기간 동안 업계 표준으로 통용되고 있다.
십 년의 성공이 보여주듯 기존의 젠킨스가 아직까지 많은 프로젝트에서 필요로 하는 요구사항을 충족하는 데 부족함은 없지만, 최신 추세인 복잡해지는 시스템간의 통합, 이를 지원하기 위한 클라우드 기술의 발전을 담기에 기존 구조는 점차 한계를 보이고 있던 것도 사실이다.
이에 젠킨스는 최근 버전 2.0 업그레이드를 통해 최신 트렌드를 반영할 수 있는 시스템으로 진화했다. 여기에는 복잡해지는 빌드 단계를 구분 짓는 파이프라인 문법의 도입, 빌드 스크립트 자체를 관리하는 젠킨스 파일의 추가, 이에 걸맞는 새로운 UI인 블루 오션 그리고 클라우드 환경을 최대한 활용할 수 있는 도커에 대한 지원 등이 포함돼 있다.
이 책은 각각의 주제에 대해 심도 있게 살펴보는 사전식 구성을 채택했다. 단순히 젠킨스 2.0에서 도입된 기능을 이해하는 데 도움이 되는 것을 넘어, 저자는 실무에서 작업을 할 때 계속해서 옆에 두고 참조할 수 있는 책을 만드는 것을 목표로 모든 주제에 대해 깊게 조사하고 이를 담았다. 젠킨스 2.0을 사용하면서 새로운 기능을 도입하거나 특정 문제에 봉착했을 때, 저자는 이 책을 통해 보다 빠르게 최선의 해결책에 접근할 수 있도록 다양한 해결 방안과 그 중에서도 최선의 해결책을 책에 포함했다.
이 책은 새롭게 젠킨스 2.0을 접하는 독자에게는 전반적인 기능에 대한 이해를 증진시켜 줄 것이다. 또한 실무에서 이를 사용하고 있는 독자에게는 실용적인 해결책 및 개선점을 알려주고, 저자의 다양한 경험을 바탕으로 젠킨스를 좀 더 젠킨스답게 사용하는 방법을 배워 유지보수에 드는 자원을 획기적으로 줄일 수 있게 도와줄 것이다.
소프트웨어 개발 방법론은 급격한 변화의 시기를 겪으며 현재 애자일로 수렴하고 있는 추세다. 아마도 웹 개발이 소프트웨어 업계 중 가장 큰 영역을 차지하고 있으며, 이 분야의 특징인 잦은 요구 사항 변경과 빠른 개발 주기에 애자일이 가장 잘 부합하기 때문일 것이다. 애자일 방법론에는 기술적인 요소보다 기술적이지 않은 요소가 더 많지만, 가장 중요한 기술적인 요소 한 가지가 꼭 필요하다. 흔히 지속적인 통합, 혹은 지속적인 배포라고 불리는 요소로 소프트웨어 빌드, 테스트, 배포를 자동화하는 부분이다.
젠킨스는 이 지속적 통합 분야에서 사실상 업계 표준으로 자리잡았다. 2005년 허드슨이란 이름으로 처음 프로젝트가 시작된 후, 2011년에 젠킨스로 이름을 바꾼 후에도 계속해서 시장 점유율을 늘려가고 있다. 오픈소스인 점, 플러그인을 통해 다양한 프로그램과의 호환성이 보장되는 것, 설치가 쉽고, 사용이 용이하다는 점이 젠킨스를 계속해서 사용하게 한다.
젠킨스가 소프트웨어 개발의 자동화를 도와주는 것은 분명하지만, 젠킨스를 관리하는 부분은 여전히 많은 수작업을 요한다. 수많은 노드의 생성, 관리, 빌드와 배포 환경의 복잡함을 지원하기 위해 점차 지저분해지는 젠킨스 내부 설정 등 젠킨스 자체를 사용하는 것은 마치 젠킨스 도입 전 소프트웨어 개발 환경처럼 많은 수작업이 필요했다.
이 책에서는 이런 문제를 해결하기 위해 젠킨스를 사용하는 세 가지 방향을 제시한다. 첫 번째는 도커를 이용해 노드 관리를 자동화하는 것이고, 두 번째는 젠킨스 파일을 도입해 스크립트 관리 기능을 향상시키는 것이다. 마지막은 젠킨스의 새 버전(2.0)에서 도입된 젠킨스 블루오션이라는 새로운 UI를 통해 복잡한 작업 흐름을 관리하는 방법이다.