JKD v18.12開催、CNCFのChris Aniszczyk氏がクラウドネイティブのトレンドを解説
クラウドネイティブなシステムを日本で推進するためのカンファレンス、JKD v18.12(JapanContainerDays)が、2018年12月に都内で開催された。筆者も企画の当初から参加しているこのカンファレンスは、ベンダーニュートラルなポジションからクラウドネイティブなシステムを開発運用するための技術情報を共有し、国内のオープンソースコミュニティとも連携したものだ。
12月3日は有償のトレーニング、4日はジェネラルセッションの日としてCNCFのCTO/COOであるChris Aniszczyk氏がオープニングを飾り、先進的なユーザーとしてメルカリ、Preferred Networks、LINE、デンソー、ZOZOテクノロジーズなどが講演を行った。
この記事ではキーノートの前半、CNCFのChris Aniszczyk氏のプレゼンテーションについて紹介したい。
Aniszczyk氏は過去3年を振り返り、KubernetesがOpenStackやMesos、Swarmなどを引き離して注目され、実際に導入が進んだことを紹介。ここではKubernetesが、OpenStackやCloud Foundryなどを引き離してトレンドとなっているグラフで解説した。2016年の段階ではまだOpenStackのほうがトレンドとなっていることが見てとれるが、2017年辺りから急速にKubernetesがトレンドとなり、それ以降の隆盛は他を圧倒していることがわかる。
またCNCFはKubernetes以外にも多くのプロジェクトをホスティングしていることは知られているが、先日の上海のKubeConでもHarbor、TiKV、Dragonflyなどをサンドボックスとしてホスティングを開始することが発表された。このように、クラウドネイティブなソフトウェアがKubernetesを中心としたエコシステムとして着実に拡大していることを解説した。
そして歴史を振り返るという意味で、2001年頃から始まった仮想化からパブリッククラウド、PaaS、IaaS、Dockerコンテナの登場までを簡単に紹介。コンピューティングスタイルがハードウェアから仮想マシン、そしてコンテナによる柔軟なソフトウェア実行環境へと進化した現在の状況について、CNCFがベストなタイミングでその波に乗ったことを解説したと言える。
そしてLinuxが始まった当時は、ホビーのオペレーティングシステムであったことを思い起こし、現在ではスーパーコンピュータからパブリッククラウド、スマートフォン、組込系システムまでを幅広くカバーするソフトウェアになっていることを紹介して、同じ流れがKubernetesにも来るだろうと予想した。
このスライドで特に触れられなかったが、エンタープライズではLinuxがWindowsに次いで2位となっているところは、デスクトップも含めたOS環境という意味合いだろう。実際のところ、現時点でエンタープライズのデータセンターは、Linuxベースに移行しようとしていることは想像に難くない。
次に紹介したのは、アメリカのカジュアルレストランチェーンの事例だ。これは全米に展開されているレストランのエッジに、Kubernetesを使った「マイクロプライベートクラウド」を用意して、その上でアプリケーションが稼働しているというものだ。ここでは2000箇所のレストランでそれぞれ数十個のコンテナが実行されているという。1箇所につき1000ドル程度のコストになるという小さなサーバーを活用している事例で、そのサーバーを「マイクロプライベートクラウド」と表現している。
以前はDocker Swarmで実行されていたようだが、現在はKubernetesが稼働している。SwarmからKubernetesへの移行は、エコシステムの拡大が理由だという。つまりSwarmではなく、勝ち馬のKubernetesに乗り換えたということだろう。詳しくは以下のブログを参照されたい。
Aniszczyk氏は、このChick-fil-Aというチェーンが日本ではほとんど知られていないことを把握していたためか、少し説明に窮するようだったが、膨大なサーバー群を保有する3大パブリッククラウドベンダーと、1000ドルのサーバーを全米2000箇所に展開するレストランチェーン店の対比という部分が、いかにもマイクロサービス的であろう。
実際にCNCFのワーキンググループでは、IoT+Edgeというテーマで議論が進められており、エッジにおけるプラットフォームとアプリケーション実行環境はどうするべきか? というトピックは、プライベートクラウドのプラットフォームであるOpenStackでも盛んに議論されているものだ。
参考:KubernetesコミュニティのWGのサイト:IoT Edge Working Group
Kubernetesをエッジで実行するニーズに対しては、すでにKubeEdgeというプロジェクトが動いているようだ。KubeCon ChinaではHuaweiのエンジニアがプレゼンテーションを行っていたことから推測すると、Huaweiがリードしているプロジェクトのようだ。
そしてその流れでサーバーレスに話題が移った。CNCFではサーバーレスをコンテナの次のパラダイムとして重要視しているようで、すでにサーバーレスのランドスケープが公開されている。
CNCF Cloud Native Interactive Landscape
ここでは、地味ではあるがCloudEventsがCNCFのサンドボックスプロジェクトとして採用されていることに注目されたい。これはマイクロサービスを連携させる時に必要となるイベントの仕様を、パブリッククラウド、オープンソースソフトウェア双方の相互運用性を保証するための基盤となるもので、現在、多くのベンダーが参加して活発に議論されているものだ。
そして、特にサーバーレスにKubernetesを発展させるキーとなるプロジェクトとしてVirtual Kubeletを紹介した。これはMicrosoftがリードして開発を行っていたオープンソースソフトウェアだが、CNCFのサンドボックスプロジェクトとして採用され、KubeCon Chinaでも注目されていたプロジェクトだ。
参考:Virtual Kubeletのリポジトリー:https://github.com/virtual-kubelet
Virtual Kubeletは、Kubernetesがサーバーレスをサポートするための方法論としては、今もっとも有力視されていると言っていいだろう。Kubernetes用のノードを用意しなくても、パブリッククラウドやエッジでの実装が可能になる。またPodを開発するデベロッパーにとってみれば、従来のAPIをそのまま活かしてサーバーレスに移行できるというメリットがある。
そして次のトピックは、ネットワークの進化に関するものだ。これはルーターやスイッチ、ファイアウォールが専用のハードウェアで実装されていた時代を1.0、仮想マシンでそれらの機能がOpenStackやVMware上で実装されていた時代を2.0、次にその機能を仮想マシンではなくKubernetes上のコンテナで実装されている今の時代を3.0と定義した上で、ここでも仮想マシンからコンテナに実装が移行していることが紹介された。
ここまで短い時間ながら過去の振り返り、CNCFのプロジェクトの拡大、仮想マシンからクラウドネイティブなコンテナオーケストレーション、サーバーレスへの動き、さらにネットワークのクラウドネイティブ化までを俯瞰したプレゼンテーションとなった。
CNCFとしては、互いに競合するプロジェクトもホストすることで、競争を抑止せずにソフトウェアの進化を促進していることを見せつつ、クラウドネイティブがサーバーレスと仮想マシンからの脱却に移行しているトレンドを示したと言える。OpenStack、VMwareがレガシーなシステムと扱われていることに、進化の速さを感じたセッションであった。