APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

KubeCon NA 2022 Day1 - Application Networking Day

Hello World from Detroit!!

こんにちは。私は今アメリカミシガン州のデトロイトに来ております。 都市と日付を見て「お」と思う方もいらっしゃるかと思います(その前にタイトルに記載していましたが)

そう、私は今KubeCon / CloudNative Con 2022 Detroitに現地参加で来ております。

(メイン会場に朝ちょっと立ち寄っただけだったのであまりいい写真が撮れませんでした。すみません。)

今日のデトロイトは暑い。現地メディアや携帯の天気予報では最高気温は摂氏23度くらいと言ってましたが、 実際には直射日光にあたっているとそれ以上に感じました。

さて、今日(10月24日)はKubeConのDay1。今日はCo-Located Eventの1つである Application Networking Day with Istio, Cilium, and Envoy Hosted by Solo.io に終日参加しました。 場所はメイン会場から5分くらい歩いたところにある Waterview Loft。デトロイト川に面した施設です。今日の 天気がこの場所に関係してきます。窓が広くカーテンなど覆うものもないため、日差しがめいっぱい差し込み、スライドを写しているディスプレイも見にくくなるくらい。なのでスライドの写真等もまともに撮れませんでした。 とにかく暖かいというより暑いなかで初日のイベントスタートです。

Istio Ambient Mesh

今日のメインディッシュはIstio。その中でも9月に発表された Istio Ambient Service Meshです。

istio.io

最大の特徴はなんといっても、Sidecarless 。(without Sidecarとも表現していることもあったと思います) 多くのサービスメッシュはアプリケーションPodにInjectし、クライアントサイドプロキシーとして実現しているSidecar方式です。

Sidecar方式はよく機能を実現できます。しかし課題がありました。サービスメッシュで利用するPodすべてにSidecarを導入するため、CPU/Memoryリソースを相当量消費します。当然その分コストもかかるようになります。 「Istioはインフラコストの1/2を消費する」と言われることもあるそうです。 また、Sidecar方式の場合 init container実行時にInjectするため、Sidecar部分を更新する際には再起動が必要になるなどの課題もあります。

Ambient Meshはこの問題を解消します。Ambient MeshではSidecar方式をやめ、ztunnelと呼ばれるプロセスをNodeごとに立ち上げます。アプリケーションPodはこのztunnelを経由してPod間通信を行います。多くの場合L4レベルの処理で済むそうですが、もちろんL7プロキシーもあります。waypoint proxyと呼ばれるもので、独立したアプリケーションとして動作し、L7処理が必要な場合はztunnel - waypoint と経由して処理が行われます。

サンプルアプリケーションを利用した調査によると、Sidecar方式に比べてAmbient MeshはCPU/Memoryのリソース使用量が60%-70%削減されるとのことです。

さらに、eBPFを使ったAmbient Mesh構成というも実装が進んでいるそうです。

この他Ciliumを使ったセキュリティ強化なども紹介していました。

Istioといえば、昔 Microservice Designから Monolithic Designに変更したことがありました。今回はSidecar方式からの離脱。さらにeBPFの採用。かなり機能の追加・強化・改善に積極的ですね。

先頭を走っているプロジェクトがどんどん新しいことにチャレンジしてくると、「他のところはどうなんだろう?」と気になってしまいます。

Cloud-Native 2.0

さて、セッションとしては一番最初に登場したのですが、Solo.ioの現在の取り組みの紹介の中で気になった 単語がありました。それが「Cloud-Native 2.0」そして、「Layer 8」です。

まずはCloud-Native 2.0。

今積極的に行われているのは、ApplicationのModernize(Microservice Application)、Kubernetes・コンテナ技術の活用といったものではないでしょうか。 これは「Cloud-Native 1.0」の世界観です。KubeConに集まってくるSoloのような企業・技術者はすでにその先を目指している。それが「Cloud-Native 2.0」です。

内容としては

  • Service Mesh | Zero-Trust | Observability
  • Scale Microservices | Multi-Clusters
  • Serverless | GraphQL

といったものが挙げられていました。イメージとしてはKubernetesの複数のCluster上に構築されたService Meshをアプリケーションネットワークの基盤としていくようなイメージかなと様々な説明を聞きながら感じました。 (だらApplication Networking Dayというタイトルなのかなと、途中で勝手に納得していました)

さらに、面白いなと思ったのがいわゆるネットワークの7階層モデルに8番目を追加していたことです。 8番目はなにかというと、 Multiplex で技術要素としては GraphQL です。 Soloのプロダクト「Gloo Platform」でもGraphQLを追加するようです。

皆さん、今後はGraphQL要チェックじゃないですか。

Day1まとめ

今日はSolo/Istioの内容オンリーではありましたが、Cloud-Native 2.0Application Networkingというものが、さらに新しい世界観を作り出すのではないかとひとり妄想しながらホテルの帰途につきました。 明日以降機会があればSoloのブースを覗いて、プロダクトとしてのGlooやIsitoの情報を確認したいと思っています。

引き続きDay2以降もできる限りレポートしていきたいと思います。

2022年10月26日追記

CiliumがAKSでも使えるようになったそうです(Preview)。メンバーがそちらについて書いてくれたので、ぜひ御覧ください。

techblog.ap-com.co.jp