2016.12.11
株式会社セクションナイン 吉田真吾
May the FaaS
be with us
吉田真吾
n バックグラウンド
証券システム基盤開発
p 基盤開発、Oracleチューニングなど
エバンジェリスト
p 講演年間113回(2013年実績)
p AWS設計・構築・移行(2014-2015)
n 現在のしごと
(株) セクションナイン 代表取締役社長
p AWSコンサルティング〜実装まで
(株) Cloud Payment
p 技術顧問
n 実績等
p AWSウルトラクイズ
初代チャンピオン (2012年)
p AWS Samurai 2014
p AWSエキスパート養成読本 執筆
p AWS認定全資格(5種類)保持
p Oracle Database 11g認定 (OCP,
Performance Tuning)保持
FaaSにいたるパラダイムシフト
• Why The Future Of Software And Apps Is Serverless
by Ken Fromm, VP of Business Development at Iron.io
• コンピューティングリソースの調達リードタイムの短縮
• スタンダローンアプリからの変化(現在のMicroservices)
• クラウドで柔軟にコンピューティングリソースをサービスとして
利用することができる
• サーバーが要らないということではなく、開発者はサーバーにつ
いて「考えなくてもよくなる」
http://readwrite.com/2012/10/15/why-the-future-of-software-and-apps-is-serverless/
Functions as a Service の台頭
• 特徴
• 実行環境は隠蔽&プラットフォーム
管理で、必要なのはコードのみ
• コンテナベースで調達リードタイム
を短縮
• 分散実行環境による可用性の確保
• 実行時間のみ課金によるコスト低減
• アーキテクチャにおける責務
• Stateful >> Statelessへ
• 永続データ >> 揮発性
• モノリシック >> Microservices
• バッチ処理 >> イベントドリブン
https://aws.amazon.com/jp/about-aws/events/reinvent-report-2014-pt2/
Serverless Compute Manifesto
1. ファンクションはデプロイ単位/拡張可能単位で管理
2. 機器/仮想サーバー/コンテナがプログラミングモデル
から見えてはいけない
3. データを永続化するストレージは他の場所に確保する
4. リクエスト単位にスケールを管理することでユーザー
をキャパシティ管理から解放する
5. 実行時間のみに課金し、アイドル時間に課金してはな
らない
6. どこでも実行できることで、いわんや耐障害性がある
7. コードだけ持ち込めば動作する
8. メトリクス収集やログ取得は必須要件である
• GitHub Pages や S3 でのSPAのホスティングも
現在は「サーバーレス」の中に含む
http://www.slideshare.net/acloudguru/ant-stanley-being-serverless
サーバーレスアーキテクチャ
フルマネージドなアプリ
ケーション実行環境
• Functional
SaaS/mBaaS/PaaSなど
で実現するサーバーレ
ス環境を指すことが多
い
• FaaSよりFunctional
SaaS使うほう
が効果的
コンポーネント同士をつな
ぐアーキテクチャ
• コンポーネントとして、
あるいはコンポーネン
ト自体として中央集権
的なサーバーを廃して
• 例)一部のマイクロ
サービスにFaaSを使う。
マイクロサービス間の
イベントハンドリング
にFaaSを使う
Functions as a Service
FaaS の主要な特徴
• スケーラビリティ
• ユーザーはスケールを気にしなくてもコードの実行に必要なリ
ソースが適宜適量割当てられる
• 可用性
• コンテナベースであるためポータブルで瞬時に動的に実行環境の
割当てが行われる→実行時に健全なリソースが使えるという意味
で可用性が高い(プラットフォーム次第)
• 使った分だけ課金
• 実行したリソース分だけ課金。永続的にプロビジョンするリソー
スはないので合理的。
• 制約
• データの永続化は外部の仕組みが必要(ステートレス)
• 実行環境の言語やバージョンにより利用可能なライブラリに制約
があったりする
FaaS の最近の注目ポイント
• CI/CD パイプラインをどう解決するか
• 自動テスト、自動ビルド、自動デプロイ
• 実行環境の設定含めたコード化、再利用性
• エコシステムフレームワークやIDEとの統合
• Goes Everywhere
• エッジコンピューティングのコンポーネントとか、プ
ラットフォーム自身のバックエンドとか
• エコシステム、開発者ネットワークの構築
• フレームワークツールの増加、コントリビューターの取
り込み
• コアのOSS化
AWS Lambda
• 2014年末 re:Invent にて発表
• サポート言語 2016.12.11現在
• Node.js – v0.10.36, v4.3.2
• Java – Java 8
• Python – Python 2.7
• C# - .NET Core 1.0.1
• ホスト
• Amazon Linux (時々バージョンアップ)
• 実行環境は再利用される
• 初回起動が遅いが再利用時は高速
• 一時ストレージとして /tmp 利用可能(スケールしたり破棄されたりするので
頼らないこと)
• 課金は使った分だけ
• 確保(指定)したメモリ(128MB〜1.5GB) x 実行時間(100ms単位) x 実行回数
• メモリに比例してCPUの割当ても多くなる
http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html
AWS Lambda
• タイムアウト 〜300秒
• エラー時のリトライについて
• ストリームベース(Kinesis Streams):データの
有効期限まで自動リトライ
• その他
• 同期呼び出し:呼び出し元で実装すること
• 非同期呼び出し:最大3回実行
それでもダメだったら
デッドレターキューで再実行
という方法も
http://www.slideshare.net/keisuke69/aws-lambda-updates
Lambda Everywhere
• AWS Lambda が環境変数をサポート
• AWS Serverless Application Model (SAM) リリース
• [New] AWS Greengrass
• [New] AWS Snowball Edge
• [New] AWS Step Functions
• [New] Lambda@Edge
• [New] Amazon Athena
• [New] Amazon Pinpoint
• Amazon Kinesis Firehose が Lambda に対応(予定)
• AWS Lambda が C# をサポート
• AWS Lambda Dead Letter Queue
多彩なエコシステムフレームワーク
Chalice
(Python Serverless Microframework for AWS)
AWS Serverless Application Model (SAM)
• サーバーレスアプリケーション全体
を CloudFormation テンプレートで
管理できる
• Lambda、API Gateway、
DynamoDB がサポートされている
• 個人的には今後チーム開発はこれが
もっともやりやすく(Serverless
FrameworkやChaliceより)なるん
じゃないかと想定
https://github.com/awslabs/serverless-application-model
SAM + CircleCI
functions
app-spec
(template)
functions.zip
Lambda
bucket
DynamoDB
stack
CloudFormation
API
Gateway
SAM
http://yoshidashingo.hatenablog.com/entry/2016/12/05/024120
IDEとの統合
Eclipse Visual Studio
https://aws.amazon.com/blogs/developer/aws-toolkit-for-eclipse-serverless-application/
https://aws.amazon.com/blogs/developer/aws-lambda-support-in-visual-studio/
Visual Studio + Lambda C# でローカルデバッグ
• ローカルの.NET Core上で実行ができる
• クラウド上のリモートデバッグには対応していない
• ユーザー側のFunction上の変数の値は見えるが、
Lambdaのコア側の変数は見えない
• シームレスにクラウド上にデプロイしてIDEか
ら直接ソースの修正できる
• 俺Macだから…
• BootCampがあるで
• Visual Studio for Mac は Xamarin やで
Lambda goes everywhere!!
Snowball Edge
Greengrass
AWS IoT
Greengrass
Core
IoT SDK
Gateway
edge
location
edge
location
Origin
Lambda@Edge
Step Functions
Inline processing for
Kinesis Firehose
Azure Functions
• 2016/3 プレビュー → 2016/11 GA
• サポート言語
• C#、F#、Node.js、Python、PHP、Batch、Bash、その
他実行可能な言語(Bash叩けりゃPerlだってイケる)
• リソース割当て
• 動的ホスティング プラン:自動的に割当てを行い実行
• App Serviceプラン:App Serviceと統合(が詳細不明)
• Visual StudioからAzure上の実行環境のメモリに
アタッチしてリモートデバッグできる
• HTTPトリガーなどEndpointがAll-in
https://azure.microsoft.com/ja-jp/services/functions/
Apache OpenWhisk
• 2016/2 IBM BlueMix 上のサービスとしてベータ提供開始
当初よりコードをOSSとして公開
→2016/11 Apache Incubator へ登録(正式採用を目指している状
態)
• サポート環境
• Node.js, Swift, Python, Java, Docker(←要はなんでもOK)
• 実行環境をMacのDocker環境上にセットアップできるのでローカル実行/
デバッグなども可能
• 料金
• IBM BlueMix OpenWhisk
:ベータ
• オンプレにデプロイできる
Serverless on Servers
• その他
• IBMが啓蒙に非常に前のめり
http://openwhisk.org
Google Cloud Functions
• 2016/2 アルファプレビュー
• サポート言語:Node.js
• トリガー
• HTTPトリガー
• Cloud Pub/Subトリガー
• GCP内の各種サービスからPub/Subトピックにイベントをエクスポートすることでトリガーすることができる
• ex. Stackdriver Logging→Pub/Sub→Functions→なにか
• ex. GMail Push→Pub/Sub→Functions→なにか
• Cloud Storageトリガー
• オブジェクトの追加(作成)、アップデート(変更)、削除
• ダイレクトトリガー
• CLIから直接呼び出し
• デプロイ
• Cloud StorageバケットにZipアップロード(or CLI)してデプロイ
• Cloud Repositoriesを使ってGitHubなどから自動(or CLI)でデプロイ
• ロギング
• CLI: $ gcloud alpha functions get-logs
• ダッシュボード(Cloud Platform Console)
• Logging API
https://cloud.google.com/functions/
Auth0 Webtask
• 言語サポート:Node.js
• 認証サービスAuth0と連携したトークンの発行〜
Functionをコールするプロセスがシンプル
• またGetting Startedの中で指定されるトークン付きの
API
• 認証後のJWTの内容も自分でカスタマイズできる
• ソースは専用のクラウドIDE (エディタ、実行/停止、
ログ出力など)で編集
• Warm Pool で実行環境のコンテナを暖機するので
Lambdaのように初回遅くないというのが売り
• Dockerベースのコア環境
• Function formatに沿えばどんな言語の実行環境も
載せられる
• 2016/11 αリリース → 2017/3 のGAを目指す
• Lambdaのコードと完全互換をうたっており、
Lambdaのローカル環境として期待できる(か
も)
ソースコードを公開している FaaS
• ソースコードの可視化
• コア/SDK/サンプル など
• コントリビューターや開発者を取り込み開発を促進
• 規模の経済が働くプラットフォーム事業との切り離し
• FaaSデファクトなLambdaとは違うオンプレFaaSのニーズに対応
• オンプレで使う場合リソーススケジューラは自前で実装する必要があ
り課題(将来的に既存のコンテナスケジューラと統合されるといい
な)
MIT Apache License, Version 2.0Apache License, Version 2.0MIT
FaaSを活用するための心構え
• システムをリアクティブに設計する
• マイクロサービスとして、あるいはマイクロサービスごとの
つなぎとして
• 業務システムへの適用が難しいと言われがちだが、
そもそもFaaSのみでシステム構築するアプローチはよくない
• イベントの発火やWebhookなどに対応している周辺のマネー
ジド・サービスとうまくつないでいく
• やっていく気持ち
• 一度トライアルしておくといざ活用する際にハマりどころな
どが判断しやすい
• 弊社では新規事業の検討などでデモを作成することが多いた
めサーバーレスでさっと構築できる環境に事前に慣れておく
ことが多い
参考情報
• Why The Future Of Software And Apps Is Serverless
• http://readwrite.com/2012/10/15/why-the-future-of-software-and-apps-is-serverless/
• Being Serverless
• http://www.slideshare.net/acloudguru/ant-stanley-being-serverless
• サーバレスの薄い本ダイジェスト
• http://www.slideshare.net/nekoruri/20161109-serverless-meetup
• Serverless Framework
• https://github.com/serverless/serverless
• AWS Serverless Application Model (SAM)
• https://github.com/awslabs/serverless-application-model
• Python Serverless Microframework for AWS
• https://github.com/awslabs/chalice
• Apex
• https://github.com/apex/apex
• Zappa - Serverless Python Web Services
• https://github.com/Miserlou/Zappa
参考情報
• AWS Lambda
• http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html
• http://www.slideshare.net/keisuke69/aws-lambda-updates
• Azure Functions
• https://github.com/Azure/Azure-Functions
• https://github.com/Azure/azure-webjobs-sdk/
• Google Cloud Functions
• https://cloud.google.com/functions/docs/
• https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/master/functions
• Apache OpenWhisk
• http://openwhisk.org
• Auth0 Webtask
• https://github.com/auth0/webtask-runtime
• IronFunctions
• https://github.com/iron-io/functions

May the FaaS be with us!!

  • 1.
  • 2.
    吉田真吾 n バックグラウンド 証券システム基盤開発 p 基盤開発、Oracleチューニングなど エバンジェリスト p講演年間113回(2013年実績) p AWS設計・構築・移行(2014-2015) n 現在のしごと (株) セクションナイン 代表取締役社長 p AWSコンサルティング〜実装まで (株) Cloud Payment p 技術顧問 n 実績等 p AWSウルトラクイズ 初代チャンピオン (2012年) p AWS Samurai 2014 p AWSエキスパート養成読本 執筆 p AWS認定全資格(5種類)保持 p Oracle Database 11g認定 (OCP, Performance Tuning)保持
  • 4.
    FaaSにいたるパラダイムシフト • Why TheFuture Of Software And Apps Is Serverless by Ken Fromm, VP of Business Development at Iron.io • コンピューティングリソースの調達リードタイムの短縮 • スタンダローンアプリからの変化(現在のMicroservices) • クラウドで柔軟にコンピューティングリソースをサービスとして 利用することができる • サーバーが要らないということではなく、開発者はサーバーにつ いて「考えなくてもよくなる」 http://readwrite.com/2012/10/15/why-the-future-of-software-and-apps-is-serverless/
  • 5.
    Functions as aService の台頭 • 特徴 • 実行環境は隠蔽&プラットフォーム 管理で、必要なのはコードのみ • コンテナベースで調達リードタイム を短縮 • 分散実行環境による可用性の確保 • 実行時間のみ課金によるコスト低減 • アーキテクチャにおける責務 • Stateful >> Statelessへ • 永続データ >> 揮発性 • モノリシック >> Microservices • バッチ処理 >> イベントドリブン https://aws.amazon.com/jp/about-aws/events/reinvent-report-2014-pt2/
  • 6.
    Serverless Compute Manifesto 1.ファンクションはデプロイ単位/拡張可能単位で管理 2. 機器/仮想サーバー/コンテナがプログラミングモデル から見えてはいけない 3. データを永続化するストレージは他の場所に確保する 4. リクエスト単位にスケールを管理することでユーザー をキャパシティ管理から解放する 5. 実行時間のみに課金し、アイドル時間に課金してはな らない 6. どこでも実行できることで、いわんや耐障害性がある 7. コードだけ持ち込めば動作する 8. メトリクス収集やログ取得は必須要件である
  • 7.
    • GitHub Pagesや S3 でのSPAのホスティングも 現在は「サーバーレス」の中に含む http://www.slideshare.net/acloudguru/ant-stanley-being-serverless
  • 8.
    サーバーレスアーキテクチャ フルマネージドなアプリ ケーション実行環境 • Functional SaaS/mBaaS/PaaSなど で実現するサーバーレ ス環境を指すことが多 い • FaaSよりFunctional SaaS使うほう が効果的 コンポーネント同士をつな ぐアーキテクチャ •コンポーネントとして、 あるいはコンポーネン ト自体として中央集権 的なサーバーを廃して • 例)一部のマイクロ サービスにFaaSを使う。 マイクロサービス間の イベントハンドリング にFaaSを使う
  • 9.
  • 10.
    FaaS の主要な特徴 • スケーラビリティ •ユーザーはスケールを気にしなくてもコードの実行に必要なリ ソースが適宜適量割当てられる • 可用性 • コンテナベースであるためポータブルで瞬時に動的に実行環境の 割当てが行われる→実行時に健全なリソースが使えるという意味 で可用性が高い(プラットフォーム次第) • 使った分だけ課金 • 実行したリソース分だけ課金。永続的にプロビジョンするリソー スはないので合理的。 • 制約 • データの永続化は外部の仕組みが必要(ステートレス) • 実行環境の言語やバージョンにより利用可能なライブラリに制約 があったりする
  • 11.
    FaaS の最近の注目ポイント • CI/CDパイプラインをどう解決するか • 自動テスト、自動ビルド、自動デプロイ • 実行環境の設定含めたコード化、再利用性 • エコシステムフレームワークやIDEとの統合 • Goes Everywhere • エッジコンピューティングのコンポーネントとか、プ ラットフォーム自身のバックエンドとか • エコシステム、開発者ネットワークの構築 • フレームワークツールの増加、コントリビューターの取 り込み • コアのOSS化
  • 12.
    AWS Lambda • 2014年末re:Invent にて発表 • サポート言語 2016.12.11現在 • Node.js – v0.10.36, v4.3.2 • Java – Java 8 • Python – Python 2.7 • C# - .NET Core 1.0.1 • ホスト • Amazon Linux (時々バージョンアップ) • 実行環境は再利用される • 初回起動が遅いが再利用時は高速 • 一時ストレージとして /tmp 利用可能(スケールしたり破棄されたりするので 頼らないこと) • 課金は使った分だけ • 確保(指定)したメモリ(128MB〜1.5GB) x 実行時間(100ms単位) x 実行回数 • メモリに比例してCPUの割当ても多くなる http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html
  • 13.
    AWS Lambda • タイムアウト〜300秒 • エラー時のリトライについて • ストリームベース(Kinesis Streams):データの 有効期限まで自動リトライ • その他 • 同期呼び出し:呼び出し元で実装すること • 非同期呼び出し:最大3回実行 それでもダメだったら デッドレターキューで再実行 という方法も http://www.slideshare.net/keisuke69/aws-lambda-updates
  • 14.
    Lambda Everywhere • AWSLambda が環境変数をサポート • AWS Serverless Application Model (SAM) リリース • [New] AWS Greengrass • [New] AWS Snowball Edge • [New] AWS Step Functions • [New] Lambda@Edge • [New] Amazon Athena • [New] Amazon Pinpoint • Amazon Kinesis Firehose が Lambda に対応(予定) • AWS Lambda が C# をサポート • AWS Lambda Dead Letter Queue
  • 15.
  • 16.
    AWS Serverless ApplicationModel (SAM) • サーバーレスアプリケーション全体 を CloudFormation テンプレートで 管理できる • Lambda、API Gateway、 DynamoDB がサポートされている • 個人的には今後チーム開発はこれが もっともやりやすく(Serverless FrameworkやChaliceより)なるん じゃないかと想定 https://github.com/awslabs/serverless-application-model
  • 17.
  • 18.
  • 19.
    Visual Studio +Lambda C# でローカルデバッグ • ローカルの.NET Core上で実行ができる • クラウド上のリモートデバッグには対応していない • ユーザー側のFunction上の変数の値は見えるが、 Lambdaのコア側の変数は見えない • シームレスにクラウド上にデプロイしてIDEか ら直接ソースの修正できる • 俺Macだから… • BootCampがあるで • Visual Studio for Mac は Xamarin やで
  • 20.
    Lambda goes everywhere!! SnowballEdge Greengrass AWS IoT Greengrass Core IoT SDK Gateway edge location edge location Origin Lambda@Edge Step Functions Inline processing for Kinesis Firehose
  • 21.
    Azure Functions • 2016/3プレビュー → 2016/11 GA • サポート言語 • C#、F#、Node.js、Python、PHP、Batch、Bash、その 他実行可能な言語(Bash叩けりゃPerlだってイケる) • リソース割当て • 動的ホスティング プラン:自動的に割当てを行い実行 • App Serviceプラン:App Serviceと統合(が詳細不明) • Visual StudioからAzure上の実行環境のメモリに アタッチしてリモートデバッグできる • HTTPトリガーなどEndpointがAll-in https://azure.microsoft.com/ja-jp/services/functions/
  • 22.
    Apache OpenWhisk • 2016/2IBM BlueMix 上のサービスとしてベータ提供開始 当初よりコードをOSSとして公開 →2016/11 Apache Incubator へ登録(正式採用を目指している状 態) • サポート環境 • Node.js, Swift, Python, Java, Docker(←要はなんでもOK) • 実行環境をMacのDocker環境上にセットアップできるのでローカル実行/ デバッグなども可能 • 料金 • IBM BlueMix OpenWhisk :ベータ • オンプレにデプロイできる Serverless on Servers • その他 • IBMが啓蒙に非常に前のめり http://openwhisk.org
  • 23.
    Google Cloud Functions •2016/2 アルファプレビュー • サポート言語:Node.js • トリガー • HTTPトリガー • Cloud Pub/Subトリガー • GCP内の各種サービスからPub/Subトピックにイベントをエクスポートすることでトリガーすることができる • ex. Stackdriver Logging→Pub/Sub→Functions→なにか • ex. GMail Push→Pub/Sub→Functions→なにか • Cloud Storageトリガー • オブジェクトの追加(作成)、アップデート(変更)、削除 • ダイレクトトリガー • CLIから直接呼び出し • デプロイ • Cloud StorageバケットにZipアップロード(or CLI)してデプロイ • Cloud Repositoriesを使ってGitHubなどから自動(or CLI)でデプロイ • ロギング • CLI: $ gcloud alpha functions get-logs • ダッシュボード(Cloud Platform Console) • Logging API https://cloud.google.com/functions/
  • 24.
    Auth0 Webtask • 言語サポート:Node.js •認証サービスAuth0と連携したトークンの発行〜 Functionをコールするプロセスがシンプル • またGetting Startedの中で指定されるトークン付きの API • 認証後のJWTの内容も自分でカスタマイズできる • ソースは専用のクラウドIDE (エディタ、実行/停止、 ログ出力など)で編集 • Warm Pool で実行環境のコンテナを暖機するので Lambdaのように初回遅くないというのが売り
  • 25.
    • Dockerベースのコア環境 • Functionformatに沿えばどんな言語の実行環境も 載せられる • 2016/11 αリリース → 2017/3 のGAを目指す • Lambdaのコードと完全互換をうたっており、 Lambdaのローカル環境として期待できる(か も)
  • 26.
    ソースコードを公開している FaaS • ソースコードの可視化 •コア/SDK/サンプル など • コントリビューターや開発者を取り込み開発を促進 • 規模の経済が働くプラットフォーム事業との切り離し • FaaSデファクトなLambdaとは違うオンプレFaaSのニーズに対応 • オンプレで使う場合リソーススケジューラは自前で実装する必要があ り課題(将来的に既存のコンテナスケジューラと統合されるといい な) MIT Apache License, Version 2.0Apache License, Version 2.0MIT
  • 27.
    FaaSを活用するための心構え • システムをリアクティブに設計する • マイクロサービスとして、あるいはマイクロサービスごとの つなぎとして •業務システムへの適用が難しいと言われがちだが、 そもそもFaaSのみでシステム構築するアプローチはよくない • イベントの発火やWebhookなどに対応している周辺のマネー ジド・サービスとうまくつないでいく • やっていく気持ち • 一度トライアルしておくといざ活用する際にハマりどころな どが判断しやすい • 弊社では新規事業の検討などでデモを作成することが多いた めサーバーレスでさっと構築できる環境に事前に慣れておく ことが多い
  • 28.
    参考情報 • Why TheFuture Of Software And Apps Is Serverless • http://readwrite.com/2012/10/15/why-the-future-of-software-and-apps-is-serverless/ • Being Serverless • http://www.slideshare.net/acloudguru/ant-stanley-being-serverless • サーバレスの薄い本ダイジェスト • http://www.slideshare.net/nekoruri/20161109-serverless-meetup • Serverless Framework • https://github.com/serverless/serverless • AWS Serverless Application Model (SAM) • https://github.com/awslabs/serverless-application-model • Python Serverless Microframework for AWS • https://github.com/awslabs/chalice • Apex • https://github.com/apex/apex • Zappa - Serverless Python Web Services • https://github.com/Miserlou/Zappa
  • 29.
    参考情報 • AWS Lambda •http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html • http://www.slideshare.net/keisuke69/aws-lambda-updates • Azure Functions • https://github.com/Azure/Azure-Functions • https://github.com/Azure/azure-webjobs-sdk/ • Google Cloud Functions • https://cloud.google.com/functions/docs/ • https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/master/functions • Apache OpenWhisk • http://openwhisk.org • Auth0 Webtask • https://github.com/auth0/webtask-runtime • IronFunctions • https://github.com/iron-io/functions