CI(継続的インテグレーション)を実現するOSS(オープンソース・ソフトウエア)「Jenkins」の勢いが増している。開発元の米CloudBeesが2017年8月末に開催したイベントには800人の開発者が参加。米PayPalが4000人を対象にしたJenkinsの導入を発表するなど、大企業が戦略的にJenkinsを使用する実態が明らかになった。

 現在はCloudBeesのCTO(最高技術責任者)を務める川口耕介氏が2011年2月にOSSとして公開したJenkinsは、ソースコードのコンパイルやビルド、テスト、品質検査、サーバーへの展開(デプロイ)などを自動化するツールだ。開発者にとって面倒な作業をやってくれる「執事」という位置付けであることから、マスコットキャラクターは映画に出てくる執事のような蝶ネクタイ姿をしている(写真1)。

写真1●Jenkinsのマスコットキャラクター
写真1●Jenkinsのマスコットキャラクター
[画像のクリックで拡大表示]

 Jenkinsのオリジナル開発者である川口氏は、CloudBeesが2017年8月28日から31日まで米サンフランシスコで開催した「Jenkins World 2017」の基調講演に登壇し、「(IT企業ではない)メインストリームの事業会社がソフトウエア開発に真剣になっている中、その生産性向上は『ビジネスの問題』になった」と指摘。事業会社がJenkinsを大規模導入し、ソフトウエア開発の自動化に全社レベルで取り組むようになっていると語った(写真2)。

写真2●Jenkinsのオリジナル開発者である川口耕介氏
写真2●Jenkinsのオリジナル開発者である川口耕介氏
[画像のクリックで拡大表示]

 Jenkinsによってソフトウエア開発の自動化を全社レベルで推進できるようになったのは、2016年に公開した「Jenkins 2.0」から「パイプライン」と呼ぶ仕組みを搭載したためだ。これはJenkinsに実行させる作業や順序を、コード(プログラム)によって記述する仕組みだ。

作業内容のコード化で、再利用が容易に

 Jenkins 1.0までは、ユーザーはJenkinsに実行させる作業をGUI(グラフィカル・ユーザー・インタフェース)から設定していた。その内容はJenkinsの独自形式の設定ファイルによって保存されていたため、ユーザーが設定内容の正しさを後から検証したり、設定内容の変更履歴を追跡したりするのが困難だった。

 それに対してJenkins 2.0からは、設定内容はコードとして管理できるようになった。「GitHub」のようなソースコード管理ツールを利用することで、変更履歴を管理したり、コードの正しさを他のユーザーがチェックする「コードレビュー」が実施できるようになった。つまり設定内容のコード化によって、設定内容の品質管理ができるようになったのだ。

 川口氏は「パイプラインを導入することで、より複雑な作業の自動化をJenkinsで実現できるようになっただけでなく、Jenkinsで自動化した作業内容の再利用が可能になった」と語る。かつてJenkinsを使ったソフトウエア開発の自動化は、開発者が個人的に取り組むものであり、自動化メカニズムを他のプロジェクトに横展開するのは難しかった。しかしJenkins 2.0からは、開発者が生み出した自動化メカニズムがコード化され、そのコードを「ライブラリ」として全社的に共有できるようになった。そのため、Jenkinsの全社展開が容易になったのだ。

7000万行のコード開発をJenkinsで自動化

 Jenkinsを全社導入する代表格が、決済サービス会社の米PayPalだ。PayPalは社内に「デベロッパー・エクスペリエンス・チーム」を設け、Jenkinsの導入によって4000人を超える社内ソフトウエア開発者の「開発体験」を全社レベルで統一し、改善していく活動を推進している。

 PayPalが自社で開発している決済システムは、規模が巨大であるだけでなく、修正も頻繁だ。システムは2600以上のサービスによって構成され、ソースコードの行数は7000万行を超える。毎年1000万行のソースコードを修正しており、システムは3万5000台の仮想マシンで運用する。