Knative とエンドユーザー
公開日: 2022-03-10
著者: Murugappan Chetty (Optum、Knative 運営委員会でエンドユーザーを代表)
Knative はエンドユーザーの貢献/インタラクションを高く評価するオープンソースコミュニティであり、これは PR、月例ミートアップ、Slack でのインタラクションなどで明らかです。さらに、最近 Knative は運営委員会にエンドユーザー席を設けました。これはいくつかの理由で非常に重要です。
- エンドユーザー組織が本番環境で Knative を使用することへの信頼を植え付けます
- 運営委員会にエンドユーザーの代表がいる OSS コミュニティはごくわずかです
運営委員会で最初のエンドユーザー代表として選出されたことを嬉しく思います。このブログでは、これまでの私の組織の Knative の経験を共有したいと思います。
Knative を選んだ理由¶
まず第一に、Knative は次なる注目の的として選ばれたわけではありません。プロセス全体が有機的でした。次の要因が、Kubernetes の抽象化の必要性につながりました。
- 成熟したコンテナエコシステム。
- サーバーレスワークロード
- バニラ Kubernetes よりも優れた開発者エクスペリエンスの必要性 (デプロイ + サービス + イングレス + ...)
状況は Kubernetes の上に新しいプラットフォームを構築するのに最適でした。その前に、既存のオープンソースソリューションを活用できるかどうかを確認したかったのです。さまざまな成熟レベルでいくつかのソリューションがありましたが、Knative は私たちにとって際立っていました。
- すべての競合製品と比較して最高のスケーリングパフォーマンス。
- 開発者エクスペリエンス (単一の Knative サービスリソースで Kubernetes デプロイ + サービス + イングレス + 証明書 + カスタムドメインが生成されます)。
- 開発者プラットフォームを構築するための堅牢なプリミティブ。
- 優れたガバナンスモデルを備えた OSS コミュニティ
- 複数のベンダーによってサポートされています
- オープンで自由なプロジェクトに対する優れたサポート
実装¶
さまざまなスキルレベルの開発者に対応するために、Knative の上に抽象化を構築しました。このレイヤーは、新規ユーザーのエントリーバリアを低く保ち、上級ユーザーはバイパスできます。また、エンタープライズアプリケーションと統合するためのコンポーネントも構築しました。以下の図は、当社のデプロイモデルと社内で構築した統合を示しています。
上記のデプロイモデルと統合により、社内ユーザーにクリーンなコードから URL へのエクスペリエンスを提供することができました。わずか数個のパラメーターで、開発者はサービスをデプロイし、数秒で TLS 対応の URL を受け取ることができました。
コミュニティとのインタラクション¶
最初の Knative サービスデプロイから 2 年が経過し、私たちのプラットフォームは急速に成長し、数百人の開発者にサービスを提供しています。これは、Knative コミュニティのサポートなしでは不可能でした。コミュニティと対話するためのさまざまな方法があります。
Slack¶
今日まで、Slack チャンネルの勢いは衰えておらず、ほとんどの懸念事項はほぼ即座に対処されています。Slack は Knative を始める場所です。
Hacky Hours¶
これまでの Knative の最高の経験を選ぶとしたら、毎週のハッキーアワーがトップになるでしょう。これらのカジュアル/バーチャルなミートアップは、金曜日の午後に開催されていました。毎週、Knative のメンテナー/コントリビューター/エンドユーザーによるデモで、いくつかの「なるほど」という瞬間がありました。これらの会議では、Knative の重要人物と 1 対 1 で連絡を取り、実装を検証することができました。
月例ミートアップ¶
ハッキーアワーは一時停止されたかもしれませんが、現在のところ、月例ミートアップは毎月開催されています。これは、プロジェクトの要点といくつかの優れたユースケースデモを知るのに最適な場所です。私はここで、私たちの Knative 実装を紹介する特権がありました。ミートアップ/カンファレンスで講演することほど、実装を検証するのに良い方法はありません。エンドユーザーにとっては、ここでソリューションをデモすることを強くお勧めします。
貢献¶
実装中に、いくつかの問題や欠落している機能があり、PR をオープンしてアップストリームに貢献する機会を得ました。メンテナーは私たちの問題を受け入れてくれ、そのほとんどがマージされました。マージされなかったものについては、妥当な理由とそれについて学ぶための良い議論がありました。私はほとんどのリポジトリに貢献しましたが、特に重要な貢献はクライアントリポジトリであり、最終的にはレビュー担当者に昇格しました。
アップストリームの貢献とは別に、カスタム Knative チャンネルの実装と、Knative イベントソースを構築し、GitHub 組織の下でオープンソース化しました。
私たちの Knative 実装により、カンファレンスで講演する機会を得ました。最も重要なのは Kubecon と IstioCon でした。現在、CNCF の Knative では、エンドユーザーが Kubecon でストーリーを共有するための扉がさらに開かれるはずです。
結びの言葉¶
最後に、Knative が私にとってどのようなものであったかを共有したいと思います。数年前、私はいつか Knative 運営委員会に所属することになるとは知らずに、Knative の実験を始めました。私はすべての OSS プロジェクトに貢献したわけではありませんが、さまざまなコミュニティに参加し、問題を提起したり、フィードバックを提供したり、Slack チャンネルに参加したりしてきました。その経験から、このコミュニティの一員であることは、あらゆる面でやりがいがあると言えます。Knative がこのコロナ禍における私の原動力の一つであったと言っても過言ではありません。