毎年参加しているServerless Conf Tokyoです。3回目になります。
http://tokyo.serverlessconf.io/tokyo.serverlessconf.io
他のセッション
引用は私のコメントです。
目次
- 目次
- Speaker
- Serverless ってServerがないのこと?
- クラウドコンピューティングを交通で例えると
- 企業は要件を持っている
- ローカル実行デモ(Docker)
- サポートされている言語
- 関数オーケストレーション
- オープンソース
- おまけ
Speaker
Chris Gillum
Serverless ってServerがないのこと?
Serverless はServerを気にしなくていいという意味がある。Serverがないことではない。
ようやく、これで、面倒な言葉遊び終わってほしい....
クラウドコンピューティングを交通で例えると
IaaS : レンタカー PaaS : タクシー SaaS : Lift なりのアプリ
企業は要件を持っている
パフォーマンス
パフォーマンス要件が厳しい、Microsoft の注力ポイントはここ。
- Scale Capacity <= VM Instance のキャパシティ
- Scale out Speed <= すぐに展開できない状況でどう展開するか
Azure Functions v2 で、70% 速度が改善した。
2018/9/24 Release : https://azure.microsoft.com/en-us/blog/introducing-azure-functions-2-0/
Premium Functions がアナウンスもされた、サポートされている機能は
- Hybrid of PaaS and Servereless
- Optional Minimum % Maximum VM Count
- Rapid Scale out
- Unlimited Execution Duration
- Premium VM Sizes
- VNET Connectability
- No Cold Start
などがある。
No Cold Start がかなり嬉しい。初動マジおそだし、Ping Functions でも1台しかプロビジョンされない..... 創栄場、Always Onが別にアルけどこいつ使うと....?
アクセス制御
退職者がアクセス出来ないようにするなど必要ですyぽねぇ。
デプロイが認証情報を持ってはいけない
- 暗号化キー
- アクセスキー
- 他の秘密情報
これらは、Azure KeyVault を使って管理可能。
実際めっちゃ使ってるけど、超便利。ただ、Azure Functions との疎結合過ぎて、 Terraform 以外で管理しきれないので注意。
監視
Azure IApplication Insight で監視できるよー
見にくいねん.... 結構きらい。
FaaS Spectrum
ローカル実行デモ(Docker)
Dockerイメージが提供されている。
FROM mcr.microsoft.com/azure-functions/node:2.0
https://hub.docker.com/r/microsoft/azure-functions/
あるの!?知らなかった.... さいこうじゃないですかぁ。
docker pull mcr.microsoft.com/azure-functions/base:2.0
docker pull mcr.microsoft.com/azure-functions/dotnet:2.0
docker pull mcr.microsoft.com/azure-functions/node:2.0
docker pull mcr.microsoft.com/azure-functions/python:2.0
VS Code でブレークポイントもはれる。(拡張なし?)
HW部門が使ったVM サーバー上で利用したい -> Kubernetes 上でAzure Functions デプロイして、ワークロードに合わせる。
お金の制約しか無いなら、Azure Functions でもいい。
VS Code のExtensions で、デプロイがさくっとできる。
ここでPortal からURL もらう流れがめっちゃ嫌い..... いい加減なんとかしたいな。
サポートされている言語
- C# / Java / JavaScript + Python
関数オーケストレーション
従来の方法だと、関数の追加でキューが必要でありえんめんどくさい。
F1 > Queue > F2 > Queue > F3 > Queue > Fn > Queue n
これは今Lambda でめんどくさいやつ。Cloud Functions もか。
Azure DurableFunctions のオーケストレーションがらくなのは、オーケストレーターとアクティビティでコードで表現できる。(C# / Node でサポート)
関数チェーン、非同期API、ファンイン、ファンアウトがサポートされている。
F1 -> F2 -> F3 -> Fn
デモ : GitHub のシークレットをDurable Functions で監視....!
https://github.com/mhoeger/functions-docker-sample 参照
ふつうに有用。AWS Secret の拡張だと限定的なのでまぁいいね。
リポジトリが大きいと時間かかるので、実行時間制限がないDurable functions で対応する。
Durable Functions の callActivity待受けをyield で待ってるあたり、IEnumerator なぁ、コルーチン...
callActivityWithRetry で、リトライ制約をつけることができるのがかなりいい
いい加減Durable Functions のサンプルをリポジトリにあげておくか.... https://github.com/guitarrapc/AzureFunctionsIntroduction
オープンソース
企業が求めるのはオープンソース。
多くの改善をコミュニティからもらった。
Issue 投げてるけどコミットしてないなぁ
日本プロ野球ほげもげでは、毎日大量の写真がプロカメラマンからアップロードされる。 これまでは、毎晩この写真がだれ、とかやっていたがこれを解決した。
写真のタグ付け、自動タグ付けをしようと、Face API でやると30%程度しか自動タグ付けできなかった。(バッタは横無垢と、ピッチャーも正面ではない)
そこで、顔認識、試合データ、Exif解析、シーン解析を組み合わせることで90% まで上がった。で、この組み合わせ = ワークフロー = Durable Functions を使っている。
画像加工 -> 顔認識 -> 推定処理 -> 結果データ | | -> 画像分類 ->
おまけ
デモが別途入れ替わっておこなれてるの最高では? 意識変わるし注目するのですごく面白い取り組み感ある
Durable Functions の良い使い方的には、Shibayan のLet's Encrypt がいいと思う https://github.com/shibayan/azure-appservice-letsencrypt