Sahara
Sahara
Saharaは、OpenStack環境の上にHadoop環境を構築するコンポーネントです。AWSが提供しているAmazon Elastic MapReduce(EMR)のようなサービスを、OpenStack上で実現します。
[Sahara]https://savanna.readthedocs.org/en/latest/overview.html
Saharaは、REST APIやOpenStackの標準的なWeb管理画面であるHorizonに操作画面を提供します。いくつかのパラメータを指定するだけで必要な設定が行われて、Hadoop環境が構築されます。
Saharaはその他のOpenStackと連携しますが、特に処理するデータはオブジェクトストレージのSwiftに格納できるように連携する点がHadoopらしいところでしょうか。
[Architecture]https://savanna.readthedocs.org/en/latest/architecture.html
Hadoop用のVMイメージがあらかじめ用意されている他、Hadoop環境を管理するためのツールとしてApache AmbariやCloudera Management Consoleとの連携も図れるようになっています。
Trove
Troveは、DBaaSを提供するためのコンポーネントです。たとえばMySQLなどのDBが動作する環境を簡単に提供することを目的にしています。対応するDBはRDBMSだけでなく、MongoDBのようなNon-SQLなDBも含まれています。また、単にDBが動作するようにするだけでなく、バージョンアップ、バックアップとリストア、監視などが行えるように開発が進められています。
[Trove]https://wiki.openstack.org/wiki/Trove
Troveは、DBが稼働しているインスタンスでエージェントを動かすことで利用者からの指示を受け取って、各種処理を実行するというアーキテクチャとなっています。エージェントは各DBごとに必要となりますが、逆にエージェントさえ作ればどんなDBにでも対応可能となります。
GitHubに置かれているソースコードを見ると、以下のDBの名前が見つかります。
trove/trove/templates/
Cassandra
Couchbase
MongoDB
MySQL
Percona
Redis
[GitHub]trove/trove/templates at master openstack/trove
またBlueprint(青写真・今後の予定)にはOracleなどの文字も見えるので、今後も対応するDBは増えていくのではないでしょうか。
Marconi
Marconiは、メッセージサービスを提供するコンポーネントです。OpenStack上で動作するWebアプリケーションなどに、HTTPでアクセスできる非同期型のメッセージキューを提供することを目的としています。大規模なWebアプリケーションなどを提供する際に、DBaaSと並んで必要となる基盤サービスと位置付けられます。
[Marconi]https://wiki.openstack.org/wiki/Marconi
HTTPでアクセスできるので、IoT(Internet of Things)のような環境のフロントエンドなどに使用する事も想定しているようです。
まとめ
OpenStackのIaaS基盤としての基本的な機能は、前回紹介したコンポーネント群が受け持っています。その一方Icehouseでは、仮想マシンの制限を取り払うIronicやOpenStack環境そのものを扱うTripleOのような基盤拡張と、PaaSレイヤーに含まれるDBaaSやMessage as a Serviceを提供するコンポーネントなど、IaaSの枠組みを越えた拡張が進められているのが分かります。
次回は、実際にOpenStack環境を構築する際に引っかかりやすいポイントについて解説します。
- この記事のキーワード