Serverless Architecture with Azure-Functions...© Noser Engineering AG 2017, Alle Rechte...
Transcript of Serverless Architecture with Azure-Functions...© Noser Engineering AG 2017, Alle Rechte...
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
Serverless Architecture with Azure-Functions
Mark Allibone@mallibone
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 3
Mark Allibone, Head of Mobile
@mallibone
Noser Engineering AG
Ambassador
https://mallibone.com
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 4
Serverless Architecture
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 5
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 6
Service Oriented Architecture
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 7
Service Oriented Architecture
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 9
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
A Monolith
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
Monolith at scale
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 13
Microservices
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 14
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
Microservices
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
Scaling Microservices
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 17
Microservices: “SOA done right”
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
In a world without Azure…
Web App
Webserver
Server
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
In a world without Azure…
Web App
Webserver
Server
IIS
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
Web App
Azure App Service (PaaS)
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 22
No Infrastructure setup
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 23
Minimal configuration
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 24
Which service do we have to scale?
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 25
Developing and Scaling at Method Level
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 27
Azure Functions allows building scalable reactive systems without the setup hassle.
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
Demo
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
HTTPS
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
C#
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 31
Easy setup
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 32
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 33
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 34
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 35
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 36
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 37
Sharing functionality between functions
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
Demo
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
HTTPS
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 40
What about NuGet?
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 41
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 42
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 43
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 44
Building a processing pipeline
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
HTTPS
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
Demo
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
HTTPS
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
HTTPS
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 49
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 50
Developing in VS Code
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 51
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 52
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 53
Create locally
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 56
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 58
Edit
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 59
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 60
Config
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 61
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 62
Run
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 63
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 64
Visual Studio 2017 15.3 or later
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 65Origin Azure Function Docs
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 66
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 67
Local Development
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 68
Local Testing
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 69
Local Debugging
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 71
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 72
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 73
Deployment via Ctrl-C & Ctrl-V?
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 74
Push from Dev machine to Production?
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 75
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 76
Deploying Code
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 77
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 78
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 79
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 80
Publish via Git
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 81
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 82
Manage Deployments
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 83
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 84
Coding on a live environment…
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 85
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 86
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 87
Deploy from Code Repository
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
Takeaways
Azure Functions are awesome
© Noser Engineering AG 2017, Alle Rechte vorbehalten.
Takeaways
• Easy setup, minimal configuration, great scalability for simple and complex pipelines
• Develop locally in Visual Studio Code or Visual Studio
• Deploy from Git Repository Branch and Roll Back if needed
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 90
Make yourUsers Happy bycreatingresponsive appsthat scale
© Noser Engineering AG 2017, Alle Rechte vorbehalten. 91
Thank you for coming and happy coding!
@mallibone