マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2020.01.01
【OSS情報アーカイブ】Juju


※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。
コンテンツ
「Juju」とは
「Juju」基本情報
■概要
Juju(ジュジュ)とは、アプリケーションモデリングによるデプロイツールです。パブリック(プライベート)クラウドおよびローカルコンテナに対して効率的な展開/構成/拡張/操作を行えます。
■基本説明
Jujuは、オープンソースのアプリケーションモデリングツールです。
「ベアメタルサーバ(ローカルコンテナベース)」「パブリッククラウドサービス」「プライベートクラウドサービス」などの環境に対して、アプリケーションサービス用インフラストラクチャの「展開」「構成」「スケーリング」「統合」「操作」を迅速に実施できます。
Jujuは、アプリケーションの構築/動作を自動化するために必要なすべての操作知識をカプセル化でき、対象環境に対する運用タスクを効率化し、運用オーバーヘッドを削減することに重点を置いています。
■動作環境
Jujuは、「パブリッククラウド」「プライベートクラウド」「ローカル環境」に対応します。
OSとして「さまざまなLinuxディストリビューション」「macOS」「Windows」で利用できます。
■経緯
Jujuは、Ubuntuを商用サポートしているCanonical社が開発し提供しています。
■オフィシャルサイト情報
オフィシャルサイト
ライセンス情報
Jujuのライセンスは「GNU Affero General Public License v3.0」です。
詳細について、こちらを参照ください。
→GitHub →juju/juju →LICENCE
ダウンロード
■同様製品
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「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つのコマンドで展開できるさまざまなベストプラクティスソリューションとして、数百以上のチャーム(バンドル)が公開されており、取得して利用できます。
展開できる主なアプリケーション
チャームストアでは、「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)
参考元サイト
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
- 🏆ランク1位🏆
【無料で使える】「 プロジェクト管理 」ツールまとめ - 🏆ランク2位🏆
【無料で使える】「 OCR 」ツールまとめ - 🏆ランク3位🏆
【OSS情報アーカイブ】SonarQube - 🏆ランク4位🏆
【無料で使える】「 翻訳 」ツールまとめ - 🏆ランク5位🏆
【無料で使える】「 ドキュメント管理 」ツールまとめ - 🏆ランク6位🏆
【無料で使える】「 RPA 」ツールまとめ - 🏆ランク7位🏆
【ツール紹介】無料で使えるオープンソース「 ヘルプデスク 管理ツール 」まとめ5選 - 🏆ランク8位🏆
【ChatGPT使ってみる実験室】 WordPress関数を作って記事リストを出力 - 🏆ランク9位🏆
【無料で使える】「 マルウェア 」対策ツールまとめ - 🏆ランク10位🏆
【無料で使える】「 ファイアウォール 」ソフトウェアまとめ