Dockerで考える、マルチクラウドの未来。July Tech Festa 2014
コンテナ仮想化の実装の1つであるDockerは、クラウドをまたがってコンテナを移動できる高いポータビリティを実現しようとしています。そのとき、複数のクラウドを活用するマルチクラウドとはどのようなものになるのでしょうか。
6月22日に首都大学東京 産業技術大学院大学で行われた「July Tech Festa 2014」の荒井康宏氏のセッション「Dockerで考える、マルチクラウドの未来」の内容を本記事で紹介します。
Dockerで考える、マルチクラウドの未来
一般社団法人 クラウド利用促進機構 代表理事 荒井康宏氏。
RightScaleの調査によると、パブリッククラウドの利用割合としてはAWSが飛び抜けているが、Rackspace、Google 、Microsoft Azureなども比較的多く使われています。
またプライベートクラウドでは、VMwareとOpenStackが優勢です。
ここで言えるのは、パブリッククラウドもプライベートクラウドもさまざまなサービスやソフトウェアが使われていると言うことで、これはマルチクラウドが期待されている、ということ。
マルチクラウドに期待されているものの1つが、リソースやワークロードなどの適正配置です。
どうしてもプライベートクラウドに起きたいものがある一方で、パブリッククラウドに置いた方が安かったりするものもあります。
ディザスタリカバリやバックアップをパブリッククラウドで構築するというのもあります。また、パブリッククラウドを1社だけ使うのは価格変更やサービスの変更のリスク、あるいは事業者そのものがなくなってしまうリスクがあるので、ベンダロックインを回避するためにマルチクラウドにしましょう、ということもあります。
要するに、いろんなクラウドを使う時代になってきて、いろんな選択肢のある時代ですねと。
ここまでが前置きです。
Dockerでインフラ層がなんでもよくなるのではないか
Dockerとは、ひとことで言うとコンテナ管理フレームワークですねと。Docker 1.0からはDocker EngineとDocker Hubというのも登場しました。
Dockerで何が変わるのかと言うと、サーバ環境構築の簡易化、インフラ環境もコンテナで抽象化されるでしょうと。
そうするとインフラ層がなんでもよくなるんじゃないかと。だからシステム全体の最適化や自動化できるところをちゃんと考えましょうね、ということになりそうです。
一般にDockerのメリットで語られるのは、継続的インテグレーションや継続的デリバリが楽になって、環境のデプロイのデリバリがコマンド一発でできて早いですねと。
でも今日のメインはポータビリティです。Dockerはポータビリティも非常に高いですねと。そしてホストOSからコンテナの環境が独立しているのも非常に便利ですね。
マルチテナンシーのレベルが違うのは重要なことで、これまでクラウドのマルチテナンシーはVMベースでしたが、Dockerではプロセスレベルでマルチテナンシーが確保できる。プロセス型のPaaSができますねと。
Dockerによるポータビリティの実現
Dockerのポータビリティについて考えてみましょう。Dockerコンテナの移動にはいろんなやり方があって、プライベートリポジトリを利用したり、セーブとロード機能を使ったりします。
Docker Hubというのもあります。これはなにげにすごいと思います。Dockerをベースとしたアプリケーションの開発、配布、実行のための一連の機能を提供していて、コンテナイメージの登録、共有、検索が可能。
プライベートリポジトリも無償で1つだけ持てます。
Dockerを使うとポータビリティが確保できて、パブリッククラウドやプライベートクラウド間でコンテナを移動するのが非常に簡単になります。
しかしコンテナを移動したらそれでシステム移行ができるのかというと、そうじゃないでしょうと。コンテナの移動はシステム移行の一部であって、DNSやネットワーク設定の切り替え、イメージの管理、ストレージ管理なども一元的に行わないといけません。こういうところはどうするのか、という課題は残っています。
Dockerによる次世代マルチクラウドシステム
というところも含めて、Dockerによる次世代マルチクラウドについて考えてみました。
従来型のマルチクラウドは、クラウドマネジメントツール、クラウドフェデレーションツールがクラウド間のAPIの違いを吸収していました。そして、どのクラウドにも同じCentOSのイメージなどを配布しておいて、クラウドの機能差などを吸収するスクリプトなどを用いていました。
この従来型でも、クラウドをまたがったディザスタリカバリなどが組めるのですが、面倒なところがあるので、実際にやっている例はあまりなかったのではないかと思います。
従来のマルチクラウドの方式には、構成管理機能、運用管理機能、セキュリティなどいろんな機能がありました。
Dockerを使うことで、これがだいぶ変わるのではないかと思います。
マルチクラウドに対応するアーキテクチャはこれまで、マネジメントツールがそれぞれのクラウドをAPIでたたいていました。
これがそうじゃなくなり、あちこちにDockerが入るようになりますねと。
DockerはVagrantとかぶるところがあるのですが、コンテナが入ってきて、その上にChefも入ってくる。その上の層では、CoreOSのようにクラスタマネジメント層がでてきて、サービスマネジメント層ではシステム全体を最適化したりと、そういった機能が必要になってくるのではないかと。
マルチクラウドという視点でまだ足りないのは、クラウド間の最適なジョブコントロールやネットワークの自動構成など、マルチクラウドでのコストや性能の最適化です。性能が劣化したら移動するとか、コストが下がったら移動するとか、将来的にはそういうのも必要でしょう。
Dockerの層は、今後非常に重要な層になります。パブリッククラウドもプライベートクラウドもこのDockerの層が乗って、システム構築にとって重要になるのではないかと。
そしてそれを自動化する層。そういうのが揃ったあたりで、マルチクラウドでの性能最適化やコスト最適化とか、そういうのが出てくるのではないかと思います。
いずれにせよDockerが出てくることで、クラウドのIaaSもPaaSも含めて変わろうとしていると言えるのではないでしょうか。
あわせて読みたい
Docker専用のLinux軽量OS「CoreOS」が、商用サポート「CoreOS Managed Linux」と管理ツール「CoreUpdate」の提供を開始
≪前の記事
[PR]物理サーバ群をクラウドのように利用可能。性能オーバーヘッドなし、故障時にはすぐ新サーバへ。ベアメタル型アプリプラットフォーム