ブログ

サーバーレスはサーバーではなくアプリに関するもの

ロリ・マクヴィッティ サムネイル
ロリ・マクヴィッティ
2017 年 6 月 12 日公開

「サーバーレス コンピューティング」の概念については多くの混乱があります。 それは、名前がかなり誤っているからかもしれません。 それはサーバーやコンピューティングに関するものではありません。 少なくとも、ほとんどの IT プロフェッショナルが使用する伝統的な意味ではそうではありません。

サーバーレスは、それが提供されるものであるため、Functions as a Service (FaaS) と呼ぶ方が適切です。 FaaS がサーバーレスであるのと同じ意味で、SaaS もサーバーレスであり、そして PaaS もサーバーレスであると正しく結論付けることができます。 これは、サーバー (コンピューティング) が、通常は開発者である消費者の観点からは考慮されないためです。 コンピューティング (サーバー、ネットワーク) リソースは内部に隠されており、サービスのプロバイダーによって最終的に管理される自動化とオーケストレーションの Web を通じて自動的にプロビジョニング、管理、およびスケーリングされます。 お金は払っても、見る必要はありません。

サーバーレスFaaS は、一般的に SaaS、PaaS、またはクラウドの代替にはなりません。 これは既存のモデルの上に重ねられたもう 1 つのオプションであり、開発者にオンデマンドで関数を呼び出すという魅力的な機能を提供します。 これはイベント駆動型であり、関数はイベントによってトリガーされます。 そのイベントは多くの場合、API 呼び出しの呼び出しであり、非常に特殊な URI を使用した HTTP リクエストの形式をとります。そう、API 呼び出しです。

FaaS の最もよく挙げられるユースケースは、画像またはビデオの処理です。 これは、必要なリソースの頻度と容量が予測できないことが多いためです。 FaaS は、通話ごとに上記のメディアを処理するための手頃で効率的な手段を提供します。 もう 1 つの例は、コントローラー アプリまたはモノ自体から発生するイベントによってアクションがトリガーされる IoT スペースに関連している可能性があります。 また、 API バックエンドの使用例も常に存在します。API は関数を呼び出す URI として説明されることが多いため、他の使用例よりもほとんどの人にとってわかりやすい使用例です。  関数が何を実行しているかに関係なく、関数は特定のイベントによってトリガーされた場合にのみ実行され、単一の独立した関数であることが期待されます。

アプリの分解

これは、私たちが見たり議論したりすることに慣れているクラウドではありません。 これは、クラウド (IaaS) はインフラストラクチャと運用に関するものであるのに対し、FaaS (および PaaS と SaaS) はapplicationsに関するものであるためです。 これらは開発環境として意図されており、開発者は、より大きなapplicationイニシアチブの一部としていくつかのタスクを実行するコードを実装できます。 複数の FaaS 実装からアプリを構築できますか? 絶対に。 実際、この点では、FaaS と SaaS の関係は、マイクロサービスとモノリスの関係と同じです。

しかし、それがまさにポイントなのです。 FaaS はサーバーではなくapplicationsに関するものです。 FaaS ではクラウドを実装することはできませんが、applicationを開発することはできます。 アプリを「サーバーレス」環境にリフトアンドシフトすることはできません。 これを解体し、再構築、いや、FaaS のコレクションとして再設計する必要があります。

組み合わせ(あるいは順列?)は多岐にわたります。 IaaS にデプロイされたアプリから PaaS とともに FaaS を組み込むこともできます。 IaaS と PaaS はオンプレミスである可能性がありますが、FaaS はパブリックです。

SaaS、PaaS、FaaS の場合、'サーバー' が目に入らないのが問題です。 これは IaaS には当てはまりません。IaaS では、サーバーを「インスタンス」と呼び、それを管理および保守する必要があります。 これは、オンプレミスかパブリックかに関係なく、IaaS はapplicationsではなくインフラストラクチャと運用の提供に関するものであるためです。 これは常に真実でしたが、過去 10 年間、「サーバー ==application」が長い間標準であったため、これを無視することができました。

しかし、マイクロサービスや API、そして FaaS の台頭により、「サーバー ==application」というモードで運用することはできなくなりました。これはもはや真実ではないからです。

結局のところ、FaaS はサーバーに関するものではなく、実際にはクラウド (私たちが理解している意味での) に関するものでもありません。 しかし、これはapplicationsの設計および構築方法に大きな変化をもたらします。