マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】Juju

【OSS情報アーカイブ】Juju

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「Juju」とは

「Juju」基本情報

■概要

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

■基本説明

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

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

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

■動作環境

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

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

■経緯

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

■オフィシャルサイト情報

オフィシャルサイト

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

ライセンス情報

Jujuのライセンスは「GNU Affero General Public License v3.0」です。

詳細について、こちらを参照ください。
→GitHub →juju/juju →LICENCE

ダウンロード

→GitHub →juju/juju

■同様製品

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

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

「Juju」の主な特徴

■デプロイ対象環境

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

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

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

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

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

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

「Juju」の構築手順書「チャーム」

「Juju」の構築手順書「チャーム」

■概要

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

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

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

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

■構成管理ツール連携

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

■主な記述内容

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

■チャームヘルパー機能

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

■リレーション設定

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

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

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

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

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

→Juju →Getting Started with charm development

■バンドル

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

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

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

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

概要

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

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

→Juju →Store

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

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

「Juju」のサービス「JAAS(Juju as a Service)」

「Juju」のサービス「JAAS(Juju as a Service)」

■概要

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

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

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

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

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

 

参考元サイト

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

この記事のタグ一覧

おすすめの記事

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

AIツール実験室

2023.12.27

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

各チャットAIの「添削能力」について比較確認をしています。 「ChatGPT4と同等の添削能力を発揮した無料チャットAI」にご注目ください。 また、 ChatGPTカスタマイズ機能「GPTs」を利用して作成した GPTs文章添削機能「添削師匠さん✍️」を紹介しています。 課金勢は試しに使ってみてください。