Japan Container Days、CNCFのCTOが語るクラウドネイティブへの道
Japan Container Days v18.04のレポート、今回はCloud Native Computing Foundation(CNCF)のCTOであるChris Aniszczyk氏のインタビューをお届けする。筆者も企画時点から関わった今回のカンファレンス、構想の時点では「今回は日本のユースケースを中心にしてセッションを構成しよう」というアイデアで進行していた。しかしCNCFに対して打診してみると、CTOであるAniszczyk氏が来日して講演してくれるという結果になった。率直に言って想定外のことであったため、同時通訳をつけて日本語でお届けするところまで手が回らず、セッションは英語のまま行ってもらうことになった。
今回のインタビューはセッションの直前に行われたもので、セッションで語られた内容が多く含まれている。「参加したが、セッションのほうはよくわからなかった」という方にもぜひ、読んでいただきたいと思う次第である。
自己紹介をお願いします。
私は約2年半前にLinux Foundationに参加しましたが、今は、2つの役割を担っています。1つはCNCFのCTOという役割、そしてもう1つはOCI(Open Container Initiative)のExecutive Directorという役割です。これらの役割はとても関連が深いので、同時に兼ねるのは意味があると感じています。この仕事を受ける前は、Twitterでコンテナ関連のエンジニアリングをやっていました。コンテナ以外にもMesosやParquetなどのソフトウェアも多く使いながら、クラウドネイティブなシステムを開発していた側でした。コンテナを使ったインフラストラクチャーに深く関わっていたことから、「今後、これはもっと大きなことになる」と感じてこの仕事を引き受けたのです。なぜならこれから多くのビジネスがソフトウェアによって可能になる、そしてその時のインフラストラクチャーはコンテナであると確信したからです。例えば自動車メーカーも、これからもっとソフトウェアをベースにしたビジネスに転換していくでしょう。トヨタなどは良い例だと思います。その時にその大きな流れの中にいたいと感じたことが、今の仕事をしている理由ですね。そしてコンテナのオーケストレーションがこれから重要になるということを強く感じました。
そういう意味ではKubernetesはすでにデファクトスタンダードという位置にあると思いますが。
私としてはそれを「マーケットリーダー」というように表現したいですね。なぜならクラウドネイティブなシステムを開発するためには、Kubernetes以外にもMesosやNomadなどのオーケストレーションツールがあるからです。ただ現時点では多くのシステムでKubernetesが使われていることも確かです。しかしCNCFのプロジェクトを見てもらえばわかるように、様々なソフトウェアが存在しています。そしてクラウドネイティブなシステムといってもPrometheusやEnvoyを使ったシステムもありますし、Mesosや他のオーケストレーションツールが動いている場合もあります。ただ、コンテナを使うというのがこれらのクラウドネイティブなシステムにおいては最も重要な要因になると思います。PrometheusやOpenTracingなど様々なソフトウェアとコンテナを使ってシステムを作るというのがクラウドネイティブなシステムであるとすれば、必ずしもKubernetesだけがコンポーネントであるわけではないのです。
CNCFには様々なプロジェクトがありますが、これらはどのように管理運営されているのですか?
CNCFを動かしている組織には3つあります。1つ目はガバナンスボード、これはビジネスの観点からCNCFを運営するもので、ちょっと退屈な部分になるかもしれません。2つ目がテクニカルボード、これがTOC(Technical Overseeing Committee)です。ここでは、テクニカルなディスカッションが行われます。例えば、「次にホストすべきプロジェクトは何か」と言ったところですね。ここにはクラウドネイティブなテクノロジーをよく知っているエンジニアが多く加わっており、技術的なことを話し合う場になっています。そして3つ目がユーザーボードです。これはユーザーの立場から、クラウドネイティブなシステムに対するフィードバックを行う場所になります。現在はGitHubからも代表を出してもらっています。ユーザーボードはTOCの投票権を1票持っていますので、そこからもTOCの決定に参加することが可能なのです。つまり3つのボードがチェックアンドバランスを行える構成になっているということになります。
政府の組織のように、ですか?
そうですね、「アメリカの政府のように」と言いたいところですが、今のアメリカ政府はカオスのように見えるので、その例えはちょっと遠慮したい気持ちです(笑)。ただTOCにおいて承認を得るためには3分の2の賛成を得なければいけないので、非常によくガバナンスが効いていると思います。
日本のエンタープライズにおけるクラウドネイティブはまだこれからと言ったところだと思います。特にまだ仮想化というレベルで留まっている企業が多いように思えます。そういった企業に対して、クラウドネイティブに向かう際の良いアプローチがあれば教えてください。
現在、日本だけではなく、アメリカを含め多くの企業がクラウドネイティブに向かっています。全ての企業はユニークですから、クラウドネイティブに向かうやり方もそれぞれだと思います。最近CNCFは、クラウドネイティブなシステムを開発するための教育に役立つ「トレイルマップ」というものを作りました。これはクラウドネイティブなシステムに向かうための道筋をそれぞれ解説したもので、コンテナ化から始まってCI/CD、Kubernetesによるオーケストレーションなど全部で10のステップに渡ってクラウドネイティブを解説してあります。
参考:https://github.com/cncf/landscape/blob/master/README.md#trail-map
企業によって、アプローチは様々なのです。モノリシックなアプリケーションを使っている企業がまずコンテナ化するところから始めて、徐々にマイクロサービスに向かう場合もあるでしょうし、最初にCI/CDのプロセスを作ってから行う企業もあるわけです。私がよく例に使うユースケースは、Ticketmasterの例ですが、彼らはとても古いアプリケーション、これはPDP-11というシステムで動いていたアプリケーションを、エミュレータを作ってコンテナで動くようにしたのです。そしてそのコンテナをクラウドの上で動くようにしました。古いハードウェアをそのまま使うのではなく、Spinnakerなどのクラウドネイティブのツールなどの利点をうまく使ったという例になります。
Ticketmasterの例は興味深いのですが、ベンダーはユーザーの問題を解決するよりもツールを売り込むのに一生懸命で、ユーザーの抱える問題に寄り添おうとしていないように感じます。
それに関するCNCFのアプローチはこうです。つまり何か新しいソフトウェアやソリューションが必要になった時に、ベンダーやコミュニティはプロジェクトを立ち上げます。そして開発を行い、ユーザーからのフィードバックを受けてプロダクトになります。ベンダーはそれに対してサポートなどの付加価値を付けてプロフィットを得る、そのサイクルがちゃんと回ることをCNCFは目指しています。その場合に大事なことは「CNCFはディストリビューションを作らない」ということなのです。つまりベンダーやコミュニティが何かを作ったとして、それを他のものと組み合わせてパッケージにして、これを使いなさいとは言わないということなのです。CNCFのサイトから、そういうもの(ディストリビューション)をダウンロードさせることはありません。これはLinuxと似ています。つまりLinuxのカーネルはコミュニティが開発していますが、それをRed HatやSUSEなどのベンダーがパッケージとして提供しています。まさにそこは似ていると思いますね。
以前、Linux FoundationのネットワークグループのGMであるArpit Joshipura氏にインタビューした時にクラウドコンピューティングのユーザーを、パブリッククラウドベンダー、テレコムキャリア、エンタープライズと3つに分けて説明してもらったことがあります。その時にテレコムキャリアはすでにOpenStackに投資しているだろうから、これから徐々にクラウドネイティブなコンテナの世界に移っていくだろう、エンタープライズはOpenStackをスキップしてそのままクラウドネイティブな世界に行くべきだとアドバイスをくれました。それについて何かコメントは?
テレコムキャリアについては確かに多くのリソースをOpenStackにつぎ込んでいるわけですから、少し時間がかかるかもしれません。これは中国のJD.comの事例ですが、彼らは巨大なOpenStackのサーバーを全てベアメタルの上で動くKubernetesに、2年という時間をかけて置き換えました。その理由は「とにかく速く動くインフラストラクチャーが欲しかったから」だと言います。同様の動きは日本でも見られますよね。つまり社内のITインフラストラクチャーを仮想マシンベースで行うのではなく、コンテナベース、つまりKubernetesベースに移行するというものです(注:ここはJKDのキーノートで紹介されたKubernetes-as-a-Serviceを指すと思われる)。つまりもう仮想マシンベースではなく、コンテナのオーケストレーションでインフラストラクチャーを提供することが、ビジネスに直結する結果を出せるということだと思います。
またもう一つの注目すべき動きは、マルチクラウドに動いているということですね。良い例がNetflixです。彼らはほぼ100% AWSのユーザーでしたが、今はGoogleのクラウドにワークロードを移行しようとしていると言います。これは経済競争の観点から言えばとても正しい判断で、常にひとつのベンダーに依存するのではなく、ベンダーを競争させてより安く良いプラットフォームを使うことを選択するべきなのです。
Chris Aniszczyk氏は自身のセッションの直前にもかかわらずインタビューに応じて率直な意見を言ってくれた。同時に「日本でのマルチクラウドの必要性は?」「Serverlessはどう捉えられているのか? まだ早い?」といったように日本市場におけるニーズに関しても、大きな興味を寄せていることが良くわかったインタビューとなった。また「これからも技術的なドキュメントなどは日本語化を進めていく、今少し遅れているのは良くわかっている」とエンジニアらしい率直な一面も見せてくれた。また次にホストするプロジェクトとしてCI/CDの領域に多くのオープンソースソフトウェアが乱立していることから、最もクラウドネイティブに行えるようなソフトウェアをホストするかもしれないと言うコメントもあり、CI/CDのツールを検討しているエンジニアはCNCFの動きをチェックしておくと良いかもしれない。
なおセッションの中で触れられていた今年の後半にホストされるかもしれないというコミュニティがリードするプロジェクト「CloudEvents」については、以下のページを参照されたい。
参考:CloudEvents
今後も、CNCFの動向については引き続き注視していきたい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- プロキシサーバ「Apache Traffic Server 8.0」リリース
- 「Apache HTTP Server 2.4.37」リリース
- 「Apache HTTP Server 2.4.18」リリース
- 脆弱性の修正が施された「Apache HTTP Server 2.4.26」リリース
- 脆弱性の修正が施された「Apache HTTP Server 2.4.26」リリース
- 脆弱性の修正が施された「Apache HTTP Server 2.4.27」リリース
- 脆弱性の修正が施された「Apache HTTP Server 2.4.27」リリース
- 脆弱性の修正が施された「Apache HTTP Server 2.4.33」リリース
- 脆弱性の修正が施された「Apache HTTP Server 2.4.33」リリース
- 「Apache HTTP Server」にメモリリークの脆弱性