Juju(ジュジュ)とは、アプリケーションモデリングによるデプロイツールです。パブリック(プライベート)クラウドおよびローカルコンテナに対して効率的な展開/構成/拡張/操作を行えます。

オープンソースの運用管理・運用自動化/Jujuとは

Juju(ジュジュ)とは、アプリケーションモデリングによるデプロイツールです。パブリック(プライベート)クラウドおよびローカルコンテナに対して効率的な展開/構成/拡張/操作を行えます。

目次

「Juju」基本情報
■概要
■基本説明
■動作環境
■経緯

「Juju」の主な特徴
■アプリケーションモデリング
・アプリケーションモデリングとは
・Jujuのアプリケーションモデル
・Jujuアプリケーションモデルの構成内容
・Jujuアプリケーションモデル例
・操作タスクの自動化
・運用コスト削減効果
■動的リレーション構成機能
・高いレベルでの抽象化
・動的リレーション構成機能
・動的リレーション構成例
・サービススケーリングの抽象化
■Jujuコントローラー
・概要
・管理機能
・管理インターフェース
■構築手順書「チャーム」
・概要
・構成管理ツール連携
・主な記述内容
・チャームヘルパー機能
・リレーション設定
・独自カスタムチャームの作成
■バンドル
■チャームリポジトリサイト「チャームストア」
・概要
・展開できる主なアプリケーション
・チャームストアURL
■デプロイ対象環境

Jujuサービス「JAAS」
■概要

補足情報
■同様製品
■オフィシャルサイト
・オフィシャルサイト
・ライセンス情報
・ダウンロード

「Juju」基本情報

■概要

Juju(ジュジュ)とは、アプリケーションモデリングによるデプロイツールです。パブリック(プライベート)クラウドおよびローカルコンテナに対して効率的な展開/構成/拡張/操作を行えます。

■基本説明

Jujuは、オープンソースのアプリケーションモデリングツールです。

「ベアメタルサーバ(ローカルコンテナベース)」「パブリッククラウドサービス」「プライベートクラウドサービス」などの環境に対して、アプリケーションサービス用インフラストラクチャの「展開」「構成」「スケーリング」「統合」「操作」を迅速に実施できます。

Jujuは、アプリケーションの構築/動作を自動化するために必要なすべての操作知識をカプセル化でき、対象環境に対する運用タスクを効率化し、運用オーバーヘッドを削減することに重点を置いています。

■動作環境

Jujuは、「パブリッククラウド」「プライベートクラウド」「ローカル環境」に対応します。

OSとして「さまざまなLinuxディストリビューション」「macOS」「Windows」で利用できます。

■経緯

Jujuは、Ubuntuを商用サポートしているCanonical社が開発し提供しています。

「Juju」の主な特徴

■アプリケーションモデリング

アプリケーションモデリングとは

「アプリケーションモデリング」とは、下から上に構築するのではなく、上から下へ(サービス+関連性)を指定して、意図を明確に表現できるようにするための手法です。

Jujuのアプリケーションモデル

Jujuのアプリケーションモデルは、一連のソフトウェアアプリケーションを管理および操作するための環境です。ユーザーに、シンプルにモデルを表現できるモデリングツールを提供します。

Jujuアプリケーションモデルの構成内容

各モデルは「さまざまなプロビジョニング構成」「オペレーティングソフトウェアのセット」「さまざまなレベルのアクセス権を持つ異なるユーザー」など保持します。

Jujuアプリケーションモデル例

「Webアプリケーション」+「ロードバランサー」+「データベース」を「web-app」モデルとして利用できます。

このようなモデルを使用することで、展開について、論理的なソリューションに分離して別々に管理できます。

操作タスクの自動化

すべての操作タスクは自動化され、サービスを連携させることで、適切なマシンプロビジョニングを行えます。

どのようなクラウドやコンピューティングリソース上でも「アプリケーションモデルの拡大/縮小」や「同一アプリケーションモデルを別の環境に再配置」などが可能で、繰り返し実行できます。

運用コスト削減効果

Jujuのアプリケーションモデルを利用することで、複雑な大規模ソフトウェアトポロジー操作の詳細を抽象化できるため、運用コストが削減され、柔軟性が提供されます。

■動的リレーション構成機能

高いレベルでの抽象化

Jujuは高いレベルの抽象化を提供します。

実行するマシンに関係なく展開および構成管理が行え、周辺範囲についても操作できる管理ツールを提供します。

動的リレーション構成機能

Jujuの主な利点の1つとして「動的なリレーション構成能力」があります。リレーション構成は、サービスを統合する複雑さについて抽象化できる機能です。

各サービスはリレーションを通じて即座に統合され、「サービスの即時再構成」や「サービス間の関係についての即時再構成」も行えます。

動的リレーション構成例

たとえば、データベースサービス「MySQL」とCMSサービス「WordPress」の関係を作成した場合、この2つのサービスは「IP情報」「ユーザー情報」「パスワード情報」「その他の設定情報」などを共有します。

この動的リレーション構成により、WordPressはMySQLにテーブルを作成して、データを自動的にインポートできます。

サービススケーリングの抽象化

サービススケーリングに関するすべての複雑さについても抽象化されます。

ユーザーは必要なユニット数を指定するだけでスケーリングが自動的に行われます。

■Jujuコントローラー

概要

Jujuコントローラーは、管理下にあるJujuクライアントとワークロードマシンの間で発生するすべてのイベント(状態、ユーザーアクティビティなど)を監視して、実行中のアプリケーションモデル内のすべてのマシンを管理します。

管理機能

Jujuコントローラーは以下を管理します。
・実行中の複数のアプリケーションモデルの管理
・アプリケーションモデル内のすべての仮想マシンの管理
・スケールアウト管理
・設定管理
・配置管理
・ユーザーアカウント管理
・共有管理
・アクセス管理 など

管理インターフェース

Jujuは、管理インターフェースとして、「コマンドライン管理ツール」と「GUI管理ツール(Juju GUI)」を提供します。

「Juju GUI」は、Webブラウザから操作できるサーバサイドツールで、グラフィカル表現を使用してGUI操作を行えます。
・サービス状態確認(現在どのモデルでどのソフトウェアが実行されているか?)
・構築手順書「チャーム」情報の確認
・ドラッグ&ドロップでのサービスデプロイ(ソフトウェアスタック配置)
・サービスの設定変更
・スケールアウト/スケールダウン
・設定のエクスポート/インポート など

■構築手順書「チャーム」

概要

Jujuにおいて構築手順書は「チャーム」と呼びます。Chefにおける「レシピ」に相当します。

チャームは、クラウドアプリケーションの「展開」「構成」「スケーリング」「維持」「操作」などのすべての手順を定義するための一連のスクリプトで、YAML形式で記述します。

チャームは、単一のアプリケーションと、それを操作するために必要なすべてのコードとノウハウをカプセル化します。「他の関連アプリケーションとの連携」や「アップグレードする方法」などについて記述できます。

チャームを使用することで、「アプリケーションの確実な展開」「繰り返し展開」「必要に応じてスケールアップ」などが容易になります。

構成管理ツール連携

Jujuは、同様のサーバプロビジョニングツール「Chef」「Puppet」「Ansible」などと連携して利用できます。

主な記述内容

チャームは多くのプロパティを持つことができ、構成スクリプトとして以下の項目などについて記述します。
・ソフトウェアインストール設定
・インストール後設定
・サービスの開始/停止設定
・他のチャームとのリレーション設定
・設定変更時の処理
・スケーリング設定
・アップグレード設定 など

チャームヘルパー機能

チャーム作成時には、ボイラープレートスクリプトを自動的に生成するチャームヘルパー機能を利用できます。

リレーション設定

通常、関連するアプリケーションは、お互いの存在を知らず、意味のある方法で接続されていませんが、チャームにアプリケーション間のリレーションシップを記述することで、アプリケーション間連携をカバーできます。

リレーションシップを記述しておくことで、アプリケーションを制御するチャームが互いに各種情報を交換できるようになり、関連するアプリケーション間で連携できるようになります。

独自カスタムチャームの作成

独自のカスタムチャームを作成する場合、「既存のChef/Puppet/Dockerなどのスクリプト統合」や「既存チャームのエコシステムを利用」など、既存スクリプト資産を活用できます。

カスタムチャーム作成のためのツールやドキュメントが提供されています。

→Juju →Getting Started with charm development

■バンドル

Jujuには、チャームの他に、「バンドル」という概念もあります。

バンドルは、「アプリケーションをリンクするチャームの集合」であり、「連携するようにモデル化されたすぐに実行できるアプリケーションのコレクション」です。

バンドルを利用することで、インフラストラクチャ全体に対して一度に展開できます。

■チャームリポジトリサイト「チャームストア」

概要

チャームのリポジトリサイトとして「チャームストア」が用意されています。

1つのコマンドで展開できるさまざまなベストプラクティスソリューションとして、数百以上のチャーム(バンドル)が公開されており、取得して利用できます。

展開できる主なアプリケーション

チャームストアでは、「Kubernetes」「OpenStack」「Apache Hadoop」「その他各種ビッグデータソリューション」など、数多くのクラウド指向アプリケーション用チャーム(バンドル)がリストされています。

チャームストアURL

→Juju →Store

■デプロイ対象環境

Jujuのデプロイ対象環境は、大きく分けて3種類あります。
①ベアメタル環境---「MaaS(Metal as a Service)」「LXDコンテナ」を利用
②パブリッククラウド環境---AWS、Azure、Google Cloud Platformなど
③ローカルマシン仮想化環境---「LXC仮想化」「ローカルプロバイダ」を利用

Jujuサービス「JAAS」

■概要

JAAS(Juju as a Service)は、Jujuを使用してアプリケーションを操作するためのホストされたサービスです。Ubuntu開発元であるCanonical社が提供しています。

JAASを使用すると、アプリケーションをパブリッククラウドなどに対して、迅速に、構築/構成/管理/デプロイできます。

Jujuと同じCLIとGUIを使用して、JAASを他のJujuインフラストラクチャとともに使用できます。

「アプリケーションモデルの共有」や「他のユーザーとのコラボレーション」も行えます。

→Juju →JAAS(JAAS gives you Juju, as a service)

補足情報

■同様製品

同様な機能を提供する製品として、次のようなものがあります。

オープンソース製品:「Chef」「Puppet」「Ansible」など。

■オフィシャルサイト

オフィシャルサイト

→「Juju」オフィシャルサイト

ライセンス情報

Jujuのライセンスは「GNU Affero GPL v3 LGPL」です。

詳細について、こちらを参照ください。
→Wikipedia →Juju (software)

ダウンロード

→「Juju」オフィシャルサイト →Getting started with Juju

 

参考元サイト

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

Juju最新TOPICS

最新情報はありません。

Juju最新CLOSEUPコラム

無料資料プレゼント

機械学習導入にあたって理解したい4つのステップ

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



  • 勉強会
  • OSSNEWSに広告を掲載しませんか?

facebook

twitter