サーバレスの特徴
キム氏は、サーバレスの機能や特徴について次のように説明する。
「サーバレス」はサーバインフラの抽象化の一つであるという。抽象化にはプロビジョニング、スケーリング、パッチ適用なども含まれ、サーバOS、ミドルウェア、ネットワーク部分をまとめただけではない。この点はPaaSとの相違点となる。サーバレスでは代わりに「FaaS(Function as a Service)」という言葉を使う。ここでのFunctionは小さい独立したプログラム。サーバが持つ演算機能の単位ということになる。サービス部分にプロビジョニングやスケーリングといった機能維持のしくみが含まれる(ユーザーはこの部分を気にする必要はない)。またインフラだけでなく、使いたい機能も抽象化されているので、開発が容易だ。
オラクルでは、Fn Functionを「Oracle Functions」というサービスで提供している。重要な点は、Oracle Functionsはオープンソースプロジェクト「Fn Project」をベースにしていることである。そのため、プラットフォーム、クラウド、オンプレミスなど環境を選ばない(ベンダーロックインなし)。もちろんオラクルらしく、エンタープライズユースを考えてセキュリティ、管理が適用されている。Fn Project自体にもオラクルは深くコミットしている。
さらにキム氏によれば、サーバレスが支持されるのは、課金がファンクションが呼び出されて実行される時間単位であることも大きいという。Oracle Functionsの場合、100ミリ秒単位での課金となっている。
Fn Functionの使い方とユースケース
Fn Functionの実体はコンテナなので、利用する場合には何らかのレジストリにコンテナをプッシュする必要がある。呼び出しは「指定のファイルが読み込まれた」といったイベントをトリガーとする。
実行時課金ということを考慮すると、Fn Functionのユースケースは、イベントベースの処理や、負荷に季節変動がある処理、バッチ系の定期・定時処理、予測不能なピークや突発的イベントの対応、短時間の処理など、「一時的に(時には大量に)発生する処理」になるだろう。
例えば、画像データをデバイスごとの解像度に加工する処理や、ログデータなどのストリーム処理(ユーザーコメントなどの傾向分析)などだ。バッチ系では、月次の請求処理やポイント計算処理が例示された。モバイルアプリのバックエンドでは、REST APIをトリガーとして、認証処理、DBサービスのエージェントなどにも使える。IoTでは、センサーネットワークの監視、ダッシュボード機能の処理が可能だ。