10月11日から15日まで、CNCFによる Kubernetes の世界的な祭典が今年も開催されました。 今回は、ロサンゼルスコンベンションセンターとバーチャルとの両方で開催されたハイブリッドなイベントでした。
この記事では、開発者向けの当イベント内容から、アプリケーションと開発の側面に重点を置いて、オープンソースやクラウドネイティブコミュニティのリーダーたちによるいくつかの興味深いセッションの概要と共に、筆者が個人的に気になった4 つのトピックを取り上げます。
- Back to the Drawing Board: Building Containers with SBoMs
- Microservices Made Easy!
- Shifting Spotify Engineering from Spreadsheets to Backstage
- Improving Dev Experience: How RazorPay Built a Cloud-Native Dev Stack at Scale
- 結びに
それでは、順に見ていきましょう。
Back to the Drawing Board: Building Containers with SBoMs
セッションタイトル訳: 最初に戻ってやり直そう: SBoM を用いたコンテナ構築
VMware の Senior Open-source Engineer, Nisha Kumar氏によるこのセッションでは、コンテナイメージのビルド後の SBoM を生成するための誰にでもできるような方法についてスポットライトを当てていました。
SBoM とは、「コンテナ」を含むソフトウェアの構成要素のリストのことを指します。(訳註:SBoM = Software Bill of Materials:ソフトウェアの部品表。BoMは、製造業における部品表のこと) Claire、 Trivy 等といったコンテナイメージに対する一般的な静的スキャンニングツールでは、多段ビルドプロセスを経たコンテナに関しては十分な効率が得られません。これは、Docker-slim等を使用した多段ビルドのプロセスにおいて、コンテナサイズの削減と共に攻撃対象領域(attack surface)を縮小し、そのメタデータをすべて削除してしまうためです。
SBoM はコンテナイメージのメタデータから生成されるため、コンテナイメージのビルドの際、OCI仕様に準拠したツールを使用することがポイントです。
スピーカーである Nisha氏は、SBoMの生成とアーティファクトの管理に使用するいくつかのツールを紹介しました。
Buildah: OCI準拠のコンテナイメージビルダー
Tern: SBoMを生成するためのコンテナインベントリ作成ツール
Sigstore: 全てのOCIアーティファクトに署名するツール
当該セッションの DEMO はこちら。 github.com
詳細は以下の資料を参照してください。
Microservices Made Easy!
セッションタイトル訳: マイクロサービスを簡単に!
Microsoftの Donovan Brown と Jessica Deen は、開発者のインターループ作業を簡素化して生産性を高めるための、マイクロサービスに関する素晴らしいセッションを行いました。このセッションでは、"Dapr" と "Bridge to Kubernetes" に注目します。
Dapr は、ポータブルでイベント駆動型の分散型アプリケーションランタイムであり、これを利用することで、あらゆるクラウドやエッジ環境をターゲットとして、いろいろな言語を用いてステートレスおよびステートフルな、回復性のあるアプリケーションを簡単に構築することができます。いわゆる Sidecarパターンを採用しており、プライマリのサービスと並行して、追加のプロセスやコンテナとして実行することができます。
これにより、アプリケーションをローカル開発環境からクラウドに簡単に移動したり、さまざまなコンポーネントを切り替えたりすることができます。K8sリソース仕様と同様に、YAMLベースの構成ファイルを使用して、このような便利で迅速な変更をサポートします。
Dapr のビルディングブロックは次のとおりです:
- Service-to-service 統合
- ステートの管理
- Publish / Subscribe モデル (Pub-Sub)
- バインディング
- アクター
- 可観測性
- シークレット
Bridge to Kubernetes は、Envoyを使用して Kubernetes の境界を開発コンピューターにまで拡張し、任意のKubernetesクラスターに接続しながら、マイクロサービスのコードや、その他のアプリケーションまたはサービスの記述、テスト、デバッグを実施できるようにします。
詳細はこちらです:
Shifting Spotify Engineering from Spreadsheets to Backstage
セッションタイトル訳: Spotifyのエンジニアリングをスプレッドシートから "Backstage"に移行
このセッションでは、SpotifyのJohan HaalsとPatrik Oldsbergが、当初社内向けに長い時間をかけて構築してきた開発者ポータルを紹介しました。 これは、後にオープンソース化し、CNCFに寄贈され、今では誰でも使えるようになっています。その名を "Backstage " といいます。
なぜ "Backstage "だけ? それは、彼らが主に音楽業界で製品を提供しているからです;)
Backstageは、サービスのみならず、機械学習モデルやドキュメンテーション、そしてデータパイプラインなどをサポートする、社内向けの開発者ポータルです。 Spotifyのエンジニアリングチームが、ひとつの画面からさまざまな要素を確認・操作することができます。サービスカタログと呼ばれるひとつの場所にすべてのマイクロサービスを集め、追加や編集などを行うことができます。
Spotifyは、2010年ごろの「石器時代」のような運用管理から、現在の黄金時代に至るまでの変革の道のりをシェアしてくれました。その興味深く有益なやり方を是非見てみましょう。
参考リンク:
Improving Dev Experience: How RazorPay Built a Cloud-Native Dev Stack at Scale
セッションタイトル訳: 開発エクスペリエンスの向上:RazorPayは如何にしてクラウドネイティブな大規模 Dev スタックを構築したか
RazorPay の Srinidhi S と Venkatesan Vaidyanathan のセッションでは、現在までに数十億件のトランザクションをシームレスに処理している最大級の決済・銀行会社を運営するための、スケールするオープンソースツールを使用したクラウドネイティブ開発への道のりが紹介されました。クラウドネイティブ開発をどのようにローカルデスクトップに拡張したのか、そして、それが Kubernetes による CI/CD ワークフロー全体とどのように統合されているかを説明しました。
いくつかのオープンソースツールを彼らがどのように利用しているのかを紹介しました。
helmfile: マイクロサービス群の記述と設定
traefik: ルーティングと短命サービスへのアクセス
helm hooks と localstack: アプリの補助的な要件に対応
hot reloading and devspace: 統合開発とデバッグ
vcluster, autoscaler, janitor, botkube: クラスターの分離および管理
telepresence: 反復的開発の際に CI/CD ループをバイパスし、ローカルコードを内部のクラウド環境に直接公開
Razorpayは、devstackをオープンソース化しています。以下をご覧ください。 reference implementation of devstack github.com
結びに
今回のイベントは、特にオープンソースやクラウドネイティブテクノロジーに積極的に取り組んでいる人たちにとって、全体にわたって非常に関わりが深く、有益なものだと感じました。オープンソースコミュニティのリーダーや貢献者とのネットワーキングにも最適なイベントだと思います。
CNCFとオープンソースコミュニティに乾杯!!
執筆: Atul Anand, フェロー