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 でサポートされる任意のインフラストラクチャで場所を選ばず実行できるオープンソース優先のテクノロジーを重視することで、実行に最適な場所にワークロードを自由に移動することを可能にしました。これにより、お客様独自の要件に合わせてシステムを調整するために必要な柔軟性と制御が得られます。

お客様の条件に合わせてサーバーレス ワークロードを実行

Knative は、サーバーレス ワークロードをお好みの環境で実行可能にするオープン API およびランタイム環境を提供します。Google Cloud 上のフルマネージド環境、Google Kubernetes Engine、独自の Kubernetes クラスタすべてに対応しています。Knative を使用すると、Cloud Run で始めたあとで GKE 上の Cloud Run に移動したり、自分の 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 にインストール ガイドがあります。