Dockerで考える、マルチクラウドの未来。July Tech Festa 2014

2014年7月1日

コンテナ仮想化の実装の1つであるDockerは、クラウドをまたがってコンテナを移動できる高いポータビリティを実現しようとしています。そのとき、複数のクラウドを活用するマルチクラウドとはどのようなものになるのでしょうか。

6月22日に首都大学東京 産業技術大学院大学で行われた「July Tech Festa 2014」の荒井康宏氏のセッション「Dockerで考える、マルチクラウドの未来」の内容を本記事で紹介します。

Dockerで考える、マルチクラウドの未来

一般社団法人 クラウド利用促進機構 代表理事 荒井康宏氏。

fig

RightScaleの調査によると、パブリッククラウドの利用割合としてはAWSが飛び抜けているが、Rackspace、Google 、Microsoft Azureなども比較的多く使われています。

fig

またプライベートクラウドでは、VMwareとOpenStackが優勢です。

ここで言えるのは、パブリッククラウドもプライベートクラウドもさまざまなサービスやソフトウェアが使われていると言うことで、これはマルチクラウドが期待されている、ということ。

マルチクラウドに期待されているものの1つが、リソースやワークロードなどの適正配置です。

どうしてもプライベートクラウドに起きたいものがある一方で、パブリッククラウドに置いた方が安かったりするものもあります。

fig

ディザスタリカバリやバックアップをパブリッククラウドで構築するというのもあります。また、パブリッククラウドを1社だけ使うのは価格変更やサービスの変更のリスク、あるいは事業者そのものがなくなってしまうリスクがあるので、ベンダロックインを回避するためにマルチクラウドにしましょう、ということもあります。

fig

要するに、いろんなクラウドを使う時代になってきて、いろんな選択肢のある時代ですねと。

ここまでが前置きです。

Dockerでインフラ層がなんでもよくなるのではないか

Dockerとは、ひとことで言うとコンテナ管理フレームワークですねと。Docker 1.0からはDocker EngineとDocker Hubというのも登場しました。

fig

Dockerで何が変わるのかと言うと、サーバ環境構築の簡易化、インフラ環境もコンテナで抽象化されるでしょうと。

fig

そうするとインフラ層がなんでもよくなるんじゃないかと。だからシステム全体の最適化や自動化できるところをちゃんと考えましょうね、ということになりそうです。

fig

一般にDockerのメリットで語られるのは、継続的インテグレーションや継続的デリバリが楽になって、環境のデプロイのデリバリがコマンド一発でできて早いですねと。

でも今日のメインはポータビリティです。Dockerはポータビリティも非常に高いですねと。そしてホストOSからコンテナの環境が独立しているのも非常に便利ですね。

fig

マルチテナンシーのレベルが違うのは重要なことで、これまでクラウドのマルチテナンシーはVMベースでしたが、Dockerではプロセスレベルでマルチテナンシーが確保できる。プロセス型のPaaSができますねと。

Dockerによるポータビリティの実現

Dockerのポータビリティについて考えてみましょう。Dockerコンテナの移動にはいろんなやり方があって、プライベートリポジトリを利用したり、セーブとロード機能を使ったりします。

fig

Docker Hubというのもあります。これはなにげにすごいと思います。Dockerをベースとしたアプリケーションの開発、配布、実行のための一連の機能を提供していて、コンテナイメージの登録、共有、検索が可能。

プライベートリポジトリも無償で1つだけ持てます。

fig

Dockerを使うとポータビリティが確保できて、パブリッククラウドやプライベートクラウド間でコンテナを移動するのが非常に簡単になります。

fig

しかしコンテナを移動したらそれでシステム移行ができるのかというと、そうじゃないでしょうと。コンテナの移動はシステム移行の一部であって、DNSやネットワーク設定の切り替え、イメージの管理、ストレージ管理なども一元的に行わないといけません。こういうところはどうするのか、という課題は残っています。

Dockerによる次世代マルチクラウドシステム

というところも含めて、Dockerによる次世代マルチクラウドについて考えてみました。

従来型のマルチクラウドは、クラウドマネジメントツール、クラウドフェデレーションツールがクラウド間のAPIの違いを吸収していました。そして、どのクラウドにも同じCentOSのイメージなどを配布しておいて、クラウドの機能差などを吸収するスクリプトなどを用いていました。

fig

この従来型でも、クラウドをまたがったディザスタリカバリなどが組めるのですが、面倒なところがあるので、実際にやっている例はあまりなかったのではないかと思います。

従来のマルチクラウドの方式には、構成管理機能、運用管理機能、セキュリティなどいろんな機能がありました。

fig

Dockerを使うことで、これがだいぶ変わるのではないかと思います。

マルチクラウドに対応するアーキテクチャはこれまで、マネジメントツールがそれぞれのクラウドをAPIでたたいていました。

fig

これがそうじゃなくなり、あちこちにDockerが入るようになりますねと。

fig

DockerはVagrantとかぶるところがあるのですが、コンテナが入ってきて、その上にChefも入ってくる。その上の層では、CoreOSのようにクラスタマネジメント層がでてきて、サービスマネジメント層ではシステム全体を最適化したりと、そういった機能が必要になってくるのではないかと。

fig

マルチクラウドという視点でまだ足りないのは、クラウド間の最適なジョブコントロールやネットワークの自動構成など、マルチクラウドでのコストや性能の最適化です。性能が劣化したら移動するとか、コストが下がったら移動するとか、将来的にはそういうのも必要でしょう。

fig

Dockerの層は、今後非常に重要な層になります。パブリッククラウドもプライベートクラウドもこのDockerの層が乗って、システム構築にとって重要になるのではないかと。

fig

そしてそれを自動化する層。そういうのが揃ったあたりで、マルチクラウドでの性能最適化やコスト最適化とか、そういうのが出てくるのではないかと思います。

いずれにせよDockerが出てくることで、クラウドのIaaSもPaaSも含めて変わろうとしていると言えるのではないでしょうか。

このエントリーをはてなブックマークに追加
Bookmark this on Delicious

タグ : Docker , クラウド


≫次の記事
Docker専用のLinux軽量OS「CoreOS」が、商用サポート「CoreOS Managed Linux」と管理ツール「CoreUpdate」の提供を開始
≪前の記事
[PR]物理サーバ群をクラウドのように利用可能。性能オーバーヘッドなし、故障時にはすぐ新サーバへ。ベアメタル型アプリプラットフォーム