JTP Technology Port

    技術や情報、そして人々が集まる"港"

KubeCon + CloudNativeCon NA 2021: "Application and Development" の視点から

10月11日から15日まで、CNCFによる Kubernetes の世界的な祭典が今年も開催されました。今回は、ロサンゼルスコンベンションセンターとバーチャルとの両方で開催されたハイブリッドなイベントでした。

この記事では、開発者向けの当イベント内容から、アプリケーションと開発の側面に重点を置いて、オープンソースやクラウドネイティブコミュニティのリーダーたちによるいくつかの興味深いセッションの概要と共に、筆者が個人的に気になった4 つのトピックを取り上げます。

 

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を生成するためのコンテナインベントリ作成ツール

  • Oras CLI: OCIアーティファクトである SBoM のローカルレジストリとの push/pullツール

  • Sigstore: 全てのOCIアーティファクトに署名するツール

当該セッションの DEMO はこちら。

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年ごろの「石器時代」のような運用管理から、現在の黄金時代に至るまでの変革の道のりをシェアしてくれました。その興味深く有益なやり方を是非見てみましょう。

Spotify's Journey to the Backstage - Timeline

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をオープンソース化しています。以下をご覧ください。

結びに

今回のイベントは、特にオープンソースやクラウドネイティブテクノロジーに積極的に取り組んでいる人たちにとって、全体にわたって非常に関わりが深く、有益なものだと感じました。オープンソースコミュニティのリーダーや貢献者とのネットワーキングにも最適なイベントだと思います。

CNCFとオープンソースコミュニティに乾杯!!

 
執筆: Atul Anand, フェロー
 

本記事の内容は、公開時点での内容のものです。
実際に導入を検討する際は、各製品・サービスの情報は、公式サイトのドキュメント等をご参照ください。

JTP Technology Port 新着記事