Ubuntu Weekly Recipe

第375回 OpenStack Roadshow Tokyoレポート

この記事を読むのに必要な時間:およそ 6 分

Autopilotを支える技術:Juju

MAASの上で動いているのがJujuです。Jujuを語るうえでシャトルワース氏は最初に「Jujuは構成管理のツールではない」ということを強調していました。元々構成管理の機能はJujuにはなく,構成管理を実現したければChefやPuppet,シェルスクリプトをを使う必要があるためです。Jujuはあくまで「構成管理を再利用するためのツール」なのだそうです。

Jujuの発端はクラウド上へOSをインストールすることの自動化でした。さまざまなインストールオプションを手動で設定することなく自動的にインストールできることを目指して作られました。結果的にインストールは簡単になったものの,今度は設定作業に時間をかけるようになることが判明したのだそうです。しかもプロジェクトごとに好みの構成管理ツールを使って,似たようなことを行っていることも。そこで,各プロジェクトが作った構成管理の設定を「再利用」できるようにしようとした結果,今のJujuとなったのです。

図10 JujuでWordPressをデプロイしている途中

図10 JujuでWordPressをデプロイしている途中

具体的なシナリオとしてシャトルワース氏は,⁠ベンチャー企業が6週間以内に何かを立ち上げる」ケースを挙げました。その中では,プロダクトの紹介をするブログを用意する必要があるでしょう。従来であればWordPressなどをインストールして,設定ファイルをどこかからコピー&ペーストするようなことも考えられます。でも,これはその企業のビジネスそのものにはあまり関係ないので時間はかけたくありません。

会場では実際のデモとして,Juju GUIからMySQLとWordPressを検索しドラッグアンドドロップ,デプロイ先のマシンを割り当て,マウスでリレーションを設定するだけでWordPress環境ができあがる様子を示していました。シャトルワース氏は,Jujuの中で「何かが」設定管理をやっているはずだけれども,使う人は感知しなくて良いこと(カプセル化されていること⁠⁠,デプロイ先のOSですらなんでも良いことを強調していました。とにかく「WordPressのサービス」を時間をかけずに用意したいだけの人のためのツールだと言うのです。

WordPressに限らず,さまざまなスクリプト(Charm)が存在します。会場ではさらにNagiosとNRPEを導入してMySQLとWordPressを監視するようにしたり,WordPressをスケールアウトしつつHAProxyを導入したりということを,マウスだけで実現してみせていました。

図11 NRPEやHAProxyなどが追加された

図11 NRPEやHAProxyなどが追加された

理想的にはCharmはベンダーが提供してくれると良いとシャトルワース氏は言います。ベンダーが提供する複雑なインストールマニュアルの代わりに,そのベンダーの専門家が作った「ちゃんと動く」Charmを提供するということです。

このあと会場からは,Jujuに関して様々な質問が出てきました。たとえば「Jujuのメインユーザーは誰か?」という質問がありました。曰く「アプリケーション開発者には難しそうだし,SIerなら自分でスクリプトを作ることに慣れているだろう」と言うのです。それに対してシャトルワース氏は,SOAなソフトウェア,マイクロサービスを大量にまとめた新しいタイプのソフトウェアを毎日デプロイするような人たちに使われていると回答していました。OpenStackもまた,このタイプのソフトウェアに該当するそうです。逆に単純にデータベースのみをデプロイするようなユーザーには使われていない印象とのことでした。

またここまでのデモがすべてWeb UIで完結していたことを踏まえて,⁠設定内容をスクリプトに落としたり,別のJujuにインポートするといった機能はないのか?」という質問もありました。それに対しては,JujuがCLIでも操作できること,REST APIがあることを伝えたうえで,⁠Jujuはオーケストレーターではない」と回答しています。つまり設定セットを取り込んだり,エクスポートするのはJujuではなく,AutopilotのようなJujuのAPIをドライブするオーケストレーターの役割という扱いです注6⁠。そうすることでJuju/Charmの再利用性を高めていると説明していました。

注6)
そういう意味ではJuju GUIもオーケストレーターです。実際にJuju GUIにはCharmセットをBundleという形でインポート/エクスポートする機能が存在します。

ちなみにWeb UIの国際化については,プランはあるものの未着手ということでした。

発表のまとめ

OpenStackの用途としてビッグデータや機械学習があります。またラムダアーキテクチャでは,いろいろなデータやソフトウェアの組み合わせが存在します。OpenStackに限らず,Docker+Kubernetesを使うこともあるでしょう。

図12 Cloudera+Kafka+Stormを構築したJujuの例

図12 Cloudera+Kafka+Stormを構築したJujuの例

図13 Docker+Kubernetesのクラスタ

図13 Docker+Kubernetesのクラスタ

シャトルワース氏はJujuを使って構築したさまざまなモデルを示しながら,Jujuを見れば,何がどこでどうつながっているかもわかるようになると言います。このため,どんなクラウド用途であっても,そのサービスの専門家を雇えなかったとしても,その複雑な環境を構築できるようになるとのことでした。

ちなみに,発表の合間にはCanonicalが提供するBootStackや,近々発表されるであろうQuontaとの提携サービスについての紹介もありました。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。