暗黙的コンテキストが生み出す、技術用語の異なる解釈
発端
サーバーレスアーキテクチャ、なんかサーバーを自前で持たないでマネージドサービスで〜みたいな解説が多いんだけど、それ全然本質的じゃないんじゃないかね
— Naoya Ito (@naoya_ito) 2016年9月14日
最初の感想
これを聞いた時、ちょっと意外だったのです。
…あ、いや、意外というのは、『そういう解説や誤解があるんだー』という意外さです。*1
コンテキストの変化
マネージドサービスって言ったらAWS誕生時点でサーバーレスアーキテクチャじゃん、と後続のツイートを見ずに思ったりしたのですが、サーバーレスアーキテクチャの解説をgoogle先生に聞いてみたところ、こんな記事を見つけまして。
当初、サーバーレスという言葉は、バックエンドアプリケーションを動かすためのサーバーのセットアップと管理を、開発者が気にする必要がないことを意味していた。
ところが、Amazonがサーバーレスのパラダイムを別のレベルに引き上げた。彼らは2014年にAWS Lambdaを発表し、クラウドで動かすアプリケーションに新しいシステムアーキテクチャを取り入れたのだ。そこには、サーバー上で動作して、HTTPリクエストやAPI呼び出しを待つ永続的なプロセスはない。代わりに、AWSのサーバーのひとつで、コードの断片、通常は単なる関数の実行をトリガーするためのイベントメカニズムがある。
AWSがLambdaを世に送り出すまでは、サーバーレスという言葉はマネージドサービスインフラストラクチャのことを指していた、という説明でして。
これを見て、『サーバーレス』という言葉が、発せられる時代などのコンテキストによって多義性を生むことに気づいたわけです。
コンテキストによって変わる解釈
『サーバーレス』という言葉、
- プロセスレス、イベント駆動、使い捨てのコンテナ
- マネージドサービスインフラストラクチャ
という2通りの解釈が、コンテキストによって、それぞれ異なる正当性を帯びているわけですが、私がもう一つ思いついたのはPeer to Peer。
あれも『クライアントサーバモデルとの対比』というコンテキストを加えると、『サーバーレス』って言えちゃうんですよね。
そもそも、『Server』も『less』も、古くから使われる一般的な単語なわけで。そこに一意性を求めるのは結構難しいですよね。
まとめ?
あ、いや、いつもどおりそんな大したものは用意していません。
強いて言えば、
『一般的な単語で一意的な何かを表現するときには、きちんとコンテキストを相手と合意しないと雲をつかむ』
ってところですかね。
おまけ(という名の免責事項)
こういう俺はこう思うけど世間ではこう、みたいなのにギャップがあることを紙媒体に定義を書こうとするとなかなか悩ましい。紙媒体に「個人的にはこうおもうんすよねー、あとからちがってたらごめんね」とか書きづらい
— Naoya Ito (@naoya_ito) 2016年9月14日
個人的にはこうおもうんすよねー、あとからちがってたらごめんね。*2