第2章 OpenShift Serverless の概要
OpenShift Serverless は、Kubernetes ネイティブなビルディングブロックを提供します。開発者はそのビルディングブロックを使用して、OpenShift Container Platform 上でサーバーレスのイベント駆動型アプリケーションを作成およびデプロイできます。Serverless アプリケーションはオンデマンドでスケールアップおよびスケールダウン (ゼロまで) でき、数多くのイベントソースによりトリガーされます。OpenShift Serverless はオープンソースの Knative プロジェクト をベースとし、エンタープライズレベルのサーバーレスを有効にすることで、ハイブリッドおよびマルチクラウド環境に対して移植性と一貫性をもたらします。
OpenShift Serverless は OpenShift Container Platform とは異なる頻度でリリースされるため、OpenShift Serverless ドキュメントは製品のマイナーバージョンごとに個別のドキュメントセットとして利用できるようになりました。
OpenShift Serverless ドキュメントは https://docs.openshift.com/serverless/ で利用できます。
特定のバージョンのドキュメントは、バージョンセレクターのドロップダウンを使用するか、URL にバージョン (https://docs.openshift.com/serverless/1.28 など) を直接追加すると利用できます。
さらに、OpenShift Serverless ドキュメントは、Red Hat カスタマーポータル (https://access.redhat.com/documentation/ja-jp/red_hat_openshift_serverless/) でも利用できます。
OpenShift Serverless のライフサイクルとサポートされるプラットフォームに関する追加情報は、プラットフォームライフサイクルポリシー を参照してください。
2.1. OpenShift Serverless のコンポーネント
2.1.1. Knative Serving
Knative Serving は Kubernetes 上に構築され、アプリケーションと機能をサーバーレスコンテナーとしてデプロイおよび提供することをサポートします。Serving はアプリケーションのデプロイメントを簡素化し、受信トラフィックに基づいて動的にスケーリングし、トラフィック分割によるカスタムロールアウトストラテジーをサポートします。
Knative Serving には以下の機能が含まれます。
- サーバーレスコンテナーの簡素化されたデプロイメント
- scale-to-zero を含むトラフィックベースの自動スケーリング
- ルーティングおよびネットワークプログラミング
- 特定の時点のアプリケーションスナップショットとその設定
2.1.2. Knative Eventing
Knative Eventing には、遅延バインディングイベントソースとイベントコンシューマーを有効にするために設定可能なプリミティブを提供するプラットフォームが含まれます。
Knative Eventing は、次のアーキテクチャーのクラウドネイティブコンセプトをサポートしています。
- サービスは開発中に疎結合され、実稼働環境に独立してデプロイされます。
- プロデューサーは、コンシューマーがリッスンする前にイベントを生成できます。また、コンシューマーはまだ生成されていないイベントまたはイベントのクラスに対して、リソースを受信する意思を示すことができます。
- サービスを接続して、プロデューサーやコンシューマーを変更せずに新しいアプリケーションを作成でき、特定のプロデューサーから特定のイベントのサブセットを選択することもできます。
2.1.3. OpenShift Serverless Functions
OpenShift Serverless Functions を使用すると、Knative サービスとしてデプロイされ、Knative Serving と Eventing を活用できる関数を作成できます。
OpenShift Serverless Functions には、以下の機能が含まれています。
以下のビルドストラテジーをサポートします。
- Source-to-Image (S2I)
- buildpacks
- 複数のランタイム
-
Knative (
kn
) CLI によるローカル開発者エクスペリエンス - プロジェクトテンプレート
- CloudEvents およびプレーン HTTP リクエストを受信するサポート
2.1.4. OpenShift Serverless Logic
OpenShift Serverless Logic を使用すると、YAML または JSON ファイルを使用して宣言型ワークフローモデルを定義できます。宣言型ワークフローモデルは、イベント駆動型のサーバーレスアプリケーションを調整します。OpenShift Serverless Logic を使用すると、ワークフローの実行を視覚化できるため、デバッグと最適化が簡素化されます。また、エラー処理とフォールトトレランスも組み込まれているため、ワークフローの実行中に発生するエラーや例外の処理が容易になります。OpenShift Serverless Logic は CNCF Serverless Workflow specification を実装します。
2.1.5. Knative CLI
Knative (kn
) CLI を使用すると、コマンドラインまたはシェルスクリプト内から Knative リソースを作成できます。豊富なヘルプページと自動補完のサポートにより、Knative リソーススキーマの詳細な構造を記憶する必要がなくなります。
Knative (kn
) CLI には次の機能が含まれています。
次の Knative Serving 機能の管理をサポートします。
- サービス
- リビジョン
- ルート
次の Knative Eventing エンティティーの管理をサポートします。
- ソース
- ブローカー
- トリガー
- チャネル
- サブスクリプション
-
Kubernetes (
kubectl
) CLI ツールの設計に基づいたプラグインアーキテクチャー - Knative の Tekton パイプラインへの統合