連載 [第7回] :
  KubeCon China 2019レポート

KubeCon China:サーバーレスとマルチテナンシーのセッションに注目

2019年9月13日(金)
松下 康之 - Yasuyuki Matsushita
KubeCon Chinaの多数のブレークアウトセッションからServerless、CloudEventsとマルチテナンシーのセッションに参加したレポートをお届けする。

KubeCon Chinaではキーノートの他にユーザーによるセッションやスポンサーによるセッション、Kubernetes SIGのセッション、Working Group主催のセッションなど多くのセッションが開催され、参加者は興味に従って選択を行うことになる。しかしセッションの数が多いうえに、移動の時間などを考えると、すべてのセッションを聴講できるわけではない。そんな中で今回は、ServerlessとCloudEventsに関するセッションと、Kubernetesのマルチテナンシーに関するセッションを紹介したい。

ServerlessとCloudEvents

最初にServerlessとCloudEventsに関するセッションだが、「CNCF CloudEvents Project: A Step Towards Serverless Interop」と「CNCF Serverless WG: Where Do We Go From Here?」という2つのセッションが行われた。どちらも講師はCNCFのServerless Working GroupのCo-ChairであるDoug Davis氏だ。

IBMのDoug Davis氏

IBMのDoug Davis氏

CNCFのWorking Groupは、クラウドネイティブなシステムにおける技術的要点について集中的に議論を行う場であり、CNCFがホストするプロジェクトには到達しないが、CNCFにとって重要と思われる項目がいくつも挙げられている。そのため、今後ホストされるプロジェクトを予想するためにも重要なグループとなる。日本ではコンテナ化の次に来ると思われるServerlessの話題が先行しており、OpenWhiskやGoogleとIBMがリードするKnativeなどのプロジェクトが知られている。

一方CloudEventsは、Serverlessとして実行されるファンクションのトリガーとなるイベントを共通化するための仕組みであり、スペックを定義してそれをそれぞれのプラットフォームやソフトウェアに実装するという意味でCloudEventsはサンドボックスであり、非常に地味なプロジェクトと言える。

Serverless WGの概要

Serverless WGの概要

このスライドではCNCFのServerless WGの概要が書かれているが、2017年にCNCFの中でWorking Groupが発足し、まずは技術的な解説を行うためのホワイトペーパーが作成され、同時にCNCFのクラウドネイティブなソフトウェアを概観するためのランドスケイプのための情報整理が行われたことが解説された。ランドスケイプとは、CNCFがホストするプロジェクト以外に商用製品やサービスなども含めて、そのジャンルの動向を一望に見渡すためのダッシュボードだ。

例えば、Serverlessならこのようにフィルターされて表示される。

CNCF Cloud Native Interactive Landscape(Serverless)

CNCF Cloud Native Interactive Landscape(Serverless)

参考:CNCF Cloud Native Interactive Landscape(Serverless)

オープンソースソフトウェアだけではなく商用のソフトウェア、サービスなども一堂に表示されるため、ベンダーの動向やコミュニティの活発さ、ライセンスの種類なども知ることができる。例えば、Knativeの隣にあるfnは、OracleがリードするServerlessのプロジェクトだ。

WGとしては、Serverlessという技術が調査の段階から何らかのアクションを取る段階に来たとしており、その具体的な動きの一つがCloudEventsであるという。

そして具体的なCloudEventsやServerlessの解説に移る前にDavis氏は、どうしてCloudEventsが必要になったのかという背景を解説した。

どうしてCloudEventsが必要になったのか?

どうしてCloudEventsが必要になったのか?

ここで重要なのは、オンプレミスとパブリッククラウドというだけではなく、複数のパブリッククラウドを同時に利用する「ハイブリッドマルチクラウド」というユースケースを想定していることだろう。KubernetesではPodの実行という意味では、パブリッククラウドもオンプレミスもほぼ互換性が保たれており(外部とのネットワークと永続的ボリュームの扱いなど一部に例外あり)、同じコードが実行できると言える。一方Serverlessは、まだまだCNCFとしてもホストされたプロジェクトはなく、Knativeやfn、OpenWhisk、Fissionなどがしのぎを削っていると言う状態だ。

その際、それぞれのパブリッククラウドが独自の実装を行ってロックインされるのは避けたいが、かと言ってパブリッククラウドプロバイダーが独自の進化を行うのを抑制するべきでもない。であれば、最低でもサーバーレスのファンクションが起動されるイベントの部分だけでも標準化しようという思いを形にしたものが、CloudEventsであるように思える。

また「データのペイロードを見なくてもイベントをルーティングできること」がユースケースとして書かれていることも興味深い。これは送信されるデータがイベントに関わるものであるということだけを知るべきで、その中身は受け取る側だけが知っていれば良いということを意味している。ここでもCloudEventsが、最小限のシンプルな実装を目指していることが理解できる。

JSONで表記されたサンプルコード

JSONで表記されたサンプルコード

上掲のサンプルにおいて太字で示された部分が、CloudEventsの要素となる。実際にはDataContentTypeというアトリビュートも追加されており、ここでJSONであることが設定されている。sourceという部分で「どこから発信されたイベントなのか?」は分かるが、宛先がないというのがポイントだ。なぜならイベント情報は一つのエンドポイント、つまりファンクションで処理されるだけではなく、複数のファンクションにルーティングされることを想定しているからだ。

CloudEventsは2019年6月にv0.3というバージョンがリリースされたが、これは実質0.9であるという。そのため、次のバージョンがメジャーバージョンの1.0になるということが解説された。

現在の成果

現在の成果

また、現状で認識されている問題点として、複数のファンクションで構成される機能について、それが「どのようにフローとして定義されるか?」と言う部分については合意が取れているが、それが「どのように実装されるべきか?」については、これからの検討と協議が必要であると語った。

現在の問題点

現在の問題点

そこからワークフローについて簡単に解説を行った。これは単純にファンクションを起動するだけのワークロードではなく、いかに複数のファンクションが実行されるべきか? と言う問題で、イベントがトリガーとなりステート(状態)を変化させ、その変化に応じて必要なファンクションが起動されるという一般的なフローを実装する問題となる。

CloudEventsとワークフロー

CloudEventsとワークフロー

このチャートで書かれているように、人間の目からは簡単に見えるモノでも、実装していくためにはさまざまな課題があるわけで、クラウドネイティブなプラットフォームに合った実装をこれから進めていくことになる。また今後の予定についても紹介が行われた。

Serverless WGの今後の予定

Serverless WGの今後の予定

APIやワークフロー、ファンクションのモデル、ベンチマーク、ロギングやトレーシングなどの観測機能、ファンクションに対する署名など、信頼性やセキュリティといった多くの観点でこれから開発が行われようとしていることを感じさせるスライドとなった。

もう一点興味深いことは、Serverless WGのメンバーがServerlessとCloudEventsの両方の検討を行っているということだろう。これはServerlessとCloudEventsが分かち難いことを示している。

今回のセッションは、後半を参加者への質問に使うという興味深い形式で行われた。Davis氏はいくつかの質問を用意して臨んだようだ。「Serverlessを使っている人は?」「本番環境での利用は?」などの質問に端を発して、約20名の参加者との会話を行っていた。通常であれば、セッションのスピーカーからは一方通行で情報がアウトプットされるだけだが、WGのチェアーとして中国のデベロッパーの意見を聴きたかったということなのだろう。

特に興味深かったのは、参加者からの「今、Serverlessを使っているがそれは真のServerlessではないのでは? なぜなら自社のServerlessはファンクションがゼロにできないから」と言う質問に対して、Davis氏が「私はピュアリストではない。ファンクションがゼロにならないからといってそれがServerlessではないと言う必要はないのでは?」と応答した部分だ。そしてそれに関連するかのように「皆さんに質問がある。PaaS、Container as a Service、Serverlessなど多くのジャンルがあるが、そのような定義は必要だと思いますか? 私自身の目指すところは、書いたコードがどんな形であれ実行されることであり、それがPaaSなのかServerlessなのか、悩む必要はないのでは?」という質問を投げかけた。これは、往々にしてジャンルを作りたがるIT業界をやんわりと揶揄した形になった。

なお、Serverlessのセッションの動画とスライドは以下から参照できる。

セッションの動画:CNCF Serverless WG: Where Do We Go From Here? - Doug Davis, IBM

使用されたスライド(PDF):CNCF Serverless WG Where do we go from here?

Kubernetesのマルチテナンシー

次に紹介したいのは、Kubernetesのマルチテナンシーのセッションだ。これはHuaweiのエンジニアKevin Wang氏とAnt FinancialのエンジニアToni He氏による「Multitenancy working group」の解説セッションである。ちなみにセッションはすべて中国語で行われた。

プレゼンテーションを行うHuaweiのWang氏

プレゼンテーションを行うHuaweiのWang氏

Kubernetesのマルチテナンシーは、バルセロナのKubeConでも盛んに議論されていたトピックだ。バルセロナではAlibaba CloudのアイデアとしてKubernetes on Kubernetesとも言えるモデルが提案されていたが、HuaweiとAnt FinancialのエンジニアによるこのWGセッションでも、それは大々的に紹介された。ここでもKubernetes on Kubernetesという、KubernetesのクラスターをKubernetesで管理するという、よりアイソレーションの度合いの高いモデルが優先的に紹介されていた。

マルチテナンシーの4つのモデル

マルチテナンシーの4つのモデル

つまり中国のエンタープライズユーザーとしては、この3番目のモデルを標準として実装していきたいという意図が感じられるセッションとなった。

Huaweiの提案するマルチテナンシーモデル

Huaweiの提案するマルチテナンシーモデル

Alibaba CloudもHuaweiも中国国内では絶大な影響力を持つビッグユーザーであり、どちらもCNCFには多大な貢献を行っていることは明らかだ。マルチテナンシーについてもこの強力な中国ユーザーからのプッシュがどのくらい効いてくるのか、注目していきたいと改めて思わされたセッションとなった。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

クラウドイベント
第8回

KubeCon Chinaでは展示ブースも中国ベンダーが猛プッシュ

2019/9/17
KubeCon Chinaの展示ブースではHuawei、Tencent、Alibabaといったトップ3のIT企業が存在感を示していた。
クラウドイベント
第7回

KubeCon China:サーバーレスとマルチテナンシーのセッションに注目

2019/9/13
KubeCon Chinaの多数のブレークアウトセッションからServerless、CloudEventsとマルチテナンシーのセッションに参加したレポートをお届けする。
クラウドイベント
第6回

KubeCon China:中国ベンダーが大量に登壇した3日目のキーノート

2019/9/10
KubeCon Chinaの3日目のキーノートは、有力な中国ベンダーが勢揃いで最大の露出を行ったセッションとなった。

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

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

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

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