OpenStackのポリシーエンジン「Congress」を解説
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
CTC教育サービスはコラム「OpenStackのポリシーエンジン「Congress」を解説」を公開しました
はじめに
先週、「2nd Tokyo OpenStack Meetup」に参加してきました。これは、Midokura社で「MidoNet Community Manager」を務めるSandroが主催するイベントで、英語でOpenStackの情報を交換しようという趣旨のユーザー会です。
今回は、このイベントのセッションで紹介されていた「OpenStack Congress」を紹介したいと思います(*1)。あまり聞き慣れないコンポーネントですが、OpenStackの環境からさまざまなデータを取得して、事前に定義した「ポリシー」に適合した環境であることを検査するというツールです。プライグイン形式のドライバーによって取得する情報を追加することができるので、原理的には、あらゆる構成についての検査が可能です。プロジェクトのWikiでは、次のような設定例が紹介されています。
•アプリケーションAは、アプリケーションBのみと通信可能であること。
•グループBに属するテナントAの仮想マシンは、必ずパブリックネットワークに接続されていること。
•仮想マシンAは、ストレージBが存在するリージョンで起動すること。
また、検査結果に応じて、APIリクエストを発行して環境を変更することも可能です。ポリシーに適合しない仮想マシンは強制停止するなどの使い方が考えられるでしょう。
Congressのアーキテクチャー
まずはじめに、Congressの仕組みについて、その全体像を示しておきます(図1)。Congressは開発途上のため、アーキテクチャーに関するドキュメントがまだあまり見当たりません。これ以降の内容は、筆者自身で、ソースコードを読み解いて確認した内容になります。不正確な部分があるかも知れませんので、その点はご了承ください。
fig01
図1 Congressの全体像
図1にある、「データソースドライバー」と「ポリシーエンジン」がCongressの中心的な役割を果たします。まず、データソースドライバーは、OpenStackのAPIを用いて、各種コンポーネントから定期的に情報を取得します。Novaの情報を取得する「novaドライバー」、Neutronの情報を取得する「neutronドライバー」などに分かれます。そして、収集した情報がポリシーに合致するかを判定するのがポリシーエンジンです。ポリシーエンジンは、ポリシーに違反する情報を発見すると、事前に定義されたアクションを実行します。この際、データソースドライバーを通して、OpenStackの各コンポーネントにAPIリクエストを送信することができます。これにより、OpenStackの環境をポリシーに合致するように管理していくことが可能になるわけです。
この続きは以下をご覧ください
http://www.school.ctc-g.co.jp/columns/nakai/nakai70.html
ソーシャルもやってます!