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