比较开源FaaS平台

有很多种开源函数即服务(FaaS)可供选择,因为不知道选哪个好,所以我打算进行比较。

观点

    • API Gateway

そもそも連携可能か?
API Gatewayの実装に何を使うか?

Nginx?
Envoy?

動作環境

Kubernetes?

対応言語
対応Trigger

Kubernetes Event?
Slack?

Web UI
運用

データベース、キャッシュ、ジョブキューにマネージドサービスを利用できるか?

请参考此链接:http://redmonk.com/jgovernor/2017/10/03/another-fn-container-native-serverless-framework/

Apache OpenWhisk 是一种开源的计算平台。

参考:https://thenewstack.io/behind-scenes-apache-openwhisk-serverless-platform/

请参考此链接了解Apache OpenWhisk无服务器平台的幕后情况。

    • API Gateway

実装はNginxを利用
Adobeが開発中

https://github.com/adobe-apiplatform/apigateway

動作環境

Kubernetes (IBM Bluemixがデファクトのよう)

対応Trigger

cli呼び出し

https://console.bluemix.net/docs/openwhisk/openwhisk_triggers_rules.html#openwhisk_triggers

フィード

https://console-regional.ng.bluemix.net/docs/openwhisk/openwhisk_catalog.html#openwhisk_catalog_cloudant
ここでタイプ「フィード」に対応しているもの

github webhook
Cloudantデータベースの変更

運用

以下を自前で運用する必要がある

Kafka
CouchDB
Consul

无服务器

    • API Gateway

KubernetesのIngressを利用

Ingress Controller(Nginx, Istio等)は別に選べるので、特定のミドルウェアにロックインされない

動作環境

Kubernetes

対応Trigger

HTTP Endpoint呼び出し
Kafkaトピック
スケジュール

運用

KubernetesクラスタさえあればOK

標準的なK8Sオブジェクト以外のステートはK8SのCRDに保存するので、他のデータストアなど運用する必要がない
https://github.com/kubeless/kubeless/tree/master/docs

裂变

一家名为Platform9的公司提供Kubernetes的托管服务的开源软件。

    • API Gateway

Kubernetes Ingressで対応予定(betaまでに)

https://github.com/fission/fission/issues/164

動作環境

Kubernetes

対応言語

Binary
Go
.NET
NodeJS
Perl
PHP7
Python 3
Ruby

対応Trigger

HTTPエンドポイント

OpenFaaS 可以译作“开放的函数即服务”。

Kubernetes对应的部署可以在https://github.com/openfaas/faas-netes找到。

    • API Gateway

Kubernetesの場合Ingressで実装しているので、Ingress Controller(Nginx, Istioなど)は選べる?

デフォルトはnginx

動作環境

Kubernetes
Docker Swarm

対応言語

DockerイメージにできるものならなんでもOK(大体のFaaSはそうかもだけど)
サンプル集

https://github.com/openfaas/faas/tree/master/sample-functions/BaseFunctions
Node.js
Python
Golang

対応Trigger

HTTPエンドポイント(同期・非同期)

https://github.com/openfaas/faas/tree/master/docs#gateway
現状ではGatewayのHTTPエンドポイントしかトリガーがないみたい
workerがGatewayを呼び出すことで、色々なTriggerを実現していく流れらしい(下記)

Kafka Topic(3rd party)

公式の開発状況

https://github.com/openfaas/faas/pull/311

NATS Streaming
AWS SNS/SQS予定あり

bannerAds