サーバレスとは何か――OSS「Fn Project」ベースのオープンなサーバレス「Oracle Functions」でできること

7月27日、Oracle Innovation Summit Tokyo 2018において、オラクルが提供するサーバレス技術に関するセッション「Fn Project: 今最も注目すべき「サーバレス」クラウドアプリケーション開発基盤」が設けられた。スピーカーは同社のクラウドプラットフォーム製品管理 ディレクター フィリップ・キム氏。オラクルがいうサーバレスとは何か。特徴、コンテナやマイクロサービスとの違い、共通点、そして実際の使い方の解説。サンプルのサーバレスコードの開発デモも行われ、サーバレスのチュートリアルセッションと呼べる内容だった。
UNIXの設計思想とサーバレス

「Software Tools」という言葉を聞いたことはあるだろうか。
米ベル研究所のケン・トンプソン氏とデニス・リッチー氏は、1960年代末のMultics(メインフレーム用のタイムシェアリングOS)の反省から「複雑なシステムよりシンプルなシステム」「集中管理より自律分散」「統括より協調」といった設計思想を具現化するため、1970年代初頭にUNIXを世に送り出した。
このようなポリシーで作られたUNIXは、OSのコマンドやソフトウェア開発にも独特の文化やスタイルを持っている。Software Toolsという考え方もその一つで、ある課題解決のために専用のプログラム(コード)を開発するのではなく、プリミティブなツールをたくさん用意し、それらの組み合わせで複雑な処理を実現するというアプローチのことを指す。
UNIX(Linuxでもそうだが)のコマンドラインは、標準入出力のリダイレクトやパイプライン処理によって、複数のコマンドを組み合わせて使うことができる。あるファイルをgrepし、結果をsortしてuniqすると、DBMSを使わずとも必要な項目の一覧表が作れる。組み合わせるコマンドは、自分で作ったスクリプトだったりプログラムでもよい。
そのため、プログラムを開発するときは、入出力を固定せずファイルでもキーボードからでも同じように扱える設計にする。特殊なフォーマットやデータ形式に依存するより、テキストデータや標準的なデータ形式を前提とする。必要な処理をすべて盛り込まず、なるべく単機能で実装する。UNIX文化ではこんなソフトウェアを良しとした。
前置きが長くなったが、「サーバレス」はSoftware Toolsの思想に通じるものがある。ただし、サーバレスでは単機能のコマンドではなく、単機能の関数(ファンクション)として実装する。
コンテナ、マイクロサービス、サーバレスの違い
コンテナ、マイクロサービス、サーバレスの違いは、コンテナがサーバインフラの仮想化とするなら、マイクロサービスはコンテナを構成するモジュールやパッケージと考えることができる。サーバレスはそれよりさらに小さい単位で、イメージするなら各モジュールが利用する関数群、メソッドに相当するものといえる。

[画像クリックで拡大表示]
オラクルのいうサーバレスという概念では、コンテナの中身は「Fn Function」という関数ということになる。サーバレスにおいて1コンテナは1つのメソッドレベルの単機能の関数として機能する(後述)。
コンテナサーバは、仮想サーバーをさらに抽象化して可搬性を高めることができる。クラウド環境(特にハイブリッド)では、特定サービスやシステムをコンテナ単位で扱うことができるからだ。便利には違いないのだが、コンテナがアプリやサービスの単位だと、機能のモディファイや拡張が面倒にもなる。クラウド上のもう少し細かい機能単位を自由に使えれば、システムの開発が楽になるのではと作られたのがマイクロサービスだとすると、サーバレスはさらに小さい関数やメソッドの単位をコンテナ化して、拡張性や柔軟性を広げるアプローチだといえる。
ただし、機能の粒度が細かくなると(1コンテナ1機能)、それでブロックプログラミングをするだけでなく、シェルコマンドのようにインタラクティブに使う発想も可能だ。事実、サーバレスのファンクションであるFn Funcitonは、コマンドラインインターフェイス(CLI)を持ち、標準入出力も利用できる。ここがまさに、先に述べたUNIXのSoftware Toolsと類似する点だ。
この記事は参考になりましたか?
- Oracle Innovation Summit Tokyo 2018レポート連載記事一覧
- この記事の著者
-
中尾 真二(ナカオ シンジ)
フリーランスのライター、エディター。
アスキーの書籍編集から始り、翻訳や執筆、取材などを紙、ウェブを問わずこなす。IT系が多いが、たまに自動車関連の媒体で執筆することもある。インターネット(とは言わなかったが)はUUCPのころから使っている。※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア