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.

[HAKODATE Developer Conference 2018] 「Azure Functions」で始めるサーバーレス アプリケーション開発

332 views

Published on

[HAKODATE Developer Conference 2018] 「Azure Functions」で始めるサーバーレス アプリケーション開発
https://satonaoki.wordpress.com/2018/09/30/hakodate-azure-functions/

HAKODATE Developer Conference 2018 (2018/09/29)
http://devcon.hakoika.jp/

Published in: Software
  • Be the first to comment

[HAKODATE Developer Conference 2018] 「Azure Functions」で始めるサーバーレス アプリケーション開発

  1. 1. 日本マイクロソフト株式会社 Azureテクノロジスト 佐藤 直生 (Neo) (@satonaoki) HAKODATE Developer Conference 2018 「Azure Functions」で始める サーバーレス アプリケーション開発
  2. 2. https://twitter.com/satonaoki https://satonaoki.wordpress.com http://aka.ms/weeklyazure
  3. 3. TrustedProductiveIntelligentHybrid
  4. 4. サーバーレスとは?
  5. 5. プラットフォームの変化 201620001990 2010 Cloud Native Apps
  6. 6. ストレージ サーバー ネットワーク OS ミドルウエア 仮想化 データ アプリケーション ランタイム OS ミドルウエア データ アプリケーション ランタイム ユ ー ザ ー 管 理 アプリケーション データ ベ ン ダ ー 管 理 Azure Virtual Machines Windows Server Hyper-V Windows Server Azure App Service など Office 365 Dynamics 365 ベ ン ダ ー 管 理 ユ ー ザ ー 管 理 ベ ン ダ ー 管 理 ユ ー ザ ー 管 理
  7. 7. アプリケーション データ Azure App Service ベ ン ダ ー 管 理 ユ ー ザ ー 管 理
  8. 8. ビジネス ロジックに集中 迅速な 開発と展開 開発と運用 管理の最小化
  9. 9. Azure Functions サーバーレス = サーバーの存在を意識しない開発 イベント駆動、スケール構成不要 リソース使用量と関数実行回数に基づく課金 C#、F#、JavaScript (Node.js)、Java などをサポート Visual Studio によるデバッグ、テスト、デプロイ
  10. 10. ...?
  11. 11.  従量課金プラン      App Service プラン  App Service 専用 VM 上で実行され、VM 使用コストに課金  既存 VM がある場合や継続的に関数を実行する場合に適する  Free, Shared, Basic, Standard, Premium の SKU とスケールによるコスト (参考) Azure Functions の価格 : https://azure.microsoft.com/ja-jp/pricing/details/functions/
  12. 12. Functions ランタイム 1.x - .NET Framework 2.x - .NET Core Functions プログラ ミング インター フェイス Azure App Service (従量課金 / App Service ホスティングプラン) 入力バインド 出力バインド トリガー
  13. 13. https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-reference#bindings
  14. 14. Azure-functions-core-tools on npm site: https://www.npmjs.com/package/azure-functions-core-tools Source repo on GitHub https://github.com/Azure/azure-functions-core-tools Command > func > azfun > azure-functions
  15. 15. (参考) https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-create-your-first-function-visual-studio
  16. 16. https://docs.microsoft.com/en-us/azure/azure-functions/functions-continuous- deployment https://docs.microsoft.com/en-us/azure/azure-functions/functions-infrastructure- as-code https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local モダンな方法 → ローカル開発・テスト https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local
  17. 17. Functions App作成時の連携設定 後からApp Insightsと連携設定
  18. 18. API プロキシ エンドポイント HTTP トリガー Function エンドポイント Function app A /customers Function app B /products Function app C Function3/orders Function1 /products /orders Function2
  19. 19. https://github.com/Azure-Samples/functions-linux-custom-image
  20. 20. F1 F2 F3 F4 パターン #1: 関数チェーン F1 F2 F3 パターン #2: ファンアウト/ファンイン Start DoWork GetStatus パターン #3: 非同期 HTTP API パターン #4: ステートフル シングルトン RequestApproval Escalate ProcessApproval パターン #5: 人による操作
  21. 21. // calls functions in sequence public static async Task<object> Run(DurableOrchestrationContext ctx) { try { var x = await ctx.CallFunctionAsync("F1"); var y = await ctx.CallFunctionAsync("F2", x); var z = await ctx.CallFunctionAsync("F3", y); return await ctx.CallFunctionAsync("F4", z); } catch (Exception) { // global error handling/compensation goes here } } • その他の Durable Functions の例はこちらを参照ください: • https://docs.microsoft.com/ja-jp/azure/azure-functions/durable-functions-overview • Durable Functions の拡張機能のインストールはこちら: • https://docs.microsoft.com/ja-jp/azure/azure-functions/durable-functions-install
  22. 22. 実行時間の長い関数を記述しない ステートレスな関数を記述する その他のベストプラクティスはこちらを参照ください: https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-best-practices https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-scale • 従量課金プランにおける関数に対する既定のタイムアウトは 5 分 • Function App に対してこの値を 最大 10 分 まで増やすことが可能 • host.json の functionTimeout プロパティ値 • https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-host-json#functiontimeout • もしくは App Service プランを使用する
  23. 23. ➢ ➢
  24. 24.   Visual Studio で Azure Logic Apps を作成してデプロイする   Logic Appサンプルテンプレート集 https://github.com/Azure/logicapps/tree/master/templates
  25. 25.    https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-use-logic-app-features  https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-switch-case     https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-loops-and-scopes   https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-exception-handling  https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-scenario-error-and- exception-handling
  26. 26. Text Analytics Translator Text https://azure.microsoft.com/ja-jp/services/cognitive-services/
  27. 27. 1. 2. 3. 4. 5.
  28. 28. Intelligent Edge + Intelligent Cloud Mobile Data & AI Containers Serverless DevOps
  29. 29.   
  30. 30.   https://azure.microsoft.com/ja-jp/try/app-service/   https://docs.microsoft.com/ja-jp/learn/paths/create-serverless- applications/index   https://azure.microsoft.com/ja-jp/free/   https://azure.microsoft.com/ja-jp/overview/webinars/
  31. 31. © 2018 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

×