各Cloud Functions で使える言語比較(2018年7月)
FaaS (Function as a Service) と呼ばれるクラウドに用意された関数実行環境(=Cloud Functions)について、各クラウドベンダーで使用できる開発言語を比較してみました。
比較クラウドベンダー #
- AWS - Lambda
- Microsoft - Azure Functions(2.x系)
- Google - Cloud Function(Firebase Functions も同じ)
- IBM - Cloud Functions
比較表 #
- 2018/7/25 - What happened at Google Cloud Next ‘18 に伴い追記
言語\ベンダー | 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 が重要な役割を占めるようになってきています。
今後も折をみて内容を更新します。
published at tags: faas AWS Azure Firebase ibmcloud