「サーバレス」に対する気持ち

「サーバレスアーキテクチャ」という言葉を目にするようになって、なんだかもやもやするなぁと思っていた。 最近だと、「サーバレス」という言葉の方がよく目にする気がする。

www.publickey1.jp

この記事を読んで、さらに違和感しかなくなった。

僕の気持ち

…サーバレスって、何がないんだっけ?

Twitter上での皆さんの気持ち

自分だけかなと思ってTwitterを検索してみると、同様に違和感を感じている方がいて安心(?)した。

サーバとは

サーバ - Wikipedia

サーバあるいはサーバー(英: server)は、コンピュータの分野では、本来はソフトウェアの用語であり、クライアントサーバモデルにおいてクライアントからの要求に対して何らかのサービスを提供する役割を果たす側のプログラムを指す言葉である。

serverの意味 - goo辞書 英和和英

〔コンピュータ〕 サーバー:ネットワーク上で他のコンピュータに情報やサービスを提供するコンピュータ

サーバとはサービスを提供(Serve)するからサーバ(Server)と呼ばれる。
その前提からすると、「サーバレス」はサービスの提供者が居ないような気がしてやはり変な感じがする。

サーバレスとはなんなのか

前述の意味を真に受けてしまうと何もしないに等しい状態になってしまうし、さすがにそんなことはない。

サーバがないというより、自前で管理しなくて良い、マネージドサービスのことを言っているんだと思う。

一番よく例に出されるのがAWS Lambda。ドキュメントに書いてある説明がわかりやすい。

AWS Lambda とは - AWS Lambda

AWS Lambda は、コードを AWS Lambda にアップロードすると、サービスが AWS インフラストラクチャを使用してコードの実行を代行するコンピューティングサービスです。

サーバを管理しなくてよくて、アプリをデプロイするだけで良いっていうのは要するにPaaSのことでは。

さくらインターネットの田中社長もこんなツイートをしていた。

ちなみに、「美味しい」は「多いし」のtypoだそうです。

「サーバレス」はマーケティング用語であって技術的にはその用語自体のことを気にする必要はなさそう。

なんと呼べばいいのか

PaaSに違いないということはわかった。

PaaSと言われるとHerokuが最初に思い浮かんだのだが、HerokuとAWS LambdaやGoogle Cloud Functionsは同じPaaSのくくりでも何か違う気がする。

SDKが必要/不要などもあるが、前者は入力としてウェブブラウザ等からのHTTPリクエストを受けるのを前提としていて、後者はもっと汎用的に「イベント」を受けるのを前提としている。ウェブアクセスだけでなく、「ストレージにオブジェクトが置かれた」などあらゆるイベントのトリガーを設定することができる。

これは、一番最初に挙げた記事中にも書かれているが、入力に対して出力を返す関数のようなもの、 Function as a Service と呼ぶ方がよさそう。

「サーバレス」はマーケティングのための用語で、「PaaS」に変わりないし、もっと詳しく分類するとすれば「FaaS」ということで自分の中では落ち着いた。

追記

同期の反応

f:id:kuro_m88:20160830195822p:plain