「Kubernetes」ユーザーがイベント駆動型プログラミングによるサーバレスアーキテクチャを実現したい場合、有力な手段となるのが「Knative」だ。クラウドサービスの「FaaS」とは何が違うのか。
サーバの存在を意識せずにアプリケーションを開発・運用できる「サーバレスアーキテクチャ」を具現化する代表的な手段が、特定のイベントをトリガーにしてプログラムを自動実行する「イベント駆動型プログラミング」だ。イベント駆動型プログラミングを導入したいと考える企業の中には、クラウドサービスの「FaaS」(Function as a Service)の利用を検討する人もいるだろう。だがFaaSが必ずしもニーズに合うとは限らない。そうした場合、イベント駆動型プログラミングを実現する別の手段として「Knative」が選択肢になる。前後編にわたり、Knativeの具体的な用途、メリット、課題について、特にFaaSを使った場合と比較して紹介する。
Knativeは、コンテナの運用管理を自動化するコンテナオーケストレーター「Kubernetes」で、イベント駆動型プログラミングを実現しやすくするソフトウェアだ。クラウドサービスであれオンプレミスのインフラであれ、Kubernetesを実行できるインフラであればKnativeも導入できる。
アーキテクチャ的には、Knativeはイベントを集約・伝達する層として、コンテナオーケストレーターと、コンテナ間の通信を制御する「サービスメッシュ」の間に置かれる。具体的には、コンテナオーケストレーターとしてKubernetesを、サービスメッシュとして「Istio」を利用する。Kubernetesはコンテナのデプロイ(配備)を実行し、Istioはコンポーネントや機能同士を相互に接続する役割を持つ。
Knativeはイベントを認識すると、そのイベントに関連付けられたプロセスを実行する。Knativeはプロセスが実行されている時のみCPUやメモリといったリソースを割り当てる。そのためKnativeを利用すれば「起きる可能性はあっても、現時点では起きていないイベント」のためにリソースを割り当てる必要がなくなる。
イベント駆動型プログラミングでは、イベントのトリガーに応じて処理を実行する。イベント発生時に実行するプログラム(関数)の実行単位である「関数インスタンス」の数は、利用しているサーバの容量と、管理者が定義した関数インスタンスの上限に基づいて制限がかかる。FaaSは、理想的にはリソースに関する制限を持たないが、実際はコストに関する制約がある。トリガーを用意するイベントの数が増えると、コストも増加する恐れがある。
Kubernetesがクラウドサービスとオンプレミスのインフラのどちらで稼働していても、Knativeを利用できる。例えばGoogleのハイブリッドクラウド構築サービス「Anthos」を通じて、複数のKubernetesクラスタ(Kubernetesによるアプリケーション実行のためのマシン群)を一括管理できるようにKubernetesクラスタ同士を連携(フェデレーション)させている場合、それらのKubernetesクラスタを横断的に活用したイベント駆動型プログラミングを実現できる。これは利用可能なリソースとコストが決まっていて、コンテナに配備するアプリケーションの利用リソースが予想できる場合に適している。
米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.
なぜクラウド全盛の今「メインフレーム」が再び脚光を浴びるのか
メインフレームを支える人材の高齢化が進み、企業の基幹IT運用に大きなリスクが迫っている。一方で、メインフレームは再評価の時を迎えている。

「サイト内検索」&「ライブチャット」売れ筋TOP5(2025年5月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。

「ECプラットフォーム」売れ筋TOP10(2025年5月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。

「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2025年5月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...