Dockerを使いこなすには。Dockerはこの先どこへ向かうのか? Docker座談会(後編)

2016年2月23日(火)
高橋 正和
DockerについてはThinkITでもこれまで何度か解説してきた。今回はDockerを仕事で扱っている方々に、Dockerをどう使っているか、どう使うのがよいかについて、座談会形式で話していただいた。(※この座談会は2015年に実施されたものです)

後編である今回は、ある程度の規模で実運用に使うときの課題や、利用する側の企業の課題、Dockerの上のソフトウェアの動向、Docker社の動向、といったテーマでお送りする。前編はこちら

複数のコンテナーでシステムを組むのはまだ大変

松井:Dockerも、1つのコンテナーならいいのですが、複数のコンテナーでシステムを組むときには、いろいろ考えることが出てきますよね。ネットワーキングやストレージ、スケジューリング、バランシングなど。
そうすると結局PaaSのようになってきて、OpenShift 3やFlynnのようなシステムになる。でもロックインされるのは楽しくない。みんなKubernetesを使うならいいんでしょうけど、そうじゃないんで。

:コンテナーのリンクを使えば、ほかのコンテナーを環境変数で渡してクラスターを組むことはできます。ただし、参照されるサーバーを先に立ち上げるといった順番が決まっていますし、1つのコンテナーが落ちて上げなおすには、関連するものを全部上げなおしになる。

松井:そうなるとKubernetesとかMesosとかを使わざるをえないということになりますね。Dockerは、SwarmとComposeを使えばできると言っていて、あまりイケているとは思わないけど、ある程度の選択肢にはなるとは思う。
最近そのあたり、OpenShiftもそうですけど、Dockerを中心としたエコシステムがいろいろできている。ただ、それはそれで、流行りすたりが出てきていて、流行らないものに乗っちゃうと大変だなあという気はします。

横田:それを見極めるのが本当に難しいですよね。

:本番環境にDockerを適用するうえで、いかにコンテナーのポートを外のサービスと結びつけるか。開発のときはDockerから情報を調べればわかりますが、本番環境でサーバーのコンテナーがたくさん動いているときに、どのコンテナーにつなぐのか、それがネックになってきます。(前佛氏に)どうでしょう、セオリーを聞きたい。

前佛:いや、公式的な見解はないかと思います。Docker社としては、その場その場で違うので、いろいろやってみてくださいと。あと、いろいろなスケジューラーが出ているので、いろいろ使ってくださいと、そういう感じだと思います。そのエコシステムのエンジンとしてDocker Engineがある。ただ、そう言いつつ、Docker社自身でSwarmとかもやっているんですが。

:Dockerは、バックエンドのオーバレイネットワークは抽象化が進んでいると思うんですが、フロントエンドからのアクセスが抽象化されていないんじゃないかと。

前佛:DockerがMachineとComposeを作ったのは、そのあたりだと思いますよ。PaaSのスケジューラーを作って、そのスケジューラーとComposeをくっつけて。どういったターゲットをどのノードに対して分散させるかというのは、これからだと思います。

松井:そのあたりはKubernetesが、Podの管理などで先行しているかなと思いながら見ています。

:生のKubernetesだと、外からアクセスしづらくないですか?

松井:確かにそうですね。

:Pod内は楽ですけど。そのあたりは、この座談会を機会に聞きたかった話です。
OpenShift v3の実装では、ルーターサービスがいて、Pod内のコンテナーのポートとFQDNのマッピングをして、裏のポートを管理してくれる。それを、ソフトウェアでやったり、F5のロードバランサーでやったりできるようになっているようです。そこで、Docker社の実装がどうかを知りたいと。

松井:元になったDotCloudのPaaSのシステムではあったと思うんですが、Dockerとして作りなおしたときに、コアだけDockerになったんだろうという気がします。

前佛:ネットワークの部分はいま、ぜんぜんなかったかもしれません。ほかの会社の実装をマージしようとしているようです。

松井:そうしたネットワークまわりやサービスディスカバリなど、けっこう難しくて、いままでの仮想マシンのかわりにそのまま使おうとすると難しい部分ですね。

Dockerを使いこなしているのはCTOが機能している会社

松井:思うのは、Dockerをやるには、インフラもアプリも両方わからないとできないんですよね。それに対してSIerは、インフラ部隊とアプリ部隊で分断されているんですね。インフラエンジニアだけでDockerをやろうとしても厳しそうですし、インフラの人もアプリの人も言いたいことがあるだろうし、誰かやればいいというものではないなあと。

:そういう意味では、いまDockerを使いこなしている会社は、CTOが機能している会社だと思います。

(一同、なるほどという声)

横田:全体をデザインできないと使いこなせないということですね。

:インフラもアプリもわかって、決断権もある人がいないと、入れない。

松井:アプリ開発者側から見て、Dockerコンテナーの中のOSさえ見たくないという気持ちはわかる。デプロイしたものが100個のコンテナーで動いていても別にいいじゃないか、うまく作られていれば、という。
一方インフラ側としては、無理でしょ、パフォーマンスが劣化したしたときに誰が責任とるのか、という気持ちがあって、難しいなと。

横田:インフラを見たくないという目的では、RDSのようなDBaaSや、S3のようなオブジェクトストレージがその考え方ですよね。Dockerもいずれ、同じようにサービス化されるんじゃないかと思います。

松井:そこは、各クラウドベンダーのコンテナーPaaSと、サービスとをうまく連係させるアーキテクチャが組めればアリなんじゃないかと思います。コンテナーの運用はベンダーさんがんばってね、と。
一方、SIerの運用の人は、なるべく固く保守的に、新しいことはなるべくやらない方針です。両者が分裂していると、うまくすりあわせられないという気がします

前佛:逆にアプリ開発側の話ですが、開発現場で使うという流れもあるんですね。私の知っている企業では、地方に何箇所か拠点があって、それまでバラバラに開発していました。そこでDockerを導入して、比較的共通した基盤を使えるようになりました。開発で完結する現場であれば、導入しやすいかもしれません。

写真左:レッドハット株式会社 平 初氏、写真右:TIS株式会社 松井 暢之氏

上のレイヤーのソフトウェアは業界ごとに違ってくる?

さきほど話題に出ましたが、いまクラスターやオーケストレーションなど、Dockerの上のレイヤーのソフトウェアがいろいろ出てきています。どれに乗ったらいいんでしょうか?

松井:どれが勝つかまったくわかりません。

:OpenShift v3はKubernetesベースですが、開発者数ではKubernetesが勝っているんじゃないかと。2015年7月にリリースされた1.0では、400人以上のコントリビューターがいて、やはり大きいんだなと思います。

松井:Mesosもいいと思いますが、もともとHadoopとか汎用的にオーケストレーションするためのツールなので、少し方向性がKubernetesと違う。

横田:Mesos自体は、クラスターを構成するツールなので。コンテナーをホスティングしたいといったことですと、MesosやMarathonあたりがいいかと思いますが、一般的にはKubernetesですかね。あとは、クラウドベンダーさんのコンテナー管理システムと。

:OpenStack Magnumもありますね。モチはモチ屋で、オーケストレーションはオーケストレーションするツールにオフロードする抽象化レイヤーが必要になってくるんじゃないか。あ、それ、Docker Machineだよねということかもしれませんが(笑)

前佛:Docker Machineはまた少し違う感じですね。Docker Machineと、SwarmとComposeをくっつけないと、そっちに行かないような気がします。たぶん将来的にはKubernetesっぽいものを作りたいんだろうなという目的があって、いまはそこに向かってコンポーネントを作っている段階だと思います。だから、Docker社のものでうまくオーケストレーションできるかというと、ちょっと違う。

松井:Composeで作ったとしても、どこまでDockerfileで定義するのかという問題もありますね。全部Dockerであれば、Dockerfileで定義してComposeでばらまいてもいいんですけど。サービスがほかにもある場合、Dockerfileで本当にいいのかなと。たとえば、仮想マシン上で動くRDBMSもいっしょに管理するんだったら、ChefやAnsibleなどでプロビジョニングしたほうがいいんじゃないかなと。

前佛:そういう意味では、Rancherという会社が売っているもののがいいかもしれない。

松井:Rancherは、UIはカッコいいけど、大量に使えるかどうか、私はまだ試したことがないですね。

前佛:たぶん、数台レベルの管理では、まあまあ使えるんじゃないかと思います。とりあえずクラスターを組んでGUIを使って管理したいということであれば、いまのところ、一番とっつきやすいかもしれない。ただ、小さな会社が作っているので(笑)

:いまのところ、銀の弾丸はないということですね

松井:Dockerを含めた全体を見て、何を管理しなくちゃいけないの、ということを考えなくちゃならない。

前佛:たぶん、業界に応じたスケジューラーが出てくるのではないかという気がします。

松井:9月に北海道で開かれた「Cloud Week 2015」では、みなさん、DockerとMesosでHPCという話が出ていましたね。

横田:HPCの世界でDockerがどんどん使われているのは、びっくりしますね。Flynnとか出てきて、マジかよとか(笑)

前佛:検証以外では、何かのツールを使いたいということではなく、やりたいことにあわせてツールをえらぶという原則に戻ってくる。そのいいきっかけになるかなと思います。

写真左:さくらインターネット株式会社 横田 真俊氏、写真右:クリエーションライン株式会社 前佛 雅人氏

Docker社のトーンが変わってきた!?

Docker社のビジョンとしては、仮想化の次はDockerというものでしょうか。たとえば、すべて仮想化からDockerに、ということを目指しているのでしょうか。

前佛:実は、2015年6月のDockerConの前と後とで、風向きが変わったように思います。それまでは、「すべてDocker」「Dockerがすべてを解決する」と言ってたと思うんですが、DockerCon以降はそこがトーンダウンしている。すべてをDockerにすることはない、というように言いはじめている気がします。以前は個人や比較的小さな会社の開発環境をメインにしていたのが、夏以降はカバーリングがかわってきているのかなという感じも、個人的に受けています。

Docker社にいますごいお金や人が集まっていますよね。それを今後どう使うのでしょうか。

前佛:表に出ているところでは、ほかのベンダーさんとの連携ですね。MicrosoftやRed Hatなど、いろいろな会社と。あと、管理系のパートナーにお金を使っているようです。

最後に、一言ずつお願いします。

前佛:とりあえず使ってみましょう。○×表を作るよりは、まず使えばわかることがある。

:コンテナー化する前に、アプリケーションの棚卸しをしましょう。

松井:使えるところから使いましょう。全部で使うのでも、まったく使えないというのでもなく。

横田:いろいろ使いどころはあります。早めに触ってみましょう。あと、Linux、クラウド、と来て、コンテナーが来るのではないか、と。

ありがとうございました。

フリーランスのライター&編集者。IT系の書籍編集、雑誌編集、Web媒体記者などを経てフリーに。現在、「クラウドWatch」などのWeb媒体や雑誌などに幅広く執筆している。なお、同姓同名の方も多いのでご注意。

連載バックナンバー

運用・管理

事例から考えるDockerの本番利用に必要なこと

2016/5/26
本番環境へのDockerの導入が進むために必要な条件を、各社の事例を元に考察する。
運用・管理技術解説

Dockerコンテナ環境のバックアップツール「Convoy」を使う

2016/3/30
Docker環境のバックアップツールとして注目されるConvoyのインストールから使用方法までを解説します。
運用・管理技術解説

CoreOS&Docker環境においてOracle Database 11g Release 2をインストールするためのポイント

2016/3/23
データベースの定番であるOracle Databse 11g Release 2を、コンテナ環境に導入する手順を紹介します。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています