Knative

最新のサーバーレス ワークロードをビルド、デプロイ、管理できる Kubernetes ベースのプラットフォーム。

すべてのデベロッパーに不可欠な基本要素

Knative は、元々 Google が 50 社を超える企業の協力を得て作成したもので、Kubernetes 上でサーバーレス アプリケーションをビルドし、実行するのに不可欠なコンポーネント セットを提供します。Knative には、ゼロへのスケーリング、自動スケーリング、クラスタ内ビルド、Kubernetes 上のクラウド ネイティブ アプリケーション用のイベント フレームワークなどの機能があります。 Knative はそこがオンプレミスでも、クラウドでも、あるいはサードパーティのデータセンターでも、実際に成功している Kubernetes ベースのフレームワークに共通するベスト プラクティスを実体化します。デベロッパーにとって最も重要なのは、Knative を使えば、アプリケーションのビルド、デプロイ、管理の「退屈だが難しい」作業に気を取られることなく、コーディングに集中できることです。

デベロッパーにやさしいソフトウェア

Knative は、多数の煩雑なタスク(ソースコードからコンテナ イメージに至るアプリケーションのビルド、デプロイ中に生じるトラフィックのルーティングと管理、ワークロードの自動スケーリング、イベントソースの拡大するエコシステムに対する実行中のサービスのバインドといったワークフローなど)の解決に重点を置いた、再利用可能なコンポーネント セットを提供します。 Knative はコンテナ イメージをデプロイの単位として認識します。したがって、デベロッパーは慣れ親しんだ言語やフレームワーク、イディオムを使用できます。

サポートされている開発パターンのネットワーク

Knative はデベロッパーにとってなじみのあるエクスペリエンスの提供に重点を置いています。GitOps、DockerOps、ManualOps などの一般的な開発パターンに加えて、Django、Ruby on Rails、Spring など多数のツールやフレームワークをサポートしています。

柔軟性と制御の両立

Knative は既存のビルドや CI / CD のツールチェーンに接続しやすくなるように設計されています。任意のクラウド、Kubernetes でサポートされる任意のインフラストラクチャで場所を選ばず実行できるオープンソース優先のテクノロジーを重視することで、実行に最適な場所にワークロードを自由に移動することを可能にしました。これにより、独自の要件に合わせてシステムを調整するために必要な柔軟性と制御が得られます。

Kubernetes Engine

ご自身の条件に合わせてサーバーレス ワークロードを実行

Knative は、サーバーレス ワークロードをお好みの環境で実行可能にするオープン API およびランタイム環境を提供します。Google Cloud のフルマネージド環境、Google Kubernetes Engine(GKE)の Anthos、独自の Kubernetes クラスタすべてに対応しています。Knative を使用すると、Cloud Run で始めた後で Cloud Run for Anthos に移動したり、自分の Kubernetes クラスタで始めた後で Cloud Run に移行したりすることも簡単です。Knative を基盤となるプラットフォームとして使用することで、スイッチング コストを大幅に削減しながら、ワークロードをプラットフォーム間で自由に移動できます。

Knative のコンポーネント

Build

  • ソースコードをコンテナ内にビルドするため構成可能で柔軟なアプローチ

  • Dockerfile やビルドされたテンプレートを活用したプラグイン可能なアプローチ

  • クロスコンパイルもローカルでのビルドツールも不要

  • アーティファクトをキャッシュしてビルドの高速化をサポート

  • 余剰能力を活用してリソースを有効利用

Serving

  • オブジェクト モデルについての推論が容易な高レベルの抽象化

  • HTTP リクエストに基づくシームレスな自動スケーリング

  • 新規リビジョンの段階的な公開

  • ネットワーキングとサービス メッシュを自動的に統合

  • プラグイン可能: ご自身のロギングとモニタリング プラットフォームに接続

Eventing

  • イベントのユニバーサルなサブスクリプション、配信、管理

  • 高レベルのオブジェクトを持つ疎結合のイベント ドリブン システムを構築

  • イベント プロデューサとイベント コンシューマであるサービス間の宣言型バインディング

  • 少数のイベントからライブ ストリームまでスケール可能

  • 独自の既存システムと接続するためのカスタム イベント パイプライン

Knative のおかげで、デベロッパーはビジネス ロジックの構築に集中でき、ビルドやデプロイ、自動スケーリング、モニタリング、オブザーバビリティといった低レベルのプラットフォーム機能の作成に煩わされずに済んでいます。たとえば、Java / Vert.x で開発した T-Mobile 店舗検索アプリは、Knative を使用することにより簡単に GCP に移行できました。この移行をごく短期間に実現できたのは、Knative にプラットフォーム レベルの機能が数多く揃っており、デベロッパーによる構築が不要だったからです。

- T-Mobile 社プリンシパル テクノロジー アーキテクト Ram Gopinathan 氏

リソース

コミュニティ リソース

Google Cloud

使ってみる

Knative を使用してサーバーレス ワークロードを構築、デプロイ、管理する

Cloud Run クイックスタートの手順に沿って Knative を起動します。Knative 環境を提供したいと考えているオペレーター向けには GitHub にインストール ガイドがあります。