SlideShare a Scribd company logo
Azure Functions
Agenda
• Why Serverless?
• Azure Functions 101
• FaaS vs. “Reality”
• Azure Durable Functions
About me
• Software Development since 2005
• Focus Topics: Extensibility, Cloud Native Development,
Serverless
• @lechnerc77
• www.linkedin.com/in/christian-lechner-963b7017
Why Serverless?StackAbstraction
Focus on Business Logic
Virtual Machines
Serverless
Containers
• Fully managed services
• Flexible scaling
• Only pay for what you use
• Seamless integration
• Enhanced productivity
What FaaS offerings do you know/use?
Go to www.menti.com
Code: 36 93 46
What does Microsoft bring
to the table?
Azure Functions
Azure Functions - Prerequisites
• Step 1: Install Node.JS (LTS) - https://nodejs.org/en/
• Step 2: Install Microsoft Visual Studio Code
https://code.visualstudio.com/
• Step 3: Install Azure Core Tools
npm install -g azure-functions-core-tools@3
• Step 4: Azure Functions extension - via Visual Studio Code Marketplace
https://marketplace.visualstudio.com/items?itemName=ms-
azuretools.vscode-azurefunctions
Azure Functions 101
How to deal with Business
Processes and FaaS?
FaaS - Principles
• Functions must be stateless
• Functions should not call other functions
• Functions should do only one thing
• BUT: Business Processes need state
Function Chaining to achieve State
• Queues are a necessary evil
• Context must be stored in a DB
• Unclear relation between functions
• Error handling becomes very complex
Function 1 Function 2 Function 3
Durable Functions for the Rescue
• Extension to the Azure Functions Framework
• Preserves local state via Event Sourcing
• Heavy work happens behind the curtain
• Supports you in front of the curtain with additional features
Tasks in orchestrator
1. let x = await ctx.CallActivityAsync(“F1”)
2. let y = await ctx.CallActivityAsync(“F2”, x)
3. return await ctx.CallActivityAsync(“F3”, y)
Tasks in orchestrator
1. let x = await ctx.CallActivityAsync(“F1”)
2. let y = await ctx.CallActivityAsync(“F2”, x)
3. return await ctx.CallActivityAsync(“F3”, y)
Trigger
Orchestrator
Activity
Tasks in orchestrator
1. let x = await ctx.CallActivityAsync(“F1”)
2. let y = await ctx.CallActivityAsync(“F2”, x)
3. return await ctx.CallActivityAsync(“F3”, y)
Trigger
Orchestrator
Activity
Tasks in orchestrator
1. let x = await ctx.CallActivityAsync(“F1”)
2. let y = await ctx.CallActivityAsync(“F2”, x)
3. return await ctx.CallActivityAsync(“F3”, y)
Trigger
Orchestrator
Activity
Tasks in orchestrator
1. let x = await ctx.CallActivityAsync(“F1”)
2. let y = await ctx.CallActivityAsync(“F2”, x)
3. return await ctx.CallActivityAsync(“F3”, y)
Trigger
Orchestrator
Activity
Tasks in orchestrator
1. let x = await ctx.CallActivityAsync(“F1”)
2. let y = await ctx.CallActivityAsync(“F2”, x)
3. return await ctx.CallActivityAsync(“F3”, y)
Trigger
Orchestrator
Activity
Tasks in orchestrator
1. let x = await ctx.CallActivityAsync(“F1”)
2. let y = await ctx.CallActivityAsync(“F2”, x)
3. return await ctx.CallActivityAsync(“F3”, y)
Trigger
Orchestrator
Activity
Tasks in orchestrator
1. let x = await ctx.CallActivityAsync(“F1”)
2. let y = await ctx.CallActivityAsync(“F2”, x)
3. return await ctx.CallActivityAsync(“F3”, y)
Trigger
Activity
In one Picture …
Azure Durable Functions - Prerequistes
• Step 1 – Install Azure Durable Functions Extension
(npm install durable-functions)
• Step 2 – Install Microsoft Azure Storage Emulator
(https://github.com/MicrosoftDocs/azure-
docs/blob/master/articles/storage/common/storage-use-
emulator.md)
• Optional: Microsoft Azure Storage Explorer
(https://azure.microsoft.com/en-us/features/storage-explorer/)
Azure Durable Functions 101
Challenge
Handle Errors in Activity Calls (Retry)
Orchestrator
Activity 1 Activity 2
SAP Cloud Applications
Challenge
Handle Timeouts in Activity Calls
Orchestrator
Activity 1 Activity 2
SAP Cloud Applications
Race Condition
Wrap Up – Azure Functions …
• … are cool ☺
• … have a low entry barrier due to local development options
• … allow modelling of complex scenarios without losing the benefits of FaaS
via Durable Functions
• … have even more (like Durable Entities)
• … just wait for you to try them
Thanks For Your Attention!
Q: Is there a lock-in to Microsoft Azure
A: No Azure Functions are Open Source as are Durable Functions
You can put them into a container and deploy them to docker
(supported by the func CLI)
If you deploy to Kubernetes – take a look at KEDA (https://keda.sh/)
Q: What about Cold Starts?
A: In general the Azure Team tries to reduce the cold start time
You can mitigate it via (more expensive consumption plans)
Q: What if my preferred language is not
supported?
A: You can implement Custom Handlers.
See also: https://github.com/Azure-Samples/functions-custom-
handlers
Q: I need a binding that is not supported
A: You can create your own bindings via so called custom bindings

More Related Content

PDF
Making Spinnaker Go @ Stitch Fix
PDF
Masterless Puppet Using AWS S3 Buckets and IAM Roles
PDF
How To Create EC2 instance Linux Server
PDF
Leveraging Ansible for CI/CD
DOCX
How to Configure Amazon AWS EC2 Elastic IP Address
ODP
Deploying Rails App On Ec2
PPTX
Spinnaker for Azure
PPTX
Hands on ansible
Making Spinnaker Go @ Stitch Fix
Masterless Puppet Using AWS S3 Buckets and IAM Roles
How To Create EC2 instance Linux Server
Leveraging Ansible for CI/CD
How to Configure Amazon AWS EC2 Elastic IP Address
Deploying Rails App On Ec2
Spinnaker for Azure
Hands on ansible

What's hot (19)

PPTX
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
PPTX
Running OpenStack and Midonet - Nobuyuki Tamaoki, Virtual Tech Japan
PPTX
Monitoring and tuning your chef server - chef conf talk
PPTX
Running OpenStack + MidoNet (Using Orizuru)
PDF
Ansible
DOCX
Install Kubernetes Cluster on Azure Platform using kubespray
PPTX
Infrastructure Automation with Chef & Ansible
PDF
Nike pop up habitat
PPTX
Azure virtual machine-network
PPTX
Splunk: Forward me the REST of those shells
PDF
Ansible Introduction
PPTX
Packer, Terraform, Ansible avec Azure
PDF
AWSインフラのコード化にトライしてみて
PPTX
Scu 2014 pdt final
PDF
Infrastructure as code
PPTX
London Community Summit - Habitat 2016
PDF
Continuous Testing with Molecule, Ansible, and GitHub Actions
PDF
Docker Birtday #5
PDF
Windows PowerShell Basics – How To Create powershell for loop
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
Running OpenStack and Midonet - Nobuyuki Tamaoki, Virtual Tech Japan
Monitoring and tuning your chef server - chef conf talk
Running OpenStack + MidoNet (Using Orizuru)
Ansible
Install Kubernetes Cluster on Azure Platform using kubespray
Infrastructure Automation with Chef & Ansible
Nike pop up habitat
Azure virtual machine-network
Splunk: Forward me the REST of those shells
Ansible Introduction
Packer, Terraform, Ansible avec Azure
AWSインフラのコード化にトライしてみて
Scu 2014 pdt final
Infrastructure as code
London Community Summit - Habitat 2016
Continuous Testing with Molecule, Ansible, and GitHub Actions
Docker Birtday #5
Windows PowerShell Basics – How To Create powershell for loop
Ad

Similar to FaaS by Microsoft: Azure Functions and Azure Durable Functions (20)

PPTX
ServerLess by usama Azure fuctions.pptx
PDF
Azure Durable Functions (2019-04-27)
PDF
Azure Durable Functions (2019-03-30)
PPTX
Develop in ludicrous mode with azure serverless
PDF
Azure functions
PPTX
Azure Functions in Action #CodePaLOUsa
PPTX
Serverless Orchestration with Azure Durable Functions
PPTX
[NDC 2019] Enterprise-Grade Serverless
PPTX
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
PPTX
Azure Function Workflow
PDF
Getting Started with Serverless Architectures using Azure Functions
PDF
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイド
PPTX
Azure full
PPTX
Azure Functions & Serverless Computing
PDF
[SOT322] Serverless Side-by-Side Extensions with Azure Durable Functions - Wh...
PPTX
Introduction to Azure Functions
PPTX
Azure Functions 101
PPTX
Azure Functions.pptx
PPTX
Azure functions serverless
PPTX
Durable Functions
ServerLess by usama Azure fuctions.pptx
Azure Durable Functions (2019-04-27)
Azure Durable Functions (2019-03-30)
Develop in ludicrous mode with azure serverless
Azure functions
Azure Functions in Action #CodePaLOUsa
Serverless Orchestration with Azure Durable Functions
[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
Azure Function Workflow
Getting Started with Serverless Architectures using Azure Functions
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイド
Azure full
Azure Functions & Serverless Computing
[SOT322] Serverless Side-by-Side Extensions with Azure Durable Functions - Wh...
Introduction to Azure Functions
Azure Functions 101
Azure Functions.pptx
Azure functions serverless
Durable Functions
Ad

More from Christian Lechner (11)

PDF
Serverless and SAP … Oh Behave
PDF
Serverless side by-side extensions with Azure Durable Functions
PDF
SAP Embrace - A Look behind the curtains (by minnosphere)
PDF
SAP Inside Track Hamburg 2019 - Side-by-Side Extensibility with Microsoft Azure
PDF
Side-by-Side Extensibility with Microsoft Azure
PPTX
SAP Inside Track 2018 - "Quidquid agis, prudenter agas ..." - Learnings from ...
PDF
NET53494 Extensions in the Age of S/4HANA
PDF
ABAP Development in time of S/4 - Do's and Don'ts and Golden Rules for Simpli...
PDF
SAP Inside Track Munich 2016 - SAP HANA Cloud Platform
PPTX
Text Analysis with SAP HANA
PDF
sitFRA_ BRFplus_TheAPIWay
Serverless and SAP … Oh Behave
Serverless side by-side extensions with Azure Durable Functions
SAP Embrace - A Look behind the curtains (by minnosphere)
SAP Inside Track Hamburg 2019 - Side-by-Side Extensibility with Microsoft Azure
Side-by-Side Extensibility with Microsoft Azure
SAP Inside Track 2018 - "Quidquid agis, prudenter agas ..." - Learnings from ...
NET53494 Extensions in the Age of S/4HANA
ABAP Development in time of S/4 - Do's and Don'ts and Golden Rules for Simpli...
SAP Inside Track Munich 2016 - SAP HANA Cloud Platform
Text Analysis with SAP HANA
sitFRA_ BRFplus_TheAPIWay

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Cloud computing and distributed systems.
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Electronic commerce courselecture one. Pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
cuic standard and advanced reporting.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Reach Out and Touch Someone: Haptics and Empathic Computing
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
NewMind AI Weekly Chronicles - August'25 Week I
The AUB Centre for AI in Media Proposal.docx
20250228 LYD VKU AI Blended-Learning.pptx
Cloud computing and distributed systems.
The Rise and Fall of 3GPP – Time for a Sabbatical?
Spectral efficient network and resource selection model in 5G networks
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Electronic commerce courselecture one. Pdf
Network Security Unit 5.pdf for BCA BBA.
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Review of recent advances in non-invasive hemoglobin estimation
cuic standard and advanced reporting.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

FaaS by Microsoft: Azure Functions and Azure Durable Functions

  • 2. Agenda • Why Serverless? • Azure Functions 101 • FaaS vs. “Reality” • Azure Durable Functions
  • 3. About me • Software Development since 2005 • Focus Topics: Extensibility, Cloud Native Development, Serverless • @lechnerc77 • www.linkedin.com/in/christian-lechner-963b7017
  • 4. Why Serverless?StackAbstraction Focus on Business Logic Virtual Machines Serverless Containers • Fully managed services • Flexible scaling • Only pay for what you use • Seamless integration • Enhanced productivity
  • 5. What FaaS offerings do you know/use? Go to www.menti.com Code: 36 93 46
  • 6. What does Microsoft bring to the table?
  • 8. Azure Functions - Prerequisites • Step 1: Install Node.JS (LTS) - https://nodejs.org/en/ • Step 2: Install Microsoft Visual Studio Code https://code.visualstudio.com/ • Step 3: Install Azure Core Tools npm install -g azure-functions-core-tools@3 • Step 4: Azure Functions extension - via Visual Studio Code Marketplace https://marketplace.visualstudio.com/items?itemName=ms- azuretools.vscode-azurefunctions
  • 10. How to deal with Business Processes and FaaS?
  • 11. FaaS - Principles • Functions must be stateless • Functions should not call other functions • Functions should do only one thing • BUT: Business Processes need state
  • 12. Function Chaining to achieve State • Queues are a necessary evil • Context must be stored in a DB • Unclear relation between functions • Error handling becomes very complex Function 1 Function 2 Function 3
  • 13. Durable Functions for the Rescue • Extension to the Azure Functions Framework • Preserves local state via Event Sourcing • Heavy work happens behind the curtain • Supports you in front of the curtain with additional features
  • 14. Tasks in orchestrator 1. let x = await ctx.CallActivityAsync(“F1”) 2. let y = await ctx.CallActivityAsync(“F2”, x) 3. return await ctx.CallActivityAsync(“F3”, y)
  • 15. Tasks in orchestrator 1. let x = await ctx.CallActivityAsync(“F1”) 2. let y = await ctx.CallActivityAsync(“F2”, x) 3. return await ctx.CallActivityAsync(“F3”, y) Trigger Orchestrator Activity
  • 16. Tasks in orchestrator 1. let x = await ctx.CallActivityAsync(“F1”) 2. let y = await ctx.CallActivityAsync(“F2”, x) 3. return await ctx.CallActivityAsync(“F3”, y) Trigger Orchestrator Activity
  • 17. Tasks in orchestrator 1. let x = await ctx.CallActivityAsync(“F1”) 2. let y = await ctx.CallActivityAsync(“F2”, x) 3. return await ctx.CallActivityAsync(“F3”, y) Trigger Orchestrator Activity
  • 18. Tasks in orchestrator 1. let x = await ctx.CallActivityAsync(“F1”) 2. let y = await ctx.CallActivityAsync(“F2”, x) 3. return await ctx.CallActivityAsync(“F3”, y) Trigger Orchestrator Activity
  • 19. Tasks in orchestrator 1. let x = await ctx.CallActivityAsync(“F1”) 2. let y = await ctx.CallActivityAsync(“F2”, x) 3. return await ctx.CallActivityAsync(“F3”, y) Trigger Orchestrator Activity
  • 20. Tasks in orchestrator 1. let x = await ctx.CallActivityAsync(“F1”) 2. let y = await ctx.CallActivityAsync(“F2”, x) 3. return await ctx.CallActivityAsync(“F3”, y) Trigger Orchestrator Activity
  • 21. Tasks in orchestrator 1. let x = await ctx.CallActivityAsync(“F1”) 2. let y = await ctx.CallActivityAsync(“F2”, x) 3. return await ctx.CallActivityAsync(“F3”, y) Trigger Activity
  • 23. Azure Durable Functions - Prerequistes • Step 1 – Install Azure Durable Functions Extension (npm install durable-functions) • Step 2 – Install Microsoft Azure Storage Emulator (https://github.com/MicrosoftDocs/azure- docs/blob/master/articles/storage/common/storage-use- emulator.md) • Optional: Microsoft Azure Storage Explorer (https://azure.microsoft.com/en-us/features/storage-explorer/)
  • 25. Challenge Handle Errors in Activity Calls (Retry) Orchestrator Activity 1 Activity 2 SAP Cloud Applications
  • 26. Challenge Handle Timeouts in Activity Calls Orchestrator Activity 1 Activity 2 SAP Cloud Applications Race Condition
  • 27. Wrap Up – Azure Functions … • … are cool ☺ • … have a low entry barrier due to local development options • … allow modelling of complex scenarios without losing the benefits of FaaS via Durable Functions • … have even more (like Durable Entities) • … just wait for you to try them
  • 28. Thanks For Your Attention!
  • 29. Q: Is there a lock-in to Microsoft Azure A: No Azure Functions are Open Source as are Durable Functions You can put them into a container and deploy them to docker (supported by the func CLI) If you deploy to Kubernetes – take a look at KEDA (https://keda.sh/)
  • 30. Q: What about Cold Starts? A: In general the Azure Team tries to reduce the cold start time You can mitigate it via (more expensive consumption plans)
  • 31. Q: What if my preferred language is not supported? A: You can implement Custom Handlers. See also: https://github.com/Azure-Samples/functions-custom- handlers
  • 32. Q: I need a binding that is not supported A: You can create your own bindings via so called custom bindings