SlideShare a Scribd company logo
1 of 48
Serverless の自動回復と
自動化のためのアーキテクチャ
牛尾 剛
Microsoft Corporation
CSE - EEST
Senior Software Engineer
medium.com@TsuyoshiUshio
アジェンダ
自動化のためのアーキテクチャ
自動回復のためのアーキテクチャ
サーバーレスのアーキテクチャ
NoOpsに取り組むための
最初の一歩を始めてほしい
オンプレミス
IaaS (一般的な) PaaS サーバレス
(これも PaaS の一種/FaaS)
クラウド
ハードウェア
OS
ランタイム
アプリ
(関数呼び出し)
関数
ハードウェア
OS
ランタイム
アプリ
(関数呼び出し)
関数
ハードウェア
OS
ランタイム
アプリ
(関数呼び出し)
関数
ハードウェア
OS
ランタイム
アプリ
(関数呼び出し)
関数
@chomado 作
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] dynamic obj,
[CosmosDB("databaseName", "collectionName",Id = "abc", ConnectionStringSetting =
"SomeConnection")] dynamic input,
[Queue("myqueue", Connection = "ConnectionString")] IAsyncCollector<string> outputQueue,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
var output = $"{obj.Name}: id: abc value: {input.value}";
await outputQueue.AddAsync(output);
return (ActionResult)new OkObjectResult($"Hello, {obj.Name}");
}
自動回復アーキテクチャの
デモ
Markdown Translator
翻訳超めんどくさい問
題
普段の解法
この筋肉で
解決
新しいブランチを作る
MDを検索する
全ページを翻訳する
APIアクセス制限
並列処理
リトライ
Durable Functions
Orcehstrator
ブランチ作成
MD検索
Readme.md
Challenge01.md
ファイル読込
翻訳
ファイル更新
自動化のためのアーキテク
チャ
Azure Functions のユニットテスト
テストピラミッド
ユニットテストの重要性
良いユニットテストとは
Hexagonal Architecture
Http CosmosDB
Azure
Search
Storage
Account
Azure Functions
Model
Domain
Application Layer
Model
Hexagonal Architecture
Http CosmosDB
Azure
Search
Storage
Account
Azure Functions
Model
Domain
Application Layer
Model
Strategy for Azure Functions
Model
Domain
Model
Fixture
Model
Domain
Model
DI (Dependency Injection) and Wrapper
3つのタイプのユニットテスト
テスト可能な設計のための Tips
Respoitory Pattern with ASP.NET Core
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/repository-pattern?view=aspnetcore-2.1
サーバーレスの限界
長時間の実行に制限がある
障害時の対策が面倒くさい
サーバーレスは複雑になりやすい
モニタリングどうするよ・・・
ブラウザ
Proxy Blob (SPA)
Upload
Blob (画像)
CosmosDB
Create
Car Review 01
Search
Change Feed
Blob (画像)
CosmosDB
Car Review 02
Change Feed
Check Text
Text checked
Rejected
Send event
Car Review 03
Handle Reject Review
ややこしいね
ん
10分
障害起こったら
どうするん?
これは筋肉で解決できない
1%の問題
Durable Functions で
すべてを解決
自動回復のためのアーキテ
クチャ
自動回復のためのアーキテクチャ
分散トレーシング
分散トレーシングの実装
2つの分散トレーシングプロトコル
https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/HttpCorrelationProtocol.md
https://w3c.github.io/trace-context/#traceparent-field
tsuyoshi ushio correlation 検索
Correlation with Activity with Application Insights (1) - (3)
Request Telemetry
Dependency Telemetry
Request Telemetry
Function2
Function1
HttpRequest
Queue
Telemetry Id ParentId RootId
Request |UEJDOAJH7eU=.3320d4ac_1. |UEJDOAJH7eU=.3320d4ac_ UEJDOAJH7eU=
Dependency |UEJDOAJH7eU=.3320d4ac_1.3320d4b1_ |UEJDOAJH7eU=.3320d4ac_1. UEJDOAJH7eU=
ParentId
|UEJDOAJH7eU=.3320d4ac_1.3320d4b1_
Telemetr
y
Id ParentId RootId
Request |UEJDOAJH7eU=.3320d4ac_1.3320d4
b1_3320d4b7_
|UEJDOAJH7eU=.3320d4ac_1.3320d4b1
_
UEJDOAJH7eU
=
Request Telemetry
Dependency Telemetry
Orchestrator
HttpRequest
Request Telemetry
HttpRequest
Orchestrator
Dependency Telemetry
Queue
Queue
Request Telemetry
Dependency Telemetry
Activity
Queue
Telemetry TraceId SpanId ParentSpanId
Request 93bd77f9142bea4aa194fc17ad673a8d 3ad91ae6deb7ff48 -
Dependency 93bd77f9142bea4aa194fc17ad673a8d 3cb76023174d3342 3ad91ae6deb7ff48
Telemetry TraceId SpanId ParentSpanId
Request 93bd77f9142bea4aa194fc17ad673a8d 285c9d6ec7291e45 3cb76023174d3342
Telemetry TraceId SpanId ParentSpanId
Dependency 93bd77f9142bea4aa194fc17ad673a8d 20b980b04525c74f 285c9d6ec7291e4
5
Telemetry TraceId SpanId ParentSpanId
Request 93bd77f9142bea4aa194fc17ad673a8d b7b5267e3136794b 285c9d6ec7291e45
Dependency 93bd77f9142bea4aa194fc17ad673a8d 228afc082cc2924c b7b5267e3136794
b
分散トレーシング実装の課題
Scope of the Activity
WebJobs.HostWebJobs.Extensions.DurableTask
DurableTask
AzureStorageOrchestrationService.
LockNextTaskOrchestrationWorkItemAsync
ProcessQueue
AzureStorageOrchestrationService.
CompleteTaskOrchestrationWorkItemAsync
Send Queue
TaskOrchestrationShim
Execute Function
DurableProto
User Function
ApplicationInsightsLogger
Send RequestTemeletry
TaskOrchestrationWorkItem
/ OrchestrationSession
Activity Scope 02
Create
Parameter
Send Queue
Receive Queue
Activity Scope 01
DurableTaskExtension
.OrchestrationMiddleWare
Deletage to TaskOrchestrationShim
①
②
③
④
⑤
⑥ Activity Scope 03
NoOpsにむけて
一歩を踏み出そう
NoOps Meetup Seattle
© 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

More Related Content

What's hot

What's hot (20)

Ansible night
Ansible nightAnsible night
Ansible night
 
最近Preview公開されたAzure テストサービスを試してみた
最近Preview公開されたAzure テストサービスを試してみた最近Preview公開されたAzure テストサービスを試してみた
最近Preview公開されたAzure テストサービスを試してみた
 
あるインフラエンジニアの過去と未来
あるインフラエンジニアの過去と未来あるインフラエンジニアの過去と未来
あるインフラエンジニアの過去と未来
 
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
テスト駆動インフラ構築-Chefとserverspecを使ったインフラ自動化のすすめ-
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
 
Openstack管理運用ソフトの決定版?!かもしれないAppFormix - OpenStack最新情報セミナー(2017年3月)
Openstack管理運用ソフトの決定版?!かもしれないAppFormix - OpenStack最新情報セミナー(2017年3月)Openstack管理運用ソフトの決定版?!かもしれないAppFormix - OpenStack最新情報セミナー(2017年3月)
Openstack管理運用ソフトの決定版?!かもしれないAppFormix - OpenStack最新情報セミナー(2017年3月)
 
Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)Ansible ネットワーク自動化チュートリアル (JANOG42)
Ansible ネットワーク自動化チュートリアル (JANOG42)
 
半日でわかる コンテナー技術 (入門編)
半日でわかる コンテナー技術 (入門編)半日でわかる コンテナー技術 (入門編)
半日でわかる コンテナー技術 (入門編)
 
NoOpsへ舵を切れ
NoOpsへ舵を切れNoOpsへ舵を切れ
NoOpsへ舵を切れ
 
Azure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストAzure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステスト
 
アメーバブログを支えるデータセンターとインフラ技術
アメーバブログを支えるデータセンターとインフラ技術 アメーバブログを支えるデータセンターとインフラ技術
アメーバブログを支えるデータセンターとインフラ技術
 
Azure Load Testingを試してみた
Azure Load Testingを試してみたAzure Load Testingを試してみた
Azure Load Testingを試してみた
 
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
 
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
 
本気で使うStack storm
本気で使うStack storm本気で使うStack storm
本気で使うStack storm
 
What's Azure DevOps
What's Azure DevOpsWhat's Azure DevOps
What's Azure DevOps
 
SoftLayer Bluemix Summit 2015 はじめてのSoftLayer(サーバー、ストレージ編)
 SoftLayer Bluemix Summit 2015 はじめてのSoftLayer(サーバー、ストレージ編) SoftLayer Bluemix Summit 2015 はじめてのSoftLayer(サーバー、ストレージ編)
SoftLayer Bluemix Summit 2015 はじめてのSoftLayer(サーバー、ストレージ編)
 
自社クラウドサービスをAnsibleで作った話
自社クラウドサービスをAnsibleで作った話自社クラウドサービスをAnsibleで作った話
自社クラウドサービスをAnsibleで作った話
 
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
 
今日からはじめるディープラーニング
今日からはじめるディープラーニング今日からはじめるディープラーニング
今日からはじめるディープラーニング
 

Similar to Serverless の自動回復と自動化のためのアーキテクチャ

Similar to Serverless の自動回復と自動化のためのアーキテクチャ (20)

[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
 
サーバーレスアーキテクチャ(Azure Functions & Durable Functions)で働き方改革を推進
サーバーレスアーキテクチャ(Azure Functions & Durable Functions)で働き方改革を推進サーバーレスアーキテクチャ(Azure Functions & Durable Functions)で働き方改革を推進
サーバーレスアーキテクチャ(Azure Functions & Durable Functions)で働き方改革を推進
 
【CEDEC2018】Azure最新情報+「オトギフロンティア」運用大公開+サーバーレスアーキテクチャー
【CEDEC2018】Azure最新情報+「オトギフロンティア」運用大公開+サーバーレスアーキテクチャー【CEDEC2018】Azure最新情報+「オトギフロンティア」運用大公開+サーバーレスアーキテクチャー
【CEDEC2018】Azure最新情報+「オトギフロンティア」運用大公開+サーバーレスアーキテクチャー
 
Apache Auroraの始めかた
Apache Auroraの始めかたApache Auroraの始めかた
Apache Auroraの始めかた
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
Clrh 110827 wfho
Clrh 110827 wfhoClrh 110827 wfho
Clrh 110827 wfho
 
キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
OpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かすOpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かす
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
 
JAWS-UG コンテナ支部 #15 - Amazon ECSの開発環境を動的に管理するツールを作ってみました
JAWS-UG コンテナ支部 #15 - Amazon ECSの開発環境を動的に管理するツールを作ってみましたJAWS-UG コンテナ支部 #15 - Amazon ECSの開発環境を動的に管理するツールを作ってみました
JAWS-UG コンテナ支部 #15 - Amazon ECSの開発環境を動的に管理するツールを作ってみました
 
Apache Mesosってなに
Apache MesosってなにApache Mesosってなに
Apache Mesosってなに
 
[Serverless OpenHack Tokyo] Azure Serverless (Japanese)
[Serverless OpenHack Tokyo] Azure Serverless (Japanese)[Serverless OpenHack Tokyo] Azure Serverless (Japanese)
[Serverless OpenHack Tokyo] Azure Serverless (Japanese)
 
JAWS-UG Meets Windows (JAWS Days 2017)
JAWS-UG Meets Windows (JAWS Days 2017)JAWS-UG Meets Windows (JAWS Days 2017)
JAWS-UG Meets Windows (JAWS Days 2017)
 
Microsoft Azure 概要 (2015 年 4 月版)
Microsoft Azure 概要 (2015 年 4 月版)Microsoft Azure 概要 (2015 年 4 月版)
Microsoft Azure 概要 (2015 年 4 月版)
 
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
運用レコメンドプラッフォーム OpsBear ~運用作業における調査/分析の機械化~ OSC Enterprise 2018
 
【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記
 
Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューション
 
Ansible入門
Ansible入門Ansible入門
Ansible入門
 
JAWSUG初心者向けトラック 【Deploy&Ops】
JAWSUG初心者向けトラック 【Deploy&Ops】JAWSUG初心者向けトラック 【Deploy&Ops】
JAWSUG初心者向けトラック 【Deploy&Ops】
 

More from Tsuyoshi Ushio

ログの書き方がチームの生産性を爆上げする話
ログの書き方がチームの生産性を爆上げする話ログの書き方がチームの生産性を爆上げする話
ログの書き方がチームの生産性を爆上げする話
Tsuyoshi Ushio
 
アメリカの超巨大クラウドの 「中の人」に転生した ガチ三流プログラマが 米国システム開発の現実を リークする話
アメリカの超巨大クラウドの「中の人」に転生したガチ三流プログラマが米国システム開発の現実をリークする話アメリカの超巨大クラウドの「中の人」に転生したガチ三流プログラマが米国システム開発の現実をリークする話
アメリカの超巨大クラウドの 「中の人」に転生した ガチ三流プログラマが 米国システム開発の現実を リークする話
Tsuyoshi Ushio
 
Agile Fundamental Skill Set
Agile Fundamental Skill SetAgile Fundamental Skill Set
Agile Fundamental Skill Set
Tsuyoshi Ushio
 

More from Tsuyoshi Ushio (20)

ログの書き方がチームの生産性を爆上げする話
ログの書き方がチームの生産性を爆上げする話ログの書き方がチームの生産性を爆上げする話
ログの書き方がチームの生産性を爆上げする話
 
アメリカの超巨大クラウドの 「中の人」に転生した ガチ三流プログラマが 米国システム開発の現実を リークする話
アメリカの超巨大クラウドの「中の人」に転生したガチ三流プログラマが米国システム開発の現実をリークする話アメリカの超巨大クラウドの「中の人」に転生したガチ三流プログラマが米国システム開発の現実をリークする話
アメリカの超巨大クラウドの 「中の人」に転生した ガチ三流プログラマが 米国システム開発の現実を リークする話
 
"サーバーレス"を超越する。なぜ?から理解する Durable Functions
"サーバーレス"を超越する。なぜ?から理解する Durable Functions"サーバーレス"を超越する。なぜ?から理解する Durable Functions
"サーバーレス"を超越する。なぜ?から理解する Durable Functions
 
三年後のエンジニアがもっているとお得な資質
三年後のエンジニアがもっているとお得な資質三年後のエンジニアがもっているとお得な資質
三年後のエンジニアがもっているとお得な資質
 
ワタシハ Azure Functions チョットデキル
ワタシハ Azure Functions チョットデキルワタシハ Azure Functions チョットデキル
ワタシハ Azure Functions チョットデキル
 
Visual Studio Team Services を使った Serverless のための継続的デリバリ
Visual Studio Team Services を使った Serverless のための継続的デリバリVisual Studio Team Services を使った Serverless のための継続的デリバリ
Visual Studio Team Services を使った Serverless のための継続的デリバリ
 
Agile overview
Agile overviewAgile overview
Agile overview
 
Container microservices
Container microservicesContainer microservices
Container microservices
 
Rakuten and Microsoft talk DevOps in Real World
Rakuten and Microsoft talk DevOps in Real WorldRakuten and Microsoft talk DevOps in Real World
Rakuten and Microsoft talk DevOps in Real World
 
技術と度胸のミニワークショップ InfoQで英語学習
技術と度胸のミニワークショップ InfoQで英語学習技術と度胸のミニワークショップ InfoQで英語学習
技術と度胸のミニワークショップ InfoQで英語学習
 
英語のリズム
英語のリズム英語のリズム
英語のリズム
 
A New Business Model of Custom Software Development For Agile Software Develo...
A New Business Model of Custom Software Development For Agile Software Develo...A New Business Model of Custom Software Development For Agile Software Develo...
A New Business Model of Custom Software Development For Agile Software Develo...
 
Build Less Patterns AgileRoots 2014
Build Less Patterns AgileRoots 2014Build Less Patterns AgileRoots 2014
Build Less Patterns AgileRoots 2014
 
ITエンジニアのためのゼロから始める英語勉強法
ITエンジニアのためのゼロから始める英語勉強法ITエンジニアのためのゼロから始める英語勉強法
ITエンジニアのためのゼロから始める英語勉強法
 
Agile Fundamental Skill Set
Agile Fundamental Skill SetAgile Fundamental Skill Set
Agile Fundamental Skill Set
 
プレゼンビフォアアフタ
プレゼンビフォアアフタプレゼンビフォアアフタ
プレゼンビフォアアフタ
 
Ultimate agilisttokyo(japanese)
Ultimate agilisttokyo(japanese)Ultimate agilisttokyo(japanese)
Ultimate agilisttokyo(japanese)
 
How to be an agile programmer.
How to be an agile programmer.How to be an agile programmer.
How to be an agile programmer.
 
Ultimate agilisttokyo
Ultimate agilisttokyoUltimate agilisttokyo
Ultimate agilisttokyo
 
アジャイルツアー大阪
アジャイルツアー大阪アジャイルツアー大阪
アジャイルツアー大阪
 

Recently uploaded

Recently uploaded (7)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

Serverless の自動回復と自動化のためのアーキテクチャ

Editor's Notes

  1. Full abstraction of servers developers can just focus on their code—there are no distractions around server management, capacity planning, or availability. Instant, event-driven scalability Application components react to events and triggers in near real-time with virtually unlimited scalability; compute resources are used as needed. Pay-per-use Only pay for what you use: billing is typically calculated on the number of function calls, code execution time, and memory used.*
  2. さんかくは、線にする 処理は、右からひだりへながれる
  3. 3まいをまとめて、Queue地獄のページを作る 要素をへらさないといけない ->Queueをへらすのがおおい
  4. https://www.pakutaso.com/
  5. Imagine a scenario where I have to take the output of a Function and use it as the input to call another Function. I’ll have to coordinate the chaining manually. If I have to have a function that takes some sort of event and then parallelizes it into multiple Functions, I can still do that but how will I know when all Functions have finished executing so I can aggregate the results and move on. What if I had to listen on multiple events and aggregate their outcome to determine which specific job or function to run in my application. What if I wanted to do some kind of extended monitoring on an endpoint? For example, if I were to monitor the temperature of a remote machine and take action x if the temperature were lower than a certain threshold, else do y or run job y. What if I have an API or endpoint that was running for a long time? I know Functions are short-lived but sometimes you guys put some serious load on them. Could there be a mechanism to provide status of the execution back to the client so they’re not left hanging? And lastly, what if I wanted to get some sort of human interaction in there? For example, if I am to do some sort of 2FA in the middle of my function execution but also don’t want to wait forever because sometimes people take forever to reply especially when the texts are automated. Today, I’m going to be talking about some of these problems – how you can approach them in regular FaaS? And how they can be simplified with the technology of Durable Functions.