Tech Sketch Bucket of Technical Chips by TIS Inc.

OpenStack Summit Tokyoに見るOpenStackコンテナ関連プロジェクトの動向

Pocket

昨年10月末に品川で開催されたOpenStack Summit Tokyoにおいて、特に盛り上がりを見せていたのがコンテナ関連の話題でした。今回の記事では、OpenStack Summitのセッション内容を引用しつつ、OpenStackのコンテナサービスであるMagnumを中心に、OpenStackのコンテナに関する取り組みを紹介します。

OpenStackのコンテナに関する取り組み

OpenStackでは、いくつものプロジェクトの中でコンテナが利用され始めています。 セッション「The Containers Ecosystem, the OpenStack Magnum Project, the Open Container Initiative, and You!」では、OpenStackの中でどのようにコンテナが活用されているのか紹介されました。下図は、発表スライドの中の1枚です。

container-project

(引用: The Containers Ecosystem, the OpenStack Magnum Project, the Open Container Initiative, and You!)

Nova

Novaは仮想マシンを提供するコンピュートサービスです。仮想マシンと同様にコンテナを扱えるよう、kvmやHyper-VのようにNovaのドライバとしてdocker driverが開発されていましたが、後述するライフサイクルの違いにより採用されなくなりました。

Heat

Heatはテンプレートファイルに従ってネットワークやインスタンスを自動構築するオーケストレーションサービスです。docker pluginが開発されており、インスタンス等と同様にテンプレートにDockerコンテナの設定を定義でき、自動構築することができます。

Magnum

Magnumはコンテナのスケジューリング機能を提供するサービスです。Heatを利用してDockerクラスタを自動構築し、コンテナの操作を行うことができます。Magnumについては、「OpenStack MagnumでKubernetesのexampleを動かしてみる」の記事で詳しく紹介しています。

Kolla

KollaはOpenStackの各サービスをコンテナ化し、OpenStackの構築やアップデートを簡単にしようというプロジェクトです。DockerとAnsibleを使って、OpenStack環境を構築することができます。Summitでは、こちらのセッションで実際にOpenStack環境を構築するデモが行われていました。まだまだ開発途上のプロジェクトではありますが、OpenStackのアップデートが簡単になるなど、今後に期待が持てます。

Murano

Muranoはアプリケーションカタログを提供するサービスです。PaaS基盤としてKubernetesを自動構築し、その上にコンテナ化されたアプリケーションを展開できます。もともとはMirantisが提供しているOpenStack Distributionの機能でしたが、JunoリリースからOpenStackのプロジェクトとして取り込まれました。Libertyリリースでは、UIの改善などが行われています。

Kuryr

上記の図には記載されていませんが、Kuryrというコンテナネットワークに関するプロジェクトがあります。Kuryrを利用することで、DockerのネットワークをOpenStackのネットワーク機能であるNeutronと紐付けることができます。 Kuryrについては「MidoNetで試すKuryr - Docker remote driver for OpenStack Neutron」の記事で詳しく紹介しています。

LibertyリリースでのMagnumアップデート

セッション「OpenStack Magnum - Containers-as-a-Service」では、Magnumの概要とOpenStack Libertyリリースにおけるアップデートが紹介されました。

インスタンスとのライフサイクルの違い

Magnumの出自として、前述した通りもともとはコンテナをインスタンスと同様に扱えるよう、Novaのドライバとしてdocker driverが開発されていました。しかし、下図にあるように、コンテナとインスタンスではライフサイクルが異なる事から、Magnumという独立したサービスとしてコンテナを扱うようになりました。

container-lifecycle

(引用:OpenStack Magnum - Containers-as-a-Service)

Magnum Liberty Update

セッションではLibertyでのMagnumの主なアップデートが紹介されました。大きなアップデートとして、Container Orchestration Engineが、これまでのKubernetesとDocker Swarmに加え、Apache Mesosにも対応しました。これにより、現在の主要なDockerスケジューラをカバーできたと言えます。アップデート全体としては、コンテナ関連の盛り上がり具合を考えると少し物足りなくも感じますが、今後も継続的に発展していくことが期待されます。

magnum-liberty-update

(引用:OpenStack Magnum - Containers-as-a-Service)

Magnum Contributors Meetup

最後に、OpenStack Summitで開かれたContributors Meetupの様子を紹介します。Contributors MeetupではOpenStackのプロジェクトごとに開発者が顔を会わせ、次のリリースに向けての課題や開発の進め方を共有します。

MagnumのMeetupには20名ほどのエンジニアが参加し、ホワイトボードなどを使いながらディスカッションを進めました。主な議題として、ドキュメントの整備やコードレビューの進め方についてディスカッションが行われました。また、「Dockerの進化が早いので、情報をキャッチアップする良い方法はないか」といったエンジニア個人が気になっている事を相談するなど、ざっくばらんに議論が進められました。Meetupの内容はEtherpadにまとめられています。

magnum-white-board

(ホワイトボードを使ってコードレビューの方針を整理しました)

まとめ

今回はOpenStack Summit Tokyoの中からコンテナ関連のトピックを紹介しました。コンテナは、Magnumはもちろんのこと、OpenStackの様々なプロジェクトで活用されつつあり、今後技術的に重要な役割を担っていくと予想されます。2016年もコンテナとOpenStackの動向に注目していきたいと思います。

エンジニア採用中!私たちと一緒に働いてみませんか?