JAZUG札幌支部 第18回勉強会で「業務システムを App Service で運用しよう」を話してきました #JAZUG #きたあず
業務システムを App Service で運用しよう
www.slideshare.net
話してきましたが、ハンズオンやちょっと試す程度しか触ったことがなく、ちゃんと運用したことはないです!
最初に「勉強してきたから聞いてください」と白状しました。会場に聞いてみたら当然同じような方もいらっしゃったし、発表後に質問されるくらいには興味を持ってもらえたし、質問にもばっちり答えられた。コミュニティのメンバーに色々聞きながら勉強して、発表まで出来たので、そういう方が増えたらいいな!
デモ 1
デモでは、Web App を使って、AAD 認証、ブルーグリーンデプロイメント、継続的なデプロイを紹介しました。
一般公開しているプロダクション環境、Web App の認証を使った AAD 認証が必要なステージング環境を用意して、ステージング環境で十分な動作確認をした後にスワップ。手元のソースに編集を加えてコミット & プッシュでステージング環境に自動的にデプロイ。動作確認をしてスワップ……
デモ 2
二つ目のデモはスライドの後半「業務システムを App Service で運用してみる」の通り。
Functions の起動に時間がかかったりするので、デモの前に Web App の URL にアクセスして温めておいた。デモをするときは重要だと思う。しかし、実運用ではそれが気にならない機能に組み込むかどうにか考えないといけないのかな?少しモヤモヤ。
質問
- Q Durable Function のフローはもっと複雑にも出来るんですか
- A 出来ます。タイムアウトしたら上位承認や、同時に何人かに申請した Task を WhenAll で待機したり……
- Q サーバーレスの処理の中で待機なんてしていいんですか
- A 良いように設計されてます。本当にすごい。Durable Function は一連のフローの実行に ID が付いていて await などで待機する場合は状態をストレージに記録して死んだ状態になります。
サンプルコード
Durable Function のサンプルコードです。サンプルコードで DurableTask の 1.4 を参照しているけど、最初に 1.2.2-beta3 あたりで動かさないと Azure 上で次のアクティビティを呼び出しても動き出してくれなかった"気がします"。具体的にはストレージの DurableFunctionsHubInstances も DurableFunctionsHubHistory も空っぽのままでした。準備にアップアップで切り分けしてないので今度確認したい。
2018/06/20 追記
上記の問題に関して id:beachside さんから「これかも?」と教えてもらった。いくつかの問題について議論されてるけど、確かに同じ問題を挙げてる人がいる。