デベロッパーに通信APIを提供しているTwilioが今日(米国時間5/25)、Twilio Functionsというものを立ち上げて、世に言う“サーバーレス”プラットホームの仲間入りをした。FunctionsもAPIの一種だが、これを使うとデベロッパーは、サーバーの運用とかインフラストラクチャの管理、スケーラビリティなど低レベルの問題をすべて忘れて、自分のイベント駆動アプリケーションの構築に専念できる。
Twilioの今日の発表声明でプロダクト担当VP Patrick Malatackはこう言っている: “コードは書くことはクリエイティブな仕事だから、たとえばクラウドを利用する通信アプリケーションを作るデベロッパーや企業は、顧客がそれから得る体験に集中すべきであり、サーバーの管理に時間と精力を取られるべきではない。通信の未来を築くのはデベロッパーの創造力であり、Twilio Functionsはそれを支える。これを利用するデベロッパーの仕事ぶりを見るのが、今から待ち遠しい”。
というわけで、インフラのメンテナンスやスケーリングに煩わされることなくデベロッパーは、一連のファンクションを使って自分のコードをTwilioのプラットホーム上で動かせる。たとえばそれは、新たにSMSのメッセージが来るたびに何かをするアプリケーション、だったりするだろう。具体的には、デベロッパーはJavaScriptでコードを書く。するとTwilioはそのコードをNode.jsの標準的な環境で実行する。そのNode.js環境は、Twilioのインフラ上にある。
率直に言って、“サーバーレス”は、ぼくのあまり好きくないバズワードの筆頭だ(“ハイパーコンバージド”と肩を並べるかな)。たしかにそれは、サーバーなどのインフラを抽象化してデベロッパーの念頭から消し去ってしまうけれども、プログラミング上の重要な含意は、それよりむしろ、入ってくるイベントに対応してコードの実行がトリガされる、イベント駆動型のプログラミングである、という点にある。
このイベント駆動モデルのもうひとつの約束は、計算機資源の使用料を、実際に使ったぶんだけ払えばよい、ということにある。たとえばTwilio Functionの場合は、最初の10000リクエストは無料、その後は1リクエストごとに0.0001ドルだ。リクエストに(==イベントに)応じて、静的ファイルをサーブしてもよい。その場合も、最初の10000リクエストは無料、その後は1回につき0.0001ドルだ。
これらすべてを動かすのがTwilio Runtime、そこにはヘルパーライブラリやAPIのキー、構成済みの諸資産、デバッグツールなどがある。