CI/CDツール導入は欧米ではすでに経営上のミッション
より早く、より良いモノやサービスを提供して競合他社より競争優位に立つ。そのために欠かせないのが、モノづくりやサービス提供を支えるソフトウェアのリリーススピードの向上である。欧米の企業ではそれを経営のミッションに掲げているため、ソフトウェア開発の現場では、CI/CDツールの導入が進んでおり、今ではどう効果を上げていくかが経営課題になっているという。
このように欧米ではすでに導入が当たり前になっているCI/CDツール。CIとは継続的インテグレーションの略で、アジャイル開発のプラクティスのひとつ。簡単に言えば頻繁にビルドやテストを行うための手法だ。「ソフトウェアをこまめにチェックすることで、手戻りの減少やバグ修正コストの削減を実現し、早期リリースが可能になります」と会田氏は説明する。一方のCDは継続的デリバリーの略で、頻繁にリリースを可能にすることができるプラクティスだ。ソフトウェアを常に本番環境に簡単にリリースすることで、ユーザーからのフィードバックを受けやすくなる。
CI/CDツールを導入するメリットのひとつは、「ビジネス上の競争優位性が高められることです」と会田氏は語る。競合他社よりも早くリリースすることで、お客さまからのフィードバックが早く得られ、お客さまにより満足いただけるモノ・サービスづくりができるようになるというのだ。
さらに開発現場においては、品質の向上や開発リソースを知的な作業に集中できるようになるだけでなく、「精神的な安心が得られる」という最大のメリットがある。書いたコードはその日のうちにチェックされて問題点が指摘されるため、リリース後に大きな障害が発生するリスクが減らせるからだ。
導入の障壁を解消する「TechMatrix Jenkins Platform Package for Java」
このようなメリットがあるにもかかわらず、日本ではCI/CDの導入がそれほど進んでいないという。その理由について会田氏は「私たちのお客さまからは、ツールを選定し、セットアップして立ち上げるのは意外に大変な作業と聞きます。だから躊躇してしまうようです」と述べる。
たとえOSSツールを自前でセットアップし、環境を作ったとしても、多くの開発現場ではCI専門のチームを抱えておらず、開発チームの誰かがビルドサーバの面倒を見ることになる。ビルドエラーが出ても、すぐに対応できず放置されたり、チェックツールの結果が多くて修正する気が起きなくなったりするという。つまり長く使うことを考慮した環境を作れずにいるため運用に乗らない。「本来のメリットを享受できず効果が出にくいのでそれ以上の投資ができず、スケールしないケースが多いのです」と会田氏は指摘する。
しかしここ最近のITの内製化の流れから、コストや効率性を考えて、自動化を進めていく機運が高まっているという。そこでテクマトリックスでは「どう導入していいかわからない」という開発現場向けに、某金融系企業に提供したCI環境構築のためのソリューションを参考に、CIの第一歩となる自動化基盤の構築を主軸に置いた環境整備のためのソリューションをパッケージ化した。それが「TechMatrix Jenkins Platform Package for Java(以下、TJPP)」だ。
TJPPは以下の内容で構成される。
- Jtest Engine ノードロックライセンス1本
- バグ検出アセスメントサービス
- Jenkinsを用いた自動化環境の構築
- 環境構築手順書の作成
- 環境構築のノウハウをレクチャー
- 構築した環境の保守サポート(3カ月間)
CIツールはOSSのJenkins、静的コード解析ツールは米Parasoft社が開発したJtestを採用。CheckstyleやSpotBugsなど、数ある静的コード解析ツールの中からJtestを採用しているのには理由がある。それは、Jtestがオープンソースのツールと比べてバグ検出の精度が高いことや同社に導入のノウハウがあること。さらに開発現場で検出したい問題に対応したコーディングルールの選定を、オプションサービスとして用意できる点もその理由だ。
また、それらのセットアップから自動化環境の構築、さらには環境構築のノウハウの伝授、保守サポートまでがパッケージ化されている。個別で構築する際に、ツール選定や評価、環境構築、保守運用という各フェーズで表れる障壁が、このパッケージを活用することでなくなるのである。
「TechMatrix Jenkins Platform Package for Java 」についての詳細はこちら
1~2日で自動化基盤を構築、すぐに試せる
TJPPのサービスの流れは次の図の通り。環境構築にかかる時間は約1~2日で、すぐにバグ検出、および自動化環境が試せるようになる。
TJPPを活用すると、開発者の手を煩わせることなく自動化環境の構築が可能になる。また海外においてはCI/CDツールの導入は経営上のミッションとして設定されることは多いが、日本では開発現場レベルで導入効果をまとめて上司に報告し、導入を承認してもらわなければいけないといった事情もある。
「TJPPでは2日で開発現場に評価用の自動化環境を構築できるので、あとは開発者の方が実際に触ってみて、効果を実感いただくだけです。また、導入初期は状況に応じて柔軟に変更したい点も多くあるかと思います。このパッケージでは3カ月間の保守サポートも提供しており、設定のノウハウも伝授するので、1つのプロジェクトで効果が出れば、他のプロジェクトにもスケールしていきやすい。ぜひ活用して自動化を推進していただきたいです」(会田氏)
なお、TJPPは自動化基盤を整備するための基本的なサービスを提供するが、「Jenkinsの知識を高めたい」「よりバグ検出の精度の高さやUIテストの自動化を求めたい」といったニーズに応えるため、次のオプションが用意されている。
A.Jenkins 1Dayトレーニング
CloudBees社認定エンジニアによるJenkinsのハンズオントレーニング。継続的インテグレーションの基礎からJenkinsの基本的な使い方(ビルド、デプロイ、プラグイン管理)、Jenkins2.0で導入されたPipelineまで、実践的な演習を通じて習得できる。
B.CloudBees Jenkins Support
プラグインの互換性の確保と、Jenkinsエキスパートによるベストプラクティスを提供。開発チームは安心してJenkinsを利用することができる。
C.Jtestバグ検出のルール選定サービス
お客さまの要望に合わせたバグの検出を行うため、実プロジェクトの解析結果を分析。要望を元に、Jtestに搭載されている多数のコーティングルールの中から解析ルールの選定を行う。
D.RanorexによるUIテスト自動化
UIテスト自動化ツールRanorexを使い、Jenkins上でUIテストの実行が呼び出されるよう設定を行う(テストシナリオの作成は含まない)。
理想的な開発現場では70倍のスピードで製品リリースが可能に
TJPPがリリースされてまだ間もないにも関わらず、「このパッケージを開発するきっかけとなった大手金融機関のほか、通信、製造などの複数企業ですでに導入実績をいただいています」と常盤氏は語る。
テクマトリックスが主催する「Jenkins Day Japan 2017」でお客さまから発表された事例として、実際に欧州のある自動車メーカーでは自動化環境を整備し理想的なソフトウェア開発の現場を実現したことで、製品のリリースが従来の70倍のスピードで可能になったと報告されている。
欧米ではすでに経営上のミッションであり、ビジネスの競争力の源泉として認識されつつある、ソフトウェア開発の自動化基盤の構築。検討はしているがどう実現していいかわからない、導入はしたものの効果は出ていない、というのであればぜひ、TJPPを活用してほしい。開発現場はもちろん、経営側にも大きなメリットが得られるはずだ。