KubeCon China:サーバーレスとマルチテナンシーのセッションに注目
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氏だ。
CNCFのWorking Groupは、クラウドネイティブなシステムにおける技術的要点について集中的に議論を行う場であり、CNCFがホストするプロジェクトには到達しないが、CNCFにとって重要と思われる項目がいくつも挙げられている。そのため、今後ホストされるプロジェクトを予想するためにも重要なグループとなる。日本ではコンテナ化の次に来ると思われるServerlessの話題が先行しており、OpenWhiskやGoogleとIBMがリードするKnativeなどのプロジェクトが知られている。
一方CloudEventsは、Serverlessとして実行されるファンクションのトリガーとなるイベントを共通化するための仕組みであり、スペックを定義してそれをそれぞれのプラットフォームやソフトウェアに実装するという意味でCloudEventsはサンドボックスであり、非常に地味なプロジェクトと言える。
このスライドではCNCFのServerless WGの概要が書かれているが、2017年にCNCFの中でWorking Groupが発足し、まずは技術的な解説を行うためのホワイトペーパーが作成され、同時にCNCFのクラウドネイティブなソフトウェアを概観するためのランドスケイプのための情報整理が行われたことが解説された。ランドスケイプとは、CNCFがホストするプロジェクト以外に商用製品やサービスなども含めて、そのジャンルの動向を一望に見渡すためのダッシュボードだ。
例えば、Serverlessならこのようにフィルターされて表示される。
参考:CNCF Cloud Native Interactive Landscape(Serverless)
オープンソースソフトウェアだけではなく商用のソフトウェア、サービスなども一堂に表示されるため、ベンダーの動向やコミュニティの活発さ、ライセンスの種類なども知ることができる。例えば、Knativeの隣にあるfnは、OracleがリードするServerlessのプロジェクトだ。
WGとしては、Serverlessという技術が調査の段階から何らかのアクションを取る段階に来たとしており、その具体的な動きの一つがCloudEventsであるという。
そして具体的なCloudEventsやServerlessの解説に移る前にDavis氏は、どうしてCloudEventsが必要になったのかという背景を解説した。
ここで重要なのは、オンプレミスとパブリッククラウドというだけではなく、複数のパブリッククラウドを同時に利用する「ハイブリッドマルチクラウド」というユースケースを想定していることだろう。KubernetesではPodの実行という意味では、パブリッククラウドもオンプレミスもほぼ互換性が保たれており(外部とのネットワークと永続的ボリュームの扱いなど一部に例外あり)、同じコードが実行できると言える。一方Serverlessは、まだまだCNCFとしてもホストされたプロジェクトはなく、Knativeやfn、OpenWhisk、Fissionなどがしのぎを削っていると言う状態だ。
その際、それぞれのパブリッククラウドが独自の実装を行ってロックインされるのは避けたいが、かと言ってパブリッククラウドプロバイダーが独自の進化を行うのを抑制するべきでもない。であれば、最低でもサーバーレスのファンクションが起動されるイベントの部分だけでも標準化しようという思いを形にしたものが、CloudEventsであるように思える。
また「データのペイロードを見なくてもイベントをルーティングできること」がユースケースとして書かれていることも興味深い。これは送信されるデータがイベントに関わるものであるということだけを知るべきで、その中身は受け取る側だけが知っていれば良いということを意味している。ここでもCloudEventsが、最小限のシンプルな実装を目指していることが理解できる。
上掲のサンプルにおいて太字で示された部分が、CloudEventsの要素となる。実際にはDataContentTypeというアトリビュートも追加されており、ここでJSONであることが設定されている。sourceという部分で「どこから発信されたイベントなのか?」は分かるが、宛先がないというのがポイントだ。なぜならイベント情報は一つのエンドポイント、つまりファンクションで処理されるだけではなく、複数のファンクションにルーティングされることを想定しているからだ。
CloudEventsは2019年6月にv0.3というバージョンがリリースされたが、これは実質0.9であるという。そのため、次のバージョンがメジャーバージョンの1.0になるということが解説された。
また、現状で認識されている問題点として、複数のファンクションで構成される機能について、それが「どのようにフローとして定義されるか?」と言う部分については合意が取れているが、それが「どのように実装されるべきか?」については、これからの検討と協議が必要であると語った。
そこからワークフローについて簡単に解説を行った。これは単純にファンクションを起動するだけのワークロードではなく、いかに複数のファンクションが実行されるべきか? と言う問題で、イベントがトリガーとなりステート(状態)を変化させ、その変化に応じて必要なファンクションが起動されるという一般的なフローを実装する問題となる。
このチャートで書かれているように、人間の目からは簡単に見えるモノでも、実装していくためにはさまざまな課題があるわけで、クラウドネイティブなプラットフォームに合った実装をこれから進めていくことになる。また今後の予定についても紹介が行われた。
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」の解説セッションである。ちなみにセッションはすべて中国語で行われた。
Kubernetesのマルチテナンシーは、バルセロナのKubeConでも盛んに議論されていたトピックだ。バルセロナではAlibaba CloudのアイデアとしてKubernetes on Kubernetesとも言えるモデルが提案されていたが、HuaweiとAnt FinancialのエンジニアによるこのWGセッションでも、それは大々的に紹介された。ここでもKubernetes on Kubernetesという、KubernetesのクラスターをKubernetesで管理するという、よりアイソレーションの度合いの高いモデルが優先的に紹介されていた。
つまり中国のエンタープライズユーザーとしては、この3番目のモデルを標準として実装していきたいという意図が感じられるセッションとなった。
Alibaba CloudもHuaweiも中国国内では絶大な影響力を持つビッグユーザーであり、どちらもCNCFには多大な貢献を行っていることは明らかだ。マルチテナンシーについてもこの強力な中国ユーザーからのプッシュがどのくらい効いてくるのか、注目していきたいと改めて思わされたセッションとなった。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- CloudNative Days Tokyo 2019開催。Airbnb、IBM、Canonicalなどが登壇
- KubeCon China:中国ベンダーが大量に登壇した3日目のキーノート
- KubeCon North America:座談会で見えてきた退屈なKubernetesの次の世界
- CloudNative Days Tokyo 2019:あえてK8sを選ばなかったSoftBankペイメント
- KubeCon@San Diego前日に開催のOpenShiftのコミュニティイベント
- KuberCon/CloudNativeCon NA 2021開催、3日間のキーノートを紹介
- KubeConで失敗を紹介したMonzo Bankのキーノート
- CNDO 2021、CI/CDのTektonのロードマップをNTTComのエンジニアが振り返る
- Microsoftがリードするモダンな分散システム用ランタイムDaprとは?
- KubeCon North Americaサンディエゴで開催。12,000人と過去最大の規模に