93
66

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

各Cloud Functions で使える言語比較(2018年7月)

Last updated at Posted at 2018-07-19

FaaS (Function as a Service) と呼ばれるクラウドに用意された関数実行環境(=Cloud Functions)について、各クラウドベンダーで使用できる開発言語を比較してみました。

比較クラウドベンダー

比較表

言語\ベンダー AWS Lambda Azure Functions(2.x プレビュー) Google Cloud Functions IBM Cloud Functions
Node.js(JavaScript) :heavy_check_mark: v8.10 :heavy_check_mark: v8.9.4 :heavy_check_mark: v6.14.0 / v8.11.1(β) :heavy_check_mark: v8
Python :heavy_check_mark: 3.6 :heavy_check_mark: 3.7.0(β) :heavy_check_mark: 3.6.5
Java :heavy_check_mark: 8 :heavy_check_mark: :heavy_check_mark: 8
C#(.NET Core) :heavy_check_mark: 2.0 :heavy_check_mark:
Go :heavy_check_mark: 1.x :heavy_check_mark:
PHP :heavy_check_mark: v7.1.18
Swift :heavy_check_mark: 4.1
Docker :heavy_check_mark: :heavy_check_mark:

(バージョンが書かれていないのは公式Webサイトで情報を得られなかったもの)

Node.js(JavaScript) はすべてのベンダーでサポート済み。
次に多いのは Java、その次が C#(.NET Core) になりました。
Java はマルチプラットフォーム前提ですが、 .NET Core も Linux や macOS などの非Win環境をフルサポートしているため、FaaS の実行環境が Windows でない場面でも使うことができます。

簡潔な処理だけを FaaS にまかせて、複雑な処理はホスティングしたアプリケーションサーバーやバッチサーバに行わせるのが一般的でしたが、サーバーレス、マイクロサービス化の流れが強くなってきているので、FaaS でやりたい事も増えつつあります。
その場合 JavaScript(TypeScript) ではツラい場面も増えると思われるので、他の(希望する)言語が使えるかは重要な要素になってきます。

ベンダー別に見ると、AWS は基本的な言語をひととおり抑えてますね。
意外にも IBM の対応言語の多さよ。特に サーバーサイド Swift をサポートしているのはなかなか野心的ですね。

あと、言語ではないのですが表には Docker という項目を入れています。
これは、関数が呼び出されたときに、Docker コンテナを起動して任意の処理を行わせる、というもので、要するに何でもアリです。
この機能は Azure と IBM がサポートしていて、主にバッチ処理的な使い方ができそうです。

クラウドサービスを使う開発が当然のようになっている現在ですが、さらに素のインスタンス(EC2とか)をどれだけ 使わないか がポイントになってきていると思うので、FaaS が重要な役割を占めるようになってきています。

今後も折をみて内容を更新します。

93
66
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
93
66

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?