SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「Oracle Code One 2018」レポート

OSSのサーバーレスプラットフォーム「Fn Project」、Javaを倍速にする「JIT as a Service」~クラウドネイティブ最新事情【Oracle Code One 2018】

  • X ポスト
  • このエントリーをはてなブックマークに追加

クラウドネイティブなサーバーレスプラットフォーム「Fn Project」

 「Fn Project」は、昨年のJavaOne 2017で発表された、Oracleが開発するサーバーレスプラットフォームです。Day 2キーノートの後、その開発の指揮を執るChad Arimura氏(VP Software Development、Oracle)にお話をうかがう時間をいただきました。発表から1年が経ち、普及に向けた戦略をどのように考えているのか。この場では、その詳細をお聞きしたインタビューに加え、Fn Projectの簡便性が伝わるデモを実施いただいています。順にご覧ください。

Fn Projectとは

 前提としてFn Projectについて簡単に説明しておきます。Fn Projectとは、Oracle社が提供するサーバーレスプラットフォームです。多くのプロジェクトが並走していますが、以下4つのコンポーネントが主要な構成要素です。

  • Fn Server:開発者がファンクションをさまざまな環境上で簡単にビルド、デプロイ、スケールできるというコンセプトのFunction-as-a-Serviceシステム
  • Fn Load Balancer:Fn Serverの分散配置を可能にする。ホットなファンクションの稼働ノードにトラフィックを流して処理を高速化したり、特定のファンクションへのトラフィック増加時の負荷分散を行うなど
  • Fn FDK’s:Javaをはじめとしたさまざまな言語向けのファンクション開発キット(FDK、Function Development Kit)
  • Fn Flow:さまざまな言語で記述されたファンクションへハイレベルなフロー処理(並列処理、ファンクション同士の連結、エラー処理など)を構築する

Fn Projectがとる「アンチ・ベンダーロックイン」という戦略

Chad Arimura氏(VP Software Development、Oracle)は初日のJava キーノートにも動画出演している
Chad Arimura氏(VP Software Development、Oracle)は初日のJava キーノートにも動画出演している

 Fn Projectの特徴は、まず100%のOSSであるということ。そしてそれによってベンダーフリーであるということです。説明のためにこのプロジェクトの経緯からお話ししましょう。私は18か月ほど前に、当時率いていたIron.ioという会社がOracleと一緒になったことで、自分のチームとともに現職にジョインしました。その会社で開発していたIronFunctionsというプロジェクトをフォーク[1]したのがこのFn Projectです。会社が一緒になっても、これまで通り完全なOSSであるという点に変更はなく、Oracleとは完全に独立した体制をとっています。ですので、Fn ProjectはOracle Cloudに限らずどのクラウド上でも動きます。また同様にオンプレミスの環境でも使用できます。

[1] フォーク:元のソフトウェアのソースコードから分岐して、別の独立したソフトウェアを開発すること

 もうひとつの特徴は、コンテナネイティブ[2]であり、さらにそれが簡単に使えるという点です。Dockerコンテナの中に入れることができるものであれば、ファンクションになります。そしてファンクションを形成するためのコマンドはとてもシンプルになっていますので、初めてでも簡単に使い始めることができるでしょう。こちらはデモでお見せします。

[2] コンテナネイティブ:この文脈では「コンテナ環境の利用を前提とし、それに最適化されている」という意味合い

Fn Projectのコンセプト。下から2番目の記載にあるように、ゆくゆくはCNCFがホストするプロジェクトとする話が出ているという
Fn Projectのコンセプト。下から2番目の記載にあるように、ゆくゆくはCNCFがホストするプロジェクトとする話が出ているという

 これまでに述べた特徴。つまり、アンチ・ベンダーロックインであり、コンテナに入れてだれでも使えるということ。これが普及に向けた1つ目の戦略です。

 それに加えて2つ目の戦略としては、他のOracle製品やサービスと統合していくということです。来年度に、「Oracle Functions」というマネージドサービスの提供を予定しています。こちらはアプリケーション開発者にとってFn Projectと全く体験ができるものです。またそれに加え、Oracleの各種サービスからのイベントをトリガーに、別のファンクションを起動することがスムーズにできるようになります。

 例えば、Oracle HCM Cloud(人的資源マネジメントサービス)を使用しているという例をとりましょう。新しい従業員が来たら、HCMに登録されます。その登録をトリガーに、Fn Projectを介して別のOracleサービスへ処理をつなげることができます。そしてそのためにディベロッパーが行う作業はとても簡単でスムーズです。このように、色々なアプリがFn Projectによって交信できるようになります。このOracle Functionsは、2019年春の正式リリースを目指しています。

Oracle Functionsのコンセプト。SaaS、PaaS、IaaSをFn Projectがつなぐことで、Oracleのサービス間連携を強化し、新たな価値を生み出す
Oracle Functionsのコンセプト。SaaS、PaaS、IaaSをFn Projectがつなぐことで、Oracleのサービス間連携を強化し、新たな価値を生み出す

 言語サポート状況も昨年から進展しています。ファンクション開発キットにおいて、昨年の発表当初はJavaのみの対応でした。しかし現在はJava以外にも、Ruby、Python、Node.js、Goといった主要な言語をサポートしています。また、コンテナに入るものであれば、どんな言語で作られたものでもファンクションにできるのです(例えば、COBOLのようなレガシー言語でも)。もちろん、Javaはとても重要な言語であると認識していますので、最善の努力をしてサポートしています。例えば、GraalVMチームがとても努力し、非常にローレイテンシーなランタイムをJavaファンクション用に提供しています。

 使っていただく際は、fnproject.ioというサイトがスタートポイントとなります。今すぐにでもお試しできる準備がととのっていますので、ぜひ触ってみてください。

クラウドとローカルを等しく扱う――Fn Functionsデモ

 インタビュー後に実施いただいたのはシンプルなデモですが、Fn Functionの手軽さが率直に伝わる内容でした。写真を追って見ていきましょう。

実行対象のJavaソースコード。実行時引数がなければ「Hello, world!」を出力するシンプルなプログラム

実行対象のJavaソースコード。実行時引数がなければ「Hello, world!」を出力するシンプルなプログラム

デモ1:開始から呼び出しまではわずか5コマンド
デモ1:開始から呼び出しまではわずか5コマンド
  • ①「fn start」開始
  • ②「fn use context local」事前設定済のローカルというコンテキストを指定
  • ③「fn init --runtime java --trigger http hello」初期化(ランタイムはJava、トリガーはHTTP、ファンクション名はhello)
  • ④「fn deploy --app demo --local」ローカルにデプロイ。
  • ⑤「fn invoke demo hello」これでhelloファンクションを呼び出し。
デモ2:クラウド環境への切り替えもシンプル
デモ2:クラウド環境への切り替えもシンプル
  • ①「fn use context oci-phx」コンテキストをクラウドに変更
  • ②「fn deploy --app demo」クラウド環境へデプロイ
  • ③「fn invoke demo hello」ローカルの時と同じ呼び方でクラウド環境を実行

 上記までの通り非常にシンプルで、ローカルとクラウドを意識せず使用できる点が開発者にとって実に扱いやすい印象を受けます。さらに、実行できるクラウド環境も、実行する言語も選ばないということで、プロジェクト内外の変化に対応しやすいアプリケーションの構築につながりそうです。

Day2 Keynote及びFn Project総評

 Day2 Keynoteは、Javaではなく「クラウドネイティブ」をテーマに据え、まさに総合技術カンファレンスへ移った象徴と言える内容でした。ただし、特に前半はあくまでCNCFというコミュニティに関するプロモーションの域を出ず、イノベーティブな発表がなかった点は残念、というのが率直な感想です。Javaという言語を実装レベルで展開した初日のKeynote(第1回レポート参照)との粒度の差も大きく、戸惑った聴講者が多かったように感じます。初年度ということで手探りであったのかもしれませんが、おそらく各国の聴講者から同様のフィードバックがあることが予測されますので、次回はもう一歩技術的に踏み込んだプレゼンが盛り込まれることを期待しましょう。

 Fn Projectについては、ベンダーフリーかつロケーション(クラウド/オンプレミス)フリーというコンセプトが明確であり、使いやすさも重視されているため、ユーザーとして今後に期待が高まるOSSであると感じました。CNCFがホストするプロジェクトになれば進化は加速し、またどのように市場に受け入れられるかも明確化してくると思われます。正式リリース後の動向に注目していきましょう。

次のページ
Day3 Keynote:IBM Keynote & Java Community Keynote

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
「Oracle Code One 2018」レポート連載記事一覧

もっと読む

この記事の著者

西野 大介(SOMPOホールディングス株式会社)(ニシノ ダイスケ)

 SOMPOホールディングス株式会社デジタル戦略部(SOMPO Digital Lab)勤務。損保ジャパン日本興亜グループにおける先進技術の研究開発を担当。過去には基幹システムの開発にも従事し、SoR/SoE双方の開発において幅広い経験を持つ。本業以外では、CodeZineの連載をはじめ、国内/海外の各種カンファレンスへの登壇や企業向けの講演にてテクノロジー情報を幅広く提供している。主な登壇実績:IBM THINK(米ラスベガス)、Java Day Tokyo、IBM THINK Ja...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11359 2019/03/13 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング