1. Application that fully depends on a 3rd party service
in the cloud to manage logic and state.
Multiple interpretations for Serverless
Slide 10
Slide 10 text
2. Application where some code is written by the
developer but is run in stateless compute containers
that are event-triggered, short lived and fully
managed by a 3rd party.
Multiple interpretations for Serverless
Slide 11
Slide 11 text
• Serverless is a misleading term
• Functions as a Service (FaaS) is better
“Serverless”
What is Azure Functions?
“Azure Functions is a serverless compute service that
enables you to run code on-demand without having to
explicitly provision or manage infrastructure.”
https://docs.microsoft.com/en-us/azure/azure-functions/
Slide 26
Slide 26 text
What is Azure Functions?
Slide 27
Slide 27 text
Function Anatomy: Triggers & Bindings
Input Output
Trigger
Code
1
0-n 0-n
Function
Slide 28
Slide 28 text
Function Anatomy: Function App
Input Output
Trigger
Code
Function
Function App
Settings
Slide 29
Slide 29 text
The rise of the Functions
WebJobs Functions
Slide 30
Slide 30 text
Differences with WebJobs
• Seamless integration with Azure services
• Azure Storage (Queues, Blobs)
• Service Bus (Queues, Topics)
• CosmosDB
• Event Hubs
• Webhooks
• Timer
• Consumption based pricing
• Improved automatic scaling
Slide 31
Slide 31 text
Automatic scaling
Slide 32
Slide 32 text
Azure Functions Limitations
• Max execution duration:
10 min (default 5 min)
• Available memory:
1.5 GB
Slide 33
Slide 33 text
Developing Azure Functions
Slide 34
Slide 34 text
• Function scripts
- Directly in the portal
- Visual Studio Code
• Compiled Functions
- Visual Studio 2017 with Azure Function Tools
Developing Functions
Slide 35
Slide 35 text
Demo:
Developing Function Scripts
Slide 36
Slide 36 text
Benefits of Compiled Functions:
• Enjoy the VS IDE features
• Local debugging
• Easier package management
• Configure CI/CD pipelines
• Reduce cold start time
Developing in Visual Studio
Slide 37
Slide 37 text
Demo:
Developing Compiled Functions
Slide 38
Slide 38 text
User uploads image
Image requires validation
Image needs to be analyzed
Analysis result need to be stored
Use case
Slide 39
Slide 39 text
Solution using Azure Functions & Queues
images input images to analyze
images too large
analysis results
to store
validate analyze store
blob
DB
Slide 40
Slide 40 text
Solution using Azure Functions & Queues
Upload images
images input images to analyze
images too large
analysis results
to store
validate analyze store
blob
DB
Slide 41
Slide 41 text
Solution using Azure Functions & Queues
Validate images
images input images to analyze
images too large
analysis results
to store
validate analyze store
blob
DB
Slide 42
Slide 42 text
Solution using Azure Functions & Queues
Analyze images
images input images to analyze
images too large
analysis results
to store
validate analyze store
blob
DB
Slide 43
Slide 43 text
Solution using Azure Functions & Queues
Store analysis data
images input images to analyze
images too large
analysis results
to store
validate analyze store
blob
DB
Slide 44
Slide 44 text
Solution using Azure Functions & Queues
Scope of the demo
images input images to analyze
images too large
analysis results
to store
validate analyze store
blob
DB
Slide 45
Slide 45 text
Demo:
Multiple Functions in one App
Slide 46
Slide 46 text
Demo data
Slide 47
Slide 47 text
Solution using Azure Functions & Queues
Start situation
images input images to analyze
images too large
analysis results
to store
validate analyze store
blob
DB
3
3
Slide 48
Slide 48 text
Solution using Azure Functions & Queues
End situation
images input images to analyze
images too large
analysis results
to store
validate analyze store
blob
DB
3
1
2
Slide 49
Slide 49 text
Demo:
Doing the magic
Slide 50
Slide 50 text
✓ Develop function using the Azure portal
✓ Develop function using Visual Studio
✓ Multiple functions in one Function App
✓ Microsoft Azure Storage Explorer
✓ Function App Logs
Developing Functions Demos
Slide 51
Slide 51 text
Deploying Azure Functions
Slide 52
Slide 52 text
Edit & save scripts in Portal
Publish from Visual Studio
Deploy straight from source control
Deploy from VSTS
Deploying Functions
Slide 53
Slide 53 text
Demo:
Deploying Functions
Slide 54
Slide 54 text
✓ Configure deployment using Azure Portal
✓ Configure deployment using VSTS
Deploying Functions Demos
Slide 55
Slide 55 text
Other scenarios
Slide 56
Slide 56 text
Currently you need to provide a message queue to chain
functions.
Function Chaining & Durable Functions
Slide 57
Slide 57 text
Function Chaining & Durable Functions
https://azure.github.io/azure-functions-durable-extension/
Durable Functions will use Orchestrator and Action
functions making it easier for developers to chain
functions.
Slide 58
Slide 58 text
Use Functions as Actions
Functions & Logic Apps
Slide 59
Slide 59 text
Use an API gateway to
manage your
Functions
API Gateway
Client PlaceOrder
Search
Validate
Calculate
Temp
Storage
Perm
Storage
Products
Gateway
Slide 60
Slide 60 text
No content
Slide 61
Slide 61 text
Marc Duiker
Lead Consultant
Xpirit Netherlands
@marcduiker – [email protected]
Go and discover endless possibilities
with Azure Functions!
https://github.com/marcduiker/
demos-serverless-architectures-functions/