Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ワタシハ Azure Functions チョットデキル

6,118 views

Published on

de:code 2018 の 上記講演のスライドです。Azure Functions の下記の内容に関してお話ししました。資料が欲しいという要望をいただき先に公開しています。詳細の説明などは動画の後悔をお待ちください。

・非同期メッセージング
・メッセージングサービスの選択
・Function App / Azure Functions の内部構造
・カスタムバインディング
・コントリビューション

Published in: Technology
  • Be the first to comment

ワタシハ Azure Functions チョットデキル

  1. 1. ワタシハ Azure Functions チョットデキル AD28
  2. 2. “チョットデキル”
  3. 3. 画像は Cloud Watch (impress様より ) https://cloud.watch.impress.co.jp/img/clw/docs/649/658/html/linuxcon02-01.jpg.html 創った
  4. 4. https://twitter.com/chomado/status/867378770482577408 創った
  5. 5. https://twitter.com/uramanira/status/764997855186677760 金メダリスト
  6. 6. このセッションの案内文
  7. 7. チョットデキル
  8. 8. Serverless の重要性
  9. 9. しかし・・・ に完全お任せだよね・・・
  10. 10. サーバレスでも 制御したい!
  11. 11. クラウドの障害を 前提とした設計
  12. 12. 内部構造を理解する
  13. 13. Azure Functions の 開発者になる
  14. 14. メッセージングサービスの 選択
  15. 15. クラウドが障害を 起こしたら?
  16. 16. 再実行可能にする!
  17. 17. 同期実行と障害とスケール
  18. 18. 非同期実行と障害とスケール
  19. 19. お金にもやさしい設計!
  20. 20. 障害に強いサーバーレスの設計 https://docs.microsoft.com/en-us/azure/azure-functions/functions-best-practices Single Responsibility Principal 冪等性
  21. 21. サーバレスで下記のことが必要になったら
  22. 22. Azure のメッセージング SignalR
  23. 23. Storage Queue
  24. 24. Queue と Publish-Subscribe
  25. 25. Service Bus https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-azure-and-service-bus-queues-compared-contrasted
  26. 26. Event Grid https://docs.microsoft.com/en-us/azure/event-grid/compare-messaging-services
  27. 27. Event Hub / IoT Hub https://blogs.msdn.microsoft.com/appserviceteam/2017/09/19/processing-100000-events-per-second-on-azure-functions/
  28. 28. SignalR Service
  29. 29. Functions 間通信の基本
  30. 30. 何故か動いた! 突然動かなくなった
  31. 31. Azure Functions 内部アーキテクチャを理解する
  32. 32. Function App 作成の要求 要求を ARM が転送 適切な Scale Unit を選んで 要求を転送 Function App の割り当て
  33. 33. Scale Unit
  34. 34. App Service Plan の Functions 割り当て Scale Unit は Pre-Provision され たプールを持つ プールから Worker が割り当てられる Functions を デプロイ
  35. 35. App Service Plan のアーキテクチャ
  36. 36. Azure Functions が 負荷に耐えられない!
  37. 37. Azure Functions Load Testing
  38. 38. Consumption Plan のアーキテクチャ outboundに注意
  39. 39. Scale Contorller あるとき、ないとき
  40. 40. Consumption Plan のアーキテクチャ outboundに注意
  41. 41. Scale に関する考慮事項 (Consumption) Scale Controller が Worker の増減を決定 バーストモード (Worker 4 台まで) Queue の数 (1000 queue/worker) 滞在時間の増加/減少傾向 (10%+) Http 20 rps/worker もしくは リクエスト/レイテンシの増加傾向 (10%+)ならスケールアウト “host.json” で worker 毎のリクエスト制限 ログを Dashboard Storage Account と分ける ハイスケールシナリオ時 1回の実行で複数アイテム処理 EventHub, Queue, ServiceBus
  42. 42. Cold Start Run-From-Zip https://github.com/Azure/app-service-announcements/issues/84 Run-From-Zip デプロイメントを使う Node の場合、 funcpack を使う C# はスクリプトよりクラスライブラリ 起こすために定期的に ping する App Service Plan を使う 現状では、 V1 を使う
  43. 43. ベストプラクティス Application Insights を使う 非同期処理 (async/await) HttpClient 等は static としてキャッシュする host.json を設定する VSTS リリースマネジメントを使う
  44. 44. Azure Functions Load Testing
  45. 45. Http Trigger の性能改善 https://www.azurefromthetrenches.com/azure-functions-significant-improvements-in-http-trigger-scaling/ どうやって改善したの?
  46. 46. 解決策 解決策 解決策 解決策
  47. 47. Functions の実行イメージ (V2) Trigger C#, F# Bindings(in) Bindings(out) Node 他 Bindings(in) Bindings(out) C#, F# grpc
  48. 48. Azure Functions を自作する
  49. 49. あの機能ないし、 このバグどうしよう?
  50. 50. Azure Functions の共同開発者になる
  51. 51. 代表的なリポジトリ 総合窓口 実行基盤 HttpTrigger / Bindings Queue / Service Bus 等 Trigger / Bindings その他の Trigger / Bindings Portal UI CLI
  52. 52. リポジトリ https://github.com/Azure/Azure-Functions https://github.com/Azure/azure-functions-host https://github.com/Azure/azure-webjobs-sdk/ https://github.com/Azure/azure-webjobs-sdk-extensions https://github.com/Azure/azure-functions-host/wiki/Language-Extensibility https://github.com/Azure/azure-functions-ux https://github.com/Azure/azure-functions-core-tools https://github.com/Azure/azure-functions-durable-extension https://github.com/Azure/azure-functions-eventgrid-extension https://github.com/Azure/azure-functions-iothub-extension
  53. 53. Custom Bindings https://qiita.com/TsuyoshiUshio@github/items/345887a5fa5d59e7444a
  54. 54. Azure Functions 分析完了!
  55. 55. モブプログラミングで貢献
  56. 56. シグマコンサルティングさんが語ってくれ たこと マイクロソフトが実装してくれるのを 待って 気軽に本家のリポジトリに 貢献できる
  57. 57. Live Contribution
  58. 58. Serverless を制御して チョットデキル人に!!
  59. 59. リソース https://github.com/Azure/azure- webjobs-sdk/wiki/Creating-custom-input-and-output-bindings https://github.com/Azure/azure-webjobs-sdk- extensions/wiki/Binding-Extensions-Overview https://qiita.com/TsuyoshiUshio@github/items/345887a5fa5d59e7444a https://qiita.com/TsuyoshiUshio@github/items/4d74ea1a4e48139f7426
  60. 60. © 2018 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

×