KnativeとBackstage ¶
公開日:2024-04-03、改訂日:2024-09-23
KnativeとBackstage¶
著者:Ali Ok、Red Hat主席ソフトウェアエンジニア
ビジョンとは?¶
Backstageは、開発者ポータルを構築するためのプラットフォームです。開発者が日々の業務で使用しているさまざまなリソースを管理および視覚化するための統一された方法を提供します。
Backstageは次世代Kubernetesダッシュボードとして設計されていませんが、Knativeリソースを視覚化し、部分的に管理できます。これらのリソースは読み取り専用であり、開発者に関連する情報に焦点を当てています。
プラグインとバックエンド¶
プラグインはBackstageプラグインのフロントエンド部分です。UIのレンダリングとバックエンドとの通信を担当します。バックエンドは、Kubernetes APIサーバーと通信し、フロントエンドに必要な情報を提供する役割を担います。現在、プラグインは1つしかなく、動作にはバックエンドが必要です。将来提供する可能性のあるほとんどのプラグインは、動作にバックエンド(フロントエンド用)を必要とすると考えています。
イベントメッシュプラグイン¶
イベントメッシュプラグインは、Knative Eventingリソースを表示および管理できるBackstageプラグインです。このプラグインは、Kubernetesクラスタ内で実行され、Kubernetes APIサーバーと通信する特別なバックエンドと通信します。
このプラグインは、Backstageのエンティティプロバイダーとエンティティプロセッサの概念を活用しています。エンティティプロバイダーは、バックエンドからリソースを取得する役割を担い、エンティティプロセッサはリソースを処理してフロントエンドで使用できるようにする役割を担います。プロバイダーはカスタムバックエンドと通信する部分です。
プラグインは、バックエンドからKnative EventType、ブローカー、およびトリガーリソースを取得します。生のKubernetesリソースを直接取得する代わりに、よりユーザーフレンドリーなデータ表現を収集します。つまり、特定のフィールドは除外され、明確にするために一部は結合され、その他はインターフェース内で理解しやすくするために変換されます。
BackstageにAPIとして表示されるKnative EventTypes
Knativeトリガーは、アドレス可能なもの、またはURLを直接指すことができます。Backstage側はこれらをどのように処理するか分からないため、プラグインはBackstageに既に登録されている場合にのみ、トリガーのサブスクライバーを表示します。この関係には、BackstageエンティティとKubernetesリソースでbackstage.io/kubernetes-id
アノテーションを使用します。
マッチングの仕組みは、イベントメッシュプラグインREADMEファイルの図で説明されています。
この統合の素晴らしい点は、Backstageのグラフ表示機能です。たとえば、EventType、ブローカー、およびトリガーサブスクライバー間の関係をグラフで確認できます。
Backstageのグラフ
デモとクイックスタート¶
プラグインの動作を確認したい場合は、インストールして、Kubernetesクラスタにバックエンドを、Backstageインスタンスにプラグインをインストールできます。
ただし、プラグインをより迅速に確認するには、デモビデオをご覧ください。デモビデオは、Ali Okのデモリポジトリにあるクイックスタートで録画されています。
コントリビューション歓迎¶
プラグインとバックエンドの改善に協力していただけるコントリビューターを探しています。コントリビューションにご興味のある方は、プラグインリポジトリのREADMEファイルをご覧ください。バックエンドの開始方法、プラグインのインストール方法、プラグインの変更方法はすべてそこに記載されています。
「good first issue」としてマークされているいくつかの問題があり、それらについてのお手伝いを求めています。コントリビューションにご興味のある方は、good first issueをご覧ください。
今後の予定¶
BackstageとKnativeの統合機能を追加する可能性を探っています。ここでは、Knative関数テンプレートをBackstageテンプレートとして再利用することが考えられます。これにより、開発者はBackstageから新しいKnative関数を生成し、そこから管理できるようになり、Func CLIとの互換性を維持できます。
お問い合わせ¶
ご質問やご意見がございましたら、お気軽にお問い合わせください。CNCF Slackの#knativeチャンネルでお会いしましょう。