Integration:継続的インテグレーション)ツールです。デプロイまでの作業を自動化することで、アジャイル開発におけるプロセスを効率化できます。それぞれ高い人気を得ているCIツールです。■「Juju」とはJujuは、アプリケーションモデリングによるデプロイツールです。アプリケーションの構築/動作を自動化するために必要なすべての操作知識をカプセル化できます。対象環境に対する運用タスクを効率化し、運用オーバーヘッドを削減することに重点を置いています。■「Jenkins」とはJenkinsは、継続的インテグレーション支援ツールです。ソフトウェア開発プロジェクトなどにおいて、「ビルド」「デプロイ」「テスト」などの作業の自動化/効率化を支援します。Jenkinsの主要機能は「継続的なソフトウェアのビルド/テストを行う機能」と「外部で起動するジョブ実行の監視機能」です。デプロイを自動化するために、それらの工程についての指示書となる構築手順書をスクリプトとして記述します。■Jujuは「チャーム」Jujuにおける構築手順書は「チャーム」と呼びます。Chefにおける「レシピ」に相当するものです。すべての手順を定義するための一連のスクリプトで、YAML形式で記述します。チャームは、「単一のアプリケーション」+「それを操作するために必要なすべてのコードとノウハウ」をカプセル化します。「他の関連アプリケーションとの連携」や「アップグレードする方法」などについても記述できます。チャームを使用することで、「アプリケーションの確実な展開」「繰り返し展開」「必要に応じてスケールアップ」などが容易になります。■Jenkinsは「groovyスクリプト」Jenkinsでは、基本的にすべての設定を「groovyスクリプト」で記述することにより自動化できます。Plugin」を利用してGroovyスクリプトを書くことで、可視化されたビルドパイプラインを実現できます。デプロイに関わるビルドからリリースまでの一連の流れを可視化できます。途中で手作業が入る場合には、一時的にストップでき、途中からの再実行を行えます。複雑なリリースフローや、突発的な手順変更にも対応できます。Juju(ジュジュ)とは、アプリケーションモデリングによるデプロイツールです。パブリック(プライベート)クラウドおよびローカルコンテナに対して効率的な展開/構成/拡張/操作を行えます。■基本説明Jujuは、オープンソースのアプリケーションモデリングツールです。Jujuは、アプリケーションの構築/動作を自動化するために必要なすべての操作知識をカプセル化でき、対象環境に対する運用タスクを効率化し、運用オーバーヘッドを削減することに重点を置いています。■動作環境Jujuは、「パブリッククラウド」「プライベートクラウド」「ローカル環境」に対応します。OSとして「さまざまなLinuxディストリビューション」「macOS」「Windows」で利用できます。■経緯Jujuは、Ubuntuを商用サポートしているCanonical社が開発し提供しています。詳細について、こちらを参照ください。同様な機能を提供する製品として、次のようなものがあります。オープンソース製品:「Chef」「Puppet」「Ansible」など。Jenkins(ジェンキンス)とは、オープンソース継続的インテグレーション支援ツールです。ソフトウェア開発プロジェクトなどにおける「ビルド」「デプロイ」「テスト」などの作業自動化/効率化を支援します。Integration)とは、バージョン管理ツールにコミットされたソースコードを定期的に自動ビルドすることにより、問題を早期に発見し対処を行うことです。その結果、ソースコード品質の向上、テスト工数の削減といった効果が得られます。■基本説明Jenkinsの主要機能は、「継続的なソフトウェアのビルド/テストを行う機能」と「外部で起動するジョブ実行の監視機能」です。Javaで開発されたWebベースのソフトウェアで、Webサイトから管理/設定変更/レポート閲覧ができます。■Jenkinsを使った開発の流れ開発メンバーがソースコードをコミットすると、Jenkinsが更新を検知し、ビルドツールをキックします。設定しておいた手順に従って、ビルド/テストが実行されます。ビルド/テストが完了したら、Jenkinsは、Webページやメールなどに結果を出力します。エラー箇所について、開発メンバーが修正を行い、ビルド/テストを繰り返して、エラーがゼロになるまで繰り返せば、手順書レベルの品質をクリアできていることになります。■経緯Jenkinsは、Oracle社主導で開発されていた「Hudson」と呼ばれるソフトウェアがベースとなっています。2011年に、オープンソースプロジェクトとして分岐(フォーク)し、Jenkinsとしての開発が始まりました。Award」を受賞しています。License」です。詳細について、こちらを参照ください。同様な機能を提供する製品として、次のようなものがあります。■非常に高い汎用性Linux/Windows/Macなど、どの環境でも、さまざまな種類/言語のスクリプトを実行できます。「バージョン管理システムのコミット」「cronライクのメカニズムによるスケジューリング」「他のビルドが完了した時」「特定のビルドURLによるリクエスト」などさまざまなトリガーで実行させることができます。■プラグインによる拡張性Jenkinsは、プラグインを作成/利用することで機能を拡張できます。プラグインが充実している点も特徴です。jenkins.war」を実行するか、サーブレットコンテナにデプロイするだけで、インストールできます。データベースは不要です。■インターフェース分かりやすいWebGUIを使用してJenkinsの設定を行えます。「最新ビルド」「最新安定ビルド」のような永続(固定)的なクリーンでわかりやすいURLを持ちます。■バージョン管理システム連携機能バージョン管理システムと連携し、自動的にプロジェクトを構成するソースコードを集め、コンパイルして実行可能な状態にビルドします。「CVS」「Subversion」「Git」「Mercurial」「Perforce」「Clearcase」など多くのバージョン管理システムに対応しています。バージョン管理システムからビルドへの変更の一覧を生成できます。複数のコンピュータで分散ビルド/テストを実行できます。非常に簡単な設定でユニットテストを実行させることができます。JUnitのテスト結果を一覧表示/要約で履歴情報とともに表示します。履歴の傾向はグラフ化されます。■タグ管理機能ビルド単位でタグをセットできます。「どのビルドがどのjarを生成したのか」「どのビルドがjarのどのバージョンを使用しているのか」などを追跡できます。reserved.このページに掲載されている記事・写真・図表などの無断転載を禁じます。著作権は情報提供者に帰属します。掲載している情報は、記事執筆時点のものです。