SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
Marc Duiker
Lead Consultant @ Xpirit
Marc Duiker
Durable Functions
• Shift to Serverless
• What are orchestrations?
• Why do we need them?
• What is Durable Functions?
• Local development
• Demos
• Hello World / Hello Name
• Function chaining
• Fan-out/Fan-in
• Unit Testing
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
IaaS PaaS SaaSFaaS
+ Less maintenance
+ Pay as you go
+ More fine grained scalability
- Less control
- More moving parts
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Control flow
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Orchestration?
Orchestration is the automated arrangement, coordination, and
management of computer systems, middleware, and services.
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Durable Functions is based on
Marc Duiker
Durable Functions
Function Roles
Marc Duiker
Durable Functions
New Trigger Bindings
[OrchestrationClient] DurableOrchestrationClient
Function Role: Orchestration Starter
Marc Duiker
Durable Functions
DurableOrchestrationClient
Marc Duiker
Durable Functions
New Trigger Bindings
[OrchestrationTrigger] DurableOrchestrationContext
Function Role: Orchestration Function
Marc Duiker
Durable Functions
DurableOrchestrationContext
Marc Duiker
Durable Functions
New Trigger Bindings
[ActivityTrigger] DurableActivityContext
Function Role: Activity Function
Marc Duiker
Durable Functions
DurableActivityContext
Marc Duiker
Durable Functions
Invocations, Checkpoints & Replay
Function invocation Execution history
Marc Duiker
Durable Functions
Storage Types used by Durable Functions
Marc Duiker
Durable Functions
State is Persisted in Table Storage
Marc Duiker
Durable Functions
Considerations when using Durable Functions
- In and output of functions should be serializable.
- Orchestration Functions should be deterministic:
- DateTime.Now, use CurrentUtcDateTime
- Guid.NewGuid()
- Random generated data
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Visual Studio 2017 15.7+
- “Azure development tools” workload
- Extension: Azure Functions & Web Jobs Tools
- Azure Storage Emulator
- Azure Storage Explorer
Local development
Marc Duiker
Durable Functions
Hello World Demo!
HelloWorld HelloWorldActivityHttpStart
Marc Duiker
Durable Functions
Hello {name} Demo!
HttpStart HelloName
{name}
HelloNameActivity
{name}
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Function chaining
Marc Duiker
Durable Functions
Demo: Function Chaining
Find a Star Wars character and their home planet.
https://swapi.co/
Marc Duiker
Durable Functions
Demo: Function Chaining
HttpStart GetSwCharacterInfo SearchCharacter GetPlanet
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Fan-out/fan-in
FA1 returns a collection of items
FA2 is called for each of the items from FA1
Marc Duiker
Durable Functions
Demo: Fan-out/Fan-in
Find a Star Wars planet and their residents.
https://swapi.co/
Marc Duiker
Durable Functions
Demo: Fan-out/Fan-in
HttpStart GetSwPlanetResidents SearchPlanet GetCharacter
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
Unit Testing Demo
Testing the GetSwPlanetAndResidentials orchestration using:
• xUnit
• Moq
• AutoFixture
Marc Duiker
Durable Functions
Unit Testing
• Use DurableOrchestrationContextBase in the orchestration.
• Use serializable types with [ActivityTrigger] for the activity
input. (because DurableActivityContext can’t be
instantiated/mocked due to internal constructor  ).
Marc Duiker
Durable Functions
Marc Duiker
Durable Functions
• Orchestration Functions can only call Activity Functions in the
same Function App.
• Keep your orchestration small.
• What changes together should be deployed together.
Closing remarks
Marc Duiker
Durable Functions
GitHub: demos-azure-durable-functions
blog.marcduiker.nl
@marcduiker

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Infrastructure as Code on Azure - NET Conf CO v2018
Infrastructure as Code on Azure - NET Conf CO v2018 Infrastructure as Code on Azure - NET Conf CO v2018
Infrastructure as Code on Azure - NET Conf CO v2018
 
DatamindsConnect2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory ho...
DatamindsConnect2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory ho...DatamindsConnect2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory ho...
DatamindsConnect2019 Azure Key Vault, Azure Dev Ops and Azure Data Factory ho...
 
Introduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint DevelopersIntroduction to Azure Web Applications for Office and SharePoint Developers
Introduction to Azure Web Applications for Office and SharePoint Developers
 
Make Web, Not War - Installfest: Extend Your Web Server, Rodney Buike
Make Web, Not War - Installfest: Extend Your Web Server, Rodney BuikeMake Web, Not War - Installfest: Extend Your Web Server, Rodney Buike
Make Web, Not War - Installfest: Extend Your Web Server, Rodney Buike
 
Intro to Azure Static Web Apps
Intro to Azure Static Web AppsIntro to Azure Static Web Apps
Intro to Azure Static Web Apps
 
Azure Automation and Update Management
Azure Automation and Update ManagementAzure Automation and Update Management
Azure Automation and Update Management
 
Infrastructure as Code for Azure: ARM or Terraform?
Infrastructure as Code for Azure: ARM or Terraform?Infrastructure as Code for Azure: ARM or Terraform?
Infrastructure as Code for Azure: ARM or Terraform?
 
Running SSIS 2017 at Scale Everywhere
 Running SSIS 2017 at Scale Everywhere Running SSIS 2017 at Scale Everywhere
Running SSIS 2017 at Scale Everywhere
 
The Essentials of Building Cloud-Based Web Apps with Azure
The Essentials of Building Cloud-Based Web Apps with AzureThe Essentials of Building Cloud-Based Web Apps with Azure
The Essentials of Building Cloud-Based Web Apps with Azure
 
Campus days Azure HDInsight automation
Campus days Azure HDInsight automationCampus days Azure HDInsight automation
Campus days Azure HDInsight automation
 
Sitecore User Group - JSS & GraphQL
Sitecore User Group - JSS & GraphQLSitecore User Group - JSS & GraphQL
Sitecore User Group - JSS & GraphQL
 
Azure fundamentals 03
Azure fundamentals 03Azure fundamentals 03
Azure fundamentals 03
 
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
Migrating Customers to Microsoft Azure: Lessons Learned From the FieldMigrating Customers to Microsoft Azure: Lessons Learned From the Field
Migrating Customers to Microsoft Azure: Lessons Learned From the Field
 
Managing Azure Components Using Azure PowerShell
Managing Azure Components Using Azure PowerShellManaging Azure Components Using Azure PowerShell
Managing Azure Components Using Azure PowerShell
 
Lean Development with TFServices
Lean Development with TFServicesLean Development with TFServices
Lean Development with TFServices
 
Continuously deploy a containerized app to “Azure App Service”
Continuously deploy a containerized app to “Azure App Service”Continuously deploy a containerized app to “Azure App Service”
Continuously deploy a containerized app to “Azure App Service”
 
Azure fundamental -Introduction
Azure fundamental -IntroductionAzure fundamental -Introduction
Azure fundamental -Introduction
 
What's New for the Windows Azure Developer? Lots!!
What's New for the Windows Azure Developer?  Lots!!What's New for the Windows Azure Developer?  Lots!!
What's New for the Windows Azure Developer? Lots!!
 
Infrastructure Automation on AWS using a Real-World Customer Example - Sessio...
Infrastructure Automation on AWS using a Real-World Customer Example - Sessio...Infrastructure Automation on AWS using a Real-World Customer Example - Sessio...
Infrastructure Automation on AWS using a Real-World Customer Example - Sessio...
 
Automating Your Microsoft Azure Environment (DevLink 2014)
Automating Your Microsoft Azure Environment (DevLink 2014)Automating Your Microsoft Azure Environment (DevLink 2014)
Automating Your Microsoft Azure Environment (DevLink 2014)
 

Semelhante a Take your azure functions to the next level with durable functions @ Experts Live 2018

Apache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on KubernetesApache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
DataWorks Summit
 
Creating Scalable JVM/Java Apps on Heroku
Creating Scalable JVM/Java Apps on HerokuCreating Scalable JVM/Java Apps on Heroku
Creating Scalable JVM/Java Apps on Heroku
Joe Kutner
 
Using Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at SplunkUsing Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at Splunk
Docker, Inc.
 

Semelhante a Take your azure functions to the next level with durable functions @ Experts Live 2018 (20)

Take your Azure Functions to the next level with Durable Functions - WAZUG
Take your Azure Functions to the next level with Durable Functions - WAZUGTake your Azure Functions to the next level with Durable Functions - WAZUG
Take your Azure Functions to the next level with Durable Functions - WAZUG
 
Take your Azure Functions to the next level with Durable Functions - Serverle...
Take your Azure Functions to the next level with Durable Functions - Serverle...Take your Azure Functions to the next level with Durable Functions - Serverle...
Take your Azure Functions to the next level with Durable Functions - Serverle...
 
Orchestrate your Azure Functions with Durable Functions - AzureThursday Meetup
Orchestrate your Azure Functions with Durable Functions - AzureThursday MeetupOrchestrate your Azure Functions with Durable Functions - AzureThursday Meetup
Orchestrate your Azure Functions with Durable Functions - AzureThursday Meetup
 
Put Your Web App on a Diet with Azure Functions
Put Your Web App on a Diet with Azure FunctionsPut Your Web App on a Diet with Azure Functions
Put Your Web App on a Diet with Azure Functions
 
JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)JavaFX Enterprise (JavaOne 2014)
JavaFX Enterprise (JavaOne 2014)
 
Troubleshooting tips from docker support engineers
Troubleshooting tips from docker support engineersTroubleshooting tips from docker support engineers
Troubleshooting tips from docker support engineers
 
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
J1 2015 "Debugging Java Apps in Containers: No Heavy Welding Gear Required"
 
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on KubernetesApache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
 
CDK Meetup: Rule the World through IaC
CDK Meetup: Rule the World through IaCCDK Meetup: Rule the World through IaC
CDK Meetup: Rule the World through IaC
 
Creating Scalable JVM/Java Apps on Heroku
Creating Scalable JVM/Java Apps on HerokuCreating Scalable JVM/Java Apps on Heroku
Creating Scalable JVM/Java Apps on Heroku
 
Using Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at SplunkUsing Docker EE to Scale Operational Intelligence at Splunk
Using Docker EE to Scale Operational Intelligence at Splunk
 
Kerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit eastKerberizing spark. Spark Summit east
Kerberizing spark. Spark Summit east
 
How (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaSHow (and why) to roll your own Docker SaaS
How (and why) to roll your own Docker SaaS
 
Iron.io Technical Overview
Iron.io Technical OverviewIron.io Technical Overview
Iron.io Technical Overview
 
Dropwizard Introduction
Dropwizard IntroductionDropwizard Introduction
Dropwizard Introduction
 
DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline  DCSF 19 Building Your Development Pipeline
DCSF 19 Building Your Development Pipeline
 
Cloud Native Serverless Java — Orkhan Gasimov
Cloud Native Serverless Java — Orkhan GasimovCloud Native Serverless Java — Orkhan Gasimov
Cloud Native Serverless Java — Orkhan Gasimov
 
The age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster managementThe age of orchestration: from Docker basics to cluster management
The age of orchestration: from Docker basics to cluster management
 
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
 
Better Operations into the Cloud
Better Operations  into the CloudBetter Operations  into the Cloud
Better Operations into the Cloud
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

Take your azure functions to the next level with durable functions @ Experts Live 2018