「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.
お知らせ
米国TechTarget Inc.とInforma Techデジタル事業が業務提携したことが発表されました。TechTargetジャパンは従来どおり、アイティメディア(株)が運営を継続します。これからも日本企業のIT選定に役立つ情報を提供してまいります。
2025年のマーケターが「生成AIでテレビCMを作る」よりも優先すべきことは?
AIが生成した広告に対する反発が続いた1年を経て、マーケターはパフォーマンス重視で非難...
CMOはなぜ短命? なぜ軽視される? いま向き合うべき3つの厳しい現実
プロダクト分析ツールを提供するAmplitudeのCMOが、2025年のマーケティングリーダーに課...
トラフィック1300%増、生成AIがEコマースを変える
アドビは、2024年のホリデーシーズンのオンラインショッピングデータを公開した。