SlideShare a Scribd company logo
1 of 32
Download to read offline
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

What's hot

What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...
What Is Ansible? | How Ansible Works? | Ansible Tutorial For Beginners | DevO...Simplilearn
 
Running OpenStack and Midonet - Nobuyuki Tamaoki, Virtual Tech Japan
Running OpenStack and Midonet - Nobuyuki Tamaoki, Virtual Tech JapanRunning OpenStack and Midonet - Nobuyuki Tamaoki, Virtual Tech Japan
Running OpenStack and Midonet - Nobuyuki Tamaoki, Virtual Tech JapanMidoNet
 
Monitoring and tuning your chef server - chef conf talk
Monitoring and tuning your chef server - chef conf talk Monitoring and tuning your chef server - chef conf talk
Monitoring and tuning your chef server - chef conf talk Andrew DuFour
 
Running OpenStack + MidoNet (Using Orizuru)
Running OpenStack + MidoNet (Using Orizuru)Running OpenStack + MidoNet (Using Orizuru)
Running OpenStack + MidoNet (Using Orizuru)VirtualTech Japan Inc.
 
Install Kubernetes Cluster on Azure Platform using kubespray
Install Kubernetes Cluster on Azure Platform using kubesprayInstall Kubernetes Cluster on Azure Platform using kubespray
Install Kubernetes Cluster on Azure Platform using kubesprayVAIBHAV GUPTA
 
Infrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & AnsibleInfrastructure Automation with Chef & Ansible
Infrastructure Automation with Chef & Ansiblewajrcs
 
Nike pop up habitat
Nike pop up   habitatNike pop up   habitat
Nike pop up habitatChef
 
Azure virtual machine-network
Azure virtual machine-networkAzure virtual machine-network
Azure virtual machine-networkThi Nguyen Dinh
 
Chef - Infrastructure Automation for the Masses
Chef - Infrastructure Automation for the Masses�Chef - Infrastructure Automation for the Masses�
Chef - Infrastructure Automation for the MassesSai Perchard
 
Splunk: Forward me the REST of those shells
Splunk: Forward me the REST of those shellsSplunk: Forward me the REST of those shells
Splunk: Forward me the REST of those shellsAnthony D Hendricks
 
Ansible Introduction
Ansible Introduction Ansible Introduction
Ansible Introduction Robert Reiz
 
Packer, Terraform, Ansible avec Azure
Packer, Terraform, Ansible avec AzurePacker, Terraform, Ansible avec Azure
Packer, Terraform, Ansible avec AzureAZUG FR
 
AWSインフラのコード化にトライしてみて
AWSインフラのコード化にトライしてみてAWSインフラのコード化にトライしてみて
AWSインフラのコード化にトライしてみてdaisuke awaji
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as codedaisuke awaji
 
London Community Summit - Habitat 2016
London Community Summit - Habitat 2016London Community Summit - Habitat 2016
London Community Summit - Habitat 2016Sarah Richards
 
Continuous Testing with Molecule, Ansible, and GitHub Actions
Continuous Testing with Molecule, Ansible, and GitHub ActionsContinuous Testing with Molecule, Ansible, and GitHub Actions
Continuous Testing with Molecule, Ansible, and GitHub ActionsJeff Geerling
 
Windows PowerShell Basics – How To Create powershell for loop
Windows PowerShell Basics – How To Create powershell for loopWindows PowerShell Basics – How To Create powershell for loop
Windows PowerShell Basics – How To Create powershell for loopVCP Muthukrishna
 

What's hot (20)

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

Similar to FaaS by Microsoft: Azure Functions and Azure Durable Functions

[SOT322] Serverless Side-by-Side Extensions with Azure Durable Functions - Wh...
[SOT322] Serverless Side-by-Side Extensions with Azure Durable Functions - Wh...[SOT322] Serverless Side-by-Side Extensions with Azure Durable Functions - Wh...
[SOT322] Serverless Side-by-Side Extensions with Azure Durable Functions - Wh...Christian Lechner
 
Serverless side by-side extensions with Azure Durable Functions
Serverless side by-side extensions with Azure Durable FunctionsServerless side by-side extensions with Azure Durable Functions
Serverless side by-side extensions with Azure Durable FunctionsChristian Lechner
 
Building workflow solution with Microsoft Azure and Cloud | Integration Monday
Building workflow solution with Microsoft Azure and Cloud | Integration MondayBuilding workflow solution with Microsoft Azure and Cloud | Integration Monday
Building workflow solution with Microsoft Azure and Cloud | Integration MondayBizTalk360
 
Integration-Monday-Stateful-Programming-Models-Serverless-Functions
Integration-Monday-Stateful-Programming-Models-Serverless-FunctionsIntegration-Monday-Stateful-Programming-Models-Serverless-Functions
Integration-Monday-Stateful-Programming-Models-Serverless-FunctionsBizTalk360
 
Building stateful serverless orchestrations with Azure Durable Azure Function...
Building stateful serverless orchestrations with Azure Durable Azure Function...Building stateful serverless orchestrations with Azure Durable Azure Function...
Building stateful serverless orchestrations with Azure Durable Azure Function...Callon Campbell
 
Develop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverlessDevelop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverlessLalit Kale
 
Sitecore on Azure
Sitecore on AzureSitecore on Azure
Sitecore on AzureClearPeople
 
Deep Dive Azure Functions - Global Azure Bootcamp 2019
Deep Dive Azure Functions - Global Azure Bootcamp 2019Deep Dive Azure Functions - Global Azure Bootcamp 2019
Deep Dive Azure Functions - Global Azure Bootcamp 2019Andrea Tosato
 
[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade Serverless[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade ServerlessKatyShimizu
 
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade ServerlessKatyShimizu
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapPatrick Chanezon
 
Exploring Clojurescript
Exploring ClojurescriptExploring Clojurescript
Exploring ClojurescriptLuke Donnet
 
How NOT to write in Node.js
How NOT to write in Node.jsHow NOT to write in Node.js
How NOT to write in Node.jsPiotr Pelczar
 
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...Sencha
 
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイド
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイドAzure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイド
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイドYoichi Kawasaki
 
Meteor Boulder meetup #1
Meteor Boulder meetup #1Meteor Boulder meetup #1
Meteor Boulder meetup #1Robert Dickert
 
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry MeetupIntro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry MeetupJosh Ghiloni
 
DjangoCon 2010 Scaling Disqus
DjangoCon 2010 Scaling DisqusDjangoCon 2010 Scaling Disqus
DjangoCon 2010 Scaling Disquszeeg
 
Testing NodeJS with Mocha, Should, Sinon, and JSCoverage
Testing NodeJS with Mocha, Should, Sinon, and JSCoverageTesting NodeJS with Mocha, Should, Sinon, and JSCoverage
Testing NodeJS with Mocha, Should, Sinon, and JSCoveragemlilley
 
Q con shanghai2013-[黄舒泉]-[intel it openstack practice]
Q con shanghai2013-[黄舒泉]-[intel it openstack practice]Q con shanghai2013-[黄舒泉]-[intel it openstack practice]
Q con shanghai2013-[黄舒泉]-[intel it openstack practice]Michael Zhang
 

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

[SOT322] Serverless Side-by-Side Extensions with Azure Durable Functions - Wh...
[SOT322] Serverless Side-by-Side Extensions with Azure Durable Functions - Wh...[SOT322] Serverless Side-by-Side Extensions with Azure Durable Functions - Wh...
[SOT322] Serverless Side-by-Side Extensions with Azure Durable Functions - Wh...
 
Serverless side by-side extensions with Azure Durable Functions
Serverless side by-side extensions with Azure Durable FunctionsServerless side by-side extensions with Azure Durable Functions
Serverless side by-side extensions with Azure Durable Functions
 
Building workflow solution with Microsoft Azure and Cloud | Integration Monday
Building workflow solution with Microsoft Azure and Cloud | Integration MondayBuilding workflow solution with Microsoft Azure and Cloud | Integration Monday
Building workflow solution with Microsoft Azure and Cloud | Integration Monday
 
Integration-Monday-Stateful-Programming-Models-Serverless-Functions
Integration-Monday-Stateful-Programming-Models-Serverless-FunctionsIntegration-Monday-Stateful-Programming-Models-Serverless-Functions
Integration-Monday-Stateful-Programming-Models-Serverless-Functions
 
Building stateful serverless orchestrations with Azure Durable Azure Function...
Building stateful serverless orchestrations with Azure Durable Azure Function...Building stateful serverless orchestrations with Azure Durable Azure Function...
Building stateful serverless orchestrations with Azure Durable Azure Function...
 
Develop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverlessDevelop in ludicrous mode with azure serverless
Develop in ludicrous mode with azure serverless
 
Sitecore on Azure
Sitecore on AzureSitecore on Azure
Sitecore on Azure
 
Deep Dive Azure Functions - Global Azure Bootcamp 2019
Deep Dive Azure Functions - Global Azure Bootcamp 2019Deep Dive Azure Functions - Global Azure Bootcamp 2019
Deep Dive Azure Functions - Global Azure Bootcamp 2019
 
[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade Serverless[NDC 2019] Enterprise-Grade Serverless
[NDC 2019] Enterprise-Grade Serverless
 
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 
Exploring Clojurescript
Exploring ClojurescriptExploring Clojurescript
Exploring Clojurescript
 
How NOT to write in Node.js
How NOT to write in Node.jsHow NOT to write in Node.js
How NOT to write in Node.js
 
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
SenchaCon 2016: Building a Faceted Catalog of Video Game Assets Using Ext JS ...
 
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイド
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイドAzure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイド
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイド
 
Meteor Boulder meetup #1
Meteor Boulder meetup #1Meteor Boulder meetup #1
Meteor Boulder meetup #1
 
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry MeetupIntro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
Intro to Spring Boot and Spring Cloud OSS - Twin Cities Cloud Foundry Meetup
 
DjangoCon 2010 Scaling Disqus
DjangoCon 2010 Scaling DisqusDjangoCon 2010 Scaling Disqus
DjangoCon 2010 Scaling Disqus
 
Testing NodeJS with Mocha, Should, Sinon, and JSCoverage
Testing NodeJS with Mocha, Should, Sinon, and JSCoverageTesting NodeJS with Mocha, Should, Sinon, and JSCoverage
Testing NodeJS with Mocha, Should, Sinon, and JSCoverage
 
Q con shanghai2013-[黄舒泉]-[intel it openstack practice]
Q con shanghai2013-[黄舒泉]-[intel it openstack practice]Q con shanghai2013-[黄舒泉]-[intel it openstack practice]
Q con shanghai2013-[黄舒泉]-[intel it openstack practice]
 

More from Christian Lechner

Serverless and SAP … Oh Behave
Serverless and SAP … Oh BehaveServerless and SAP … Oh Behave
Serverless and SAP … Oh BehaveChristian Lechner
 
SAP Embrace - A Look behind the curtains (by minnosphere)
SAP Embrace - A Look behind the curtains (by minnosphere)SAP Embrace - A Look behind the curtains (by minnosphere)
SAP Embrace - A Look behind the curtains (by minnosphere)Christian Lechner
 
SAP Inside Track Hamburg 2019 - Side-by-Side Extensibility with Microsoft Azure
SAP Inside Track Hamburg 2019 - Side-by-Side Extensibility with Microsoft Azure SAP Inside Track Hamburg 2019 - Side-by-Side Extensibility with Microsoft Azure
SAP Inside Track Hamburg 2019 - Side-by-Side Extensibility with Microsoft Azure Christian Lechner
 
Side-by-Side Extensibility with Microsoft Azure
Side-by-Side Extensibility with Microsoft AzureSide-by-Side Extensibility with Microsoft Azure
Side-by-Side Extensibility with Microsoft AzureChristian Lechner
 
SAP Inside Track 2018 - "Quidquid agis, prudenter agas ..." - Learnings from ...
SAP Inside Track 2018 - "Quidquid agis, prudenter agas ..." - Learnings from ...SAP Inside Track 2018 - "Quidquid agis, prudenter agas ..." - Learnings from ...
SAP Inside Track 2018 - "Quidquid agis, prudenter agas ..." - Learnings from ...Christian Lechner
 
NET53494 Extensions in the Age of S/4HANA
NET53494  Extensions in the Age of S/4HANANET53494  Extensions in the Age of S/4HANA
NET53494 Extensions in the Age of S/4HANAChristian Lechner
 
ABAP Development in time of S/4 - Do's and Don'ts and Golden Rules for Simpli...
ABAP Development in time of S/4 - Do's and Don'ts and Golden Rules for Simpli...ABAP Development in time of S/4 - Do's and Don'ts and Golden Rules for Simpli...
ABAP Development in time of S/4 - Do's and Don'ts and Golden Rules for Simpli...Christian Lechner
 
SAP Inside Track Munich 2016 - SAP HANA Cloud Platform
SAP Inside Track Munich 2016 - SAP HANA Cloud Platform SAP Inside Track Munich 2016 - SAP HANA Cloud Platform
SAP Inside Track Munich 2016 - SAP HANA Cloud Platform Christian Lechner
 

More from Christian Lechner (10)

Serverless and SAP … Oh Behave
Serverless and SAP … Oh BehaveServerless and SAP … Oh Behave
Serverless and SAP … Oh Behave
 
SAP Embrace - A Look behind the curtains (by minnosphere)
SAP Embrace - A Look behind the curtains (by minnosphere)SAP Embrace - A Look behind the curtains (by minnosphere)
SAP Embrace - A Look behind the curtains (by minnosphere)
 
SAP Inside Track Hamburg 2019 - Side-by-Side Extensibility with Microsoft Azure
SAP Inside Track Hamburg 2019 - Side-by-Side Extensibility with Microsoft Azure SAP Inside Track Hamburg 2019 - Side-by-Side Extensibility with Microsoft Azure
SAP Inside Track Hamburg 2019 - Side-by-Side Extensibility with Microsoft Azure
 
Side-by-Side Extensibility with Microsoft Azure
Side-by-Side Extensibility with Microsoft AzureSide-by-Side Extensibility with Microsoft Azure
Side-by-Side Extensibility with Microsoft Azure
 
SAP Inside Track 2018 - "Quidquid agis, prudenter agas ..." - Learnings from ...
SAP Inside Track 2018 - "Quidquid agis, prudenter agas ..." - Learnings from ...SAP Inside Track 2018 - "Quidquid agis, prudenter agas ..." - Learnings from ...
SAP Inside Track 2018 - "Quidquid agis, prudenter agas ..." - Learnings from ...
 
NET53494 Extensions in the Age of S/4HANA
NET53494  Extensions in the Age of S/4HANANET53494  Extensions in the Age of S/4HANA
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...
ABAP Development in time of S/4 - Do's and Don'ts and Golden Rules for Simpli...ABAP Development in time of S/4 - Do's and Don'ts and Golden Rules for Simpli...
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
SAP Inside Track Munich 2016 - SAP HANA Cloud Platform SAP Inside Track Munich 2016 - SAP HANA Cloud Platform
SAP Inside Track Munich 2016 - SAP HANA Cloud Platform
 
Text Analysis with SAP HANA
Text Analysis with SAP HANAText Analysis with SAP HANA
Text Analysis with SAP HANA
 
sitFRA_ BRFplus_TheAPIWay
sitFRA_ BRFplus_TheAPIWaysitFRA_ BRFplus_TheAPIWay
sitFRA_ BRFplus_TheAPIWay
 

Recently uploaded

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

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