Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

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

edited by DB Online   2018/08/31 06:00

コーディング作業とデプロイプロセス

 Fn Functionはどのように書くのか。実体はコンテナだが、中身は単機能のコード。入出力はコンテナとして実行環境のリソースが使えるほか、STDIN、STDOUT(標準入出力)が使える。ログはSTDERRに出力される仕様だ。

Fn Functionとは
Fn Functionとは
[画像クリックで拡大表示]

 コードはJava、Go、Pythonなどで書くことができる。開発キット(FDK)が用意され、デプロイはコマンドラインインターフェイス(CLI)を持っている。開発者は慣れたシェル画面のまま、インタラクティブにコード開発を行い、テスト、デプロイが行える。デプロイでは、REST APIも作られるのでWebからの利用も簡単だ。

ファンクション開発キット(FDK)
ファンクション開発キット(FDK)
[画像クリックで拡大表示]

 開発者は必要なコードさえ書けば、コンテナのビルド、レジストリへのプッシュ、必要なメタデータの作成などオラクル側用意するFn Serverがやってくれる。

レジストリプッシュからデプロイまで
レジストリプッシュからデプロイまで
[画像クリックで拡大表示]

 なお、サーバレスとはいうが、内部ではFn Serverが呼び出しの制御を行っている。GUIも持っているので、デプロイ作業やFunctionの管理、分析をWebベースで行うこともできる。

Fn Serverの構造
Fn Serverの構造
[画像クリックで拡大表示]

 では、Fn Function上で動作するプログラムを書く様子を見てみよう。ここでは入力メッセージによって表示を切り替える「Hello World」 プログラムをテスト、デプロイするまでの一連の作業を見ていく。

 まず、Go言語で書かれた「Hello」プログラムをfn initコマンドでコンテナ化する。すると、ファンクション本体のgoファイルとyamlファイル、そしてテスト用のJSONファイルが生成された。

プロジェクトディレクトリにサンプルプログラムのgoファイル、yamlファイル、テスト用のJSONファイルが存在することを確認
プロジェクトディレクトリにサンプルプログラムのgoファイル、yamlファイル、テスト用のJSONファイルが存在することを確認
[画像クリックで拡大表示]
func.go(ソースコード)とyamlファイルの中身
func.go(ソースコード)とyamlファイルの中身
[画像クリックで拡大表示]
json(テスト)ファイルの中身を確認
json(テスト)ファイルの中身を確認
[画像クリックで拡大表示]

 続いてfn deployコマンドで、ファンクションをデプロイする。この時、ファンクションはDockerイメージとしてデプロイされる。それを今度はfn callコマンドで、コマンドラインから呼び出してみる。デモでは、JSON形式のデータ{"message":"Hello World"}が正しく返ってきた。

 次にfn routeコマンドでREST API用のURLを生成し、curlコマンドで呼び出す。実行結果は、先と同じようにシェル画面にJSON形式で{"message":"Hello World"}と表示されるだけだが、確かにプログラム(Fn Function)がその場で実行された

 テストは、fn testコマンドによって行う。先ほどのJSONファイルが起動され、パラメータ処理のパターンが自動テストされた結果が表示された。

fn call、fn routes、curlコマンドによる実行結果と、fn testによる自動テストの結果
fn call、fn routes、curlコマンドによる実行結果と、fn testによる自動テストの結果
[画像クリックで拡大表示]

 Fn Projectは2017年10月のローンチ以来、注目を集めてきた。今後Fn Projectはサーバレスの導入を加速し、完全なサーバレスのプログラミングモデルを生み出しながら、真のマルチクラウドコンピューティング環境で活用されていくだろう。そして、FnのようなフレームワークによりDevOpsも実現され、開発者はより効率的にビジネス価値を提供していけるようになる。ぜひ、Fn ProjectのQuickStartをチェックして、数分間で自身のfunctionを起動し、実際にデプロイしてみてほしい。

ダウンロードできます - Oracle Cloud Platform各種資料

Oracle Cloud Platformホワイトペーパー

Oracle Cloud Platform ダウンロード資料集」サイトでは、IaaS、PaaSの50を超えるサービス群を統合したOracle Cloud Platformに関する製品カタログ、事例集、調査レポート、ホワイトペーパー、各種ドキュメントなどを配布しています。ぜひお気軽にご覧ください。



著者プロフィール

  • 中尾 真二(ナカオ シンジ)

    フリーランスのライター、エディター。 アスキーの書籍編集から始り、翻訳や執筆、取材などを紙、ウェブを問わずこなす。IT系が多いが、たまに自動車関連の媒体で執筆することもある。インターネット(とは言わなかったが)はUUCPのころから使っている。

  • DB Online編集部(ディービーオンライン ヘンシュウブ)

    DB Online編集部 翔泳社 EnterpriseZine(EZ)が提供するデータベース/データテクノロジー専門メディア「DB Online」編集部です。皆様からの情報お待ちしています。 Twitter : https://twitter.com/db_online Fac...

バックナンバー

連載:Oracle Innovation Summit Tokyo 2018レポート
All contents copyright © 2007-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5