このページの本文へ

コンテナネイティブなOSSのFaaS基盤を開発中、Oracle CloudでのFaaS提供は来年

オラクルのサーバーレス、FaaS基盤「Fn」の現状を担当VPに聞く

2018年06月06日 07時00分更新

文● 大塚昭彦/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 昨年10月に米国で開催された「JavaOne 2017」および「Oracle Open World(OOW) 2017」において、オラクルはオープンソースのFaaS(Function-as-a-Service)基盤ソフトウェアである「Fn(エフエヌ)」を発表するとともに、このFn Projectを用いたFaaSをOracle Cloud上で提供する予定であることを明らかにした。

「JavaOne 2017」基調講演でFaaS基盤ソフトウェア「Fn」が発表された(YouTube公式チャンネルより)

 オラクルによると、Fnはオープンスタンダード技術をベースとした“コンテナネイティブ”なFaaS基盤であり、Javaを始めとするあらゆる開発言語に対応、ラップトップからオンプレミスデータセンター、パブリッククラウドまであらゆる環境で動作、ベンダーロックインの回避といった特徴を持つ。市場で先行するAmazon Web Services(AWS)のFaaS「AWS Lambda」で開発したファンクションを取り込み、実行することもできるという。

 今回は、米オラクルでFnの開発を主導するサーバーレス担当VPのチャド・アリムラ氏に、オラクルが現在取り組んでいる“コンテナネイティブな”アプリケーション環境、Fnを含むオラクルのコンテナ関連サービスの特徴や戦略などを聞いた。

「Java Day Tokyo 2018」に合わせ来日した米オラクル サーバーレス担当バイスプレジデントのチャド・アリムラ(Chad Arimura)氏

OOWで“コンテナネイティブな”アプリの開発基盤クラウドを発表

 アリムラ氏は2011年からおよそ7年間、Iron.io(アイアンアイオー)というテクノロジースタートアップの共同創設者兼CEOを務めていた。Iron.ioは、バッチ処理プロセスのコンテナ管理システム「IronWorker」、分散メッセージキューシステム「IronMQ」などのソフトウェアプロダクトを開発し、3000社以上の顧客を持つ。そして同社が開発していたオープンソースソフトウェア(OSS)の「IronFunctions」が、現在のFnの前身となっている。アリムラ氏らIron.ioの一部開発者も昨年5月、オラクルに移籍した。

 アリムラ氏は現在、Oracle Cloud Infrastructure Groupの配下にあるContainer-Native Group(CNG)に所属している。つまりOracle CloudのIaaS部門で「主に開発者(Developer)向けのサービス」(同氏)、DockerコンテナやKubernetes周辺のクラウドサービスを担当するチームである。

 「コンテナネイティブなインフラに対するニーズが増えてきている」とアリムラ氏は語る。開発者はサーバーなどのインフラ管理を一切気にすることなく、コード開発だけに専念できる環境を求めており、その現実解のひとつとしてコンテナ技術が登場したからだ。「VM(仮想マシン)で展開するのではなく、コンテナでの展開を第一に考えるのが、コンテナネイティブなアプリケーションだ」(アリムラ氏)。

 オラクルはOOW 2017において、次世代のアプリケーション開発プラットフォームとして「Oracle Container Native Application Development Platform」を発表した。これは、その名のとおりコンテナネイティブアプリケーションの包括的な開発基盤であり、具体的には、コンテナのライフサイクル管理+CI/CD(継続的インテグレーション/継続的デリバリ)ツールの「Oracle Container Pipelines」(昨年買収したWerckerを統合したもの)、コンテナイメージのプライベートレジストリ「Oracle Container Registry Service」、そしてKubernetesクラスタの管理ツール「Oracle Container Engine for Kubernetes」の3つを、マネージドサービスとして提供するものだ。

「Oracle Container Native Application Development Platform」の概要(画像はオラクルブログより)。コンテナベースのCI/CD、コンテナレジストリ、実行環境のオーケストレーションの各マネージドサービスをOracle Cloud上で提供する

 このうちContainer Engine for Kubernetesは、Oracle CloudコンソールからワンクリックでKubernetesクラスタを構築できるサービスだ。開発者が扱いやすいように、コマンドライン(CLI)やAPIからでもクラスタの構築/スケールアウト/管理といった操作ができる。マルチAD(Availability Domains)/Zoneをサポートし、クラスタプールの自己復旧機能も備える。

「Oracle Container Engine for Kubernetes」の特徴

 アリムラ氏は、CNGがこうしたサービス群の開発において重視しているのは、OSS採用や業界標準(Open Container Initiative)準拠による「オープン性」、Oracle Cloudスタックとの「統合性」、そして可用性/パフォーマンス/セキュリティのすべてにおける「エンタープライズグレード」の3点だと説明した。

コンテナネイティブなFaaS基盤「Fn」の特徴

 これに加えてOOW 2017では、前述したFnのオープンソース化(Apache License 2.0)やクラウドサービスとしての提供計画も発表された(オラクルはFaaSの正式名称を発表していないが、アリムラ氏は「Oracle Functions」と呼んでおり、本稿でもそう表記する)。これらもCNGが担当するプロダクトだ。

 Fnは、FaaS機能を提供するメインプラットフォームの「Fn Server」、開発者向けコマンドラインツールの「Fn CLI」、各言語に対応する「FDK(Function Development Kit)」と、大きく3つのコンポーネントで構成されている。Fn ProjectのGitHubを見ると、現在のところJava、Go、Python、Node.js、RubyのFDKが提供されているが、コンテナベースの技術であるため、ランタイムを格納してコンテナ化すればあらゆる言語でファンクションが開発できる。

OSSコミュニティで開発されているFaaS基盤「Fn」の特徴。Docker環境があればあらゆるクラウド、オンプレミスに配置できる

 Fn Serverは、開発したファンクション(=Dockerイメージ)をレジストリに配置し、トリガーを設定すれば、あとはトリガーに応じてファンクションのコードが実行される仕組みだ。その裏側では、ファンクションの実行状況に応じて自動的にインフラの分散やオーケストレーションが行われ「開発者から見れば完全にサーバーレスな環境」(アリムラ氏)が実現する。

コンテナ化したファンクションをレジストリにアップロードし、トリガーを設定すれば実行可能になる。Oracle Functionsでは、ファンクションの実行時間分だけ課金されることになる

 アリムラ氏はFn CLIを使って簡単なデモを見せてくれた。詳細は公式ドキュメントを参照してほしいが、「fn start」コマンドでFn Serverを起動、「fn init」で指定した言語に対応する設定ファイルなどを生成し、「fn run」でファンクションのビルド(ランタイムを含むDockerコンテナイメージの生成)とローカル環境でのテスト、「fn deploy」で本番環境への展開、「fn call」(あるいはcurlやWebブラウザでのアクセス)でファンクションの実行といった具合だ。パイプを使って標準入力からJSONデータなどを渡すこともできる。

Fn Serverのモニタリングやファンクション設定などをWebインタフェースで行える「UI for Fn」も開発中だ

 さらに現在開発中の「Fn Flow」では、マイクロサービスとして連続動作する複数のファンクション群を単一コードに組み込む形で書いたり、各ファンクションの実行ステータスをWeb GUIでリアルタイムにモニタしたりする機能が提供されるという。

「Fn Flow」では複数のファンクション群(赤い矢印)をひとつのコードにまとめて書ける(JavaOne 2017の公式ビデオより)
各ファンクションの実行状況をリアルタイムにモニタすることも可能(同上)

「すばらしいデベロッパーエクスペリエンス」の実現が目標

 アリムラ氏は、他のFaaS基盤ソフトウェアとの違いとして「オープン」「コンテナネイティブ」「他のシステムとの統合」「ベンダーフリー」といったFnの特徴を挙げた。特に、Dockerコンテナのエコシステムがそのまま生かせる点は強みだと語る。「たとえば継続的インテグレーション、脆弱性スキャンなど、コンテナをサポートするツールであればそのまま適用できる」(アリムラ氏)。またDocker環境があれば、開発者のローカルPCやオンプレミス、他社クラウドにも簡単に配置できるのも優位点だろう。

 加えてアリムラ氏は、Fnの開発においては「すばらしいデベロッパーエクスペリエンス」にも注力してきたと語った。開発者が望む「コード開発だけに専念できる」FaaS基盤を提供するのがFn Projectの目標だという。

「Fn Projectのロゴは素早くエレガントな海中の哺乳類であるイルカのひれだ。またDocker(輸送コンテナ、クジラ)やKubernetes(船の舵輪)から、航海のテーマにもちなんでいる」(アリムラ氏)

 Fn Projectでは、正式版(GA)リリースを今年中に行う計画だ。またオラクルがOracle Functionsを提供するのは「来年のいつかの時点で、というのが正解だろう」とアリムラ氏は語った。市場ではすでに、AWS Lambda、Microsoft Azure Functions、Google Cloud Functions、IBM Cloud Functions(OpenWhisk)といった競合のFaaSが展開を始めており、かなり後発のサービスとなる。とはいえ、ここではオラクルのアドバンテージを生かして開発者を取り込んで行く戦略のようだ。

 「デベロッパーエクスペリエンスを重視しており、どんな企業規模の開発者にも適している。ただ、やはりJava開発者やオラクルの既存顧客の開発者は大きな価値を見いだすのではないか」「エンタープライズのカスタマーベースを多く持つのがオラクルのアドバンテージであり、そうした顧客の声をしっかり聞いてFnやサービスに反映させていきたい」(アリムラ氏)

カテゴリートップへ

ASCII.jp特設サイト

クラウド連載/すっきりわかった仮想化技術

ピックアップ