SlideShare a Scribd company logo
Moving from App Services to Azure Functions
A story of how we increased our throughput on Azure
1
Michelangelo van Dam
Co-founder/CEO In2it
PHP Community Leader
Open source contributor
CoderDojo Coach
MVP Azure
Moving	from	App	Services	to	Azure	Func5ons 2
How we did things in “the old days”
Bare metal servers in local DC
Optional virtualisation
Manual deployments
Releases after office hours
Moving	from	App	Services	to	Azure	Func5ons 3
Moving	from	App	Services	to	Azure	Func5ons 4
Web App
MySQL DB Redis Cache
Shared FS
Release drama
Broken packages
De-sync between staging and
production servers
Network issues
Hardware issues
Moving	from	App	Services	to	Azure	Func5ons 5
We needed better solutions!
Moving	from	App	Services	to	Azure	Func5ons 6
Discovery of the cloud in 2006
Moving	from	App	Services	to	Azure	Func5ons 7
It worked out initially…
VM’s for test, staging and production that were equal
Storage on S3
Moving	from	App	Services	to	Azure	Func5ons 8
Moving	from	App	Services	to	Azure	Func5ons 9
AWS	Cloud
S3
EC2
S3	-	Bucket
… but we encountered some cons
No cloud native database support
Very pricy for the services provided
Still lots of maintenance to keep our VM’s up-to-date
Moving	from	App	Services	to	Azure	Func5ons 10
Managed services
Infrastructure support for
Java, .Net and Ruby
Very costly on top of expensive
AWS bills
Lots of restrictions on what was
possible
Moving	from	App	Services	to	Azure	Func5ons 11
We needed better solutions!
Moving	from	App	Services	to	Azure	Func5ons 12
2008
Windows Azure intro by Josh
Holmes at MS Belux
Moving	from	App	Services	to	Azure	Func5ons 13
Windows Azure was what we needed!
Platform as a Service
You manage your app
Microsoft takes care of the platform and infrastructure
Separate services for database, cache and much more
Supported open source
Moving	from	App	Services	to	Azure	Func5ons 14
Automation!
Azure allowed us to fully automate the deployment processes
Moving	from	App	Services	to	Azure	Func5ons 15
Moving	from	App	Services	to	Azure	Func5ons 16
Classical Web Application Configuration
West Europe
PHP
Azure Services
Azure SQL
Storage Blob
Storage Queue
Sendgrid Services
North Europe
PHP
Azure Services
Azure SQL
Storage Blob
Storage Queue
Azure
Load Balancing
Replication
The DevOps movement
Moving	from	App	Services	to	Azure	Func5ons 17
Docker changed everything
Moving	from	App	Services	to	Azure	Func5ons 18
Some challenges
Docker containers are immutable
Persistence must be kept outside containers
Not a lot of examples and sources for best practices
Moving	from	App	Services	to	Azure	Func5ons 19
Moving	from	App	Services	to	Azure	Func5ons 20
PersistentFile
Sytem
Web Front Web Front Web Front Web Front
PHP-FPM PHP-FPM PHP-FPM
Worker Worker Worker
Say hello to Kubernetes
Moving	from	App	Services	to	Azure	Func5ons 21
Managed containers on Azure
AKS simplifies deployment and operations of Kubernetes
Dynamically scale application infrastructure
Security provided by Azure AD and Key Vault
Cost effective platform for container infrastructure
Moving	from	App	Services	to	Azure	Func5ons 22
Moving	from	App	Services	to	Azure	Func5ons 23
Internet
Azure AKS
POD POD
SCM
CI/CD
AKS Node
Azure Container
Registry
The serverless revolution
Moving	from	App	Services	to	Azure	Func5ons 24
Azure functions
Moving	from	App	Services	to	Azure	Func5ons 25
Azure Functions in a nutshell
Event-driven serverless compute platform
Build and debug locally
Deploy and operate at scale on Azure
Integrate services using triggers and bindings
Moving	from	App	Services	to	Azure	Func5ons 26
Inspired by Mr. Hunt
https://in2.se/hipb-serverless
Moving	from	App	Services	to	Azure	Func5ons 27
We want that too… but how?
Moving	from	App	Services	to	Azure	Func5ons 28
🤔
Where could we implement functions?
Most requests from customers: product details ✓
Most requests from employees: order and support tickets ✓
Most viewed page: sales and shipment dashboards ✓
Moving	from	App	Services	to	Azure	Func5ons 29
Moving	from	App	Services	to	Azure	Func5ons 30
How to get started?
Download the Azure Functions Core Tools
Moving	from	App	Services	to	Azure	Func5ons 31
https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local
Supported Technologies
Moving	from	App	Services	to	Azure	Func5ons 32
Technology V1 V2
C# GA (.NET Framework 4.7) GA (.NET Core 2)
JavaScript GA (Node 6) GA (Node 8 & 10)
F# GA (.NET Framework 4.7) GA (.NET Core 2)
Java N/A GA (Java 8)
Python Experimental Preview (Python 3.6)
TypeScript Experimental GA (supported through
transpiling to JavaScript)PHP Experimental N/A
Batch (.cmd, .bat) Experimental N/A
Bash Experimental N/A
PowerShell Experimental N/A
So how do I get started?
Create a directory
Init a “func” project
Write your logic
Run & Test locally
Push to Azure
Run it
Moving	from	App	Services	to	Azure	Func5ons 33
Live Demo 😱
Moving	from	App	Services	to	Azure	Func5ons 34
The impact of moving to functions
Moving	from	App	Services	to	Azure	Func5ons 35
0
480
960
1440
1920
2400
Sep 18 Oct 18 Nov 18 Dec 18 Jan 19 Feb 19 Mar 19 Apr 19
switch
containers ➤ functions
Our serverless journey has just begon
Moving	from	App	Services	to	Azure	Func5ons 36
DONE TO DO
Product details Procurement
Incoming Orders Shipping
Callback requests Customer history
KPI Dashboards Stock management
Portal advertisements
Customs declarations
Commercial mailings
Content management
Import regulation management
Some takeaways
Prepare for the “next best thing” and have a loosely coupled code base
Always experiment! It might be good today, but can it be better tomorrow?
Azure offers all required tools to get started, but choosing the “right” tool is
the hardest part
Moving	from	App	Services	to	Azure	Func5ons 37
Our most important lessons
Do not create a new client with every function invocation (RTFM)
Fail early by keeping timeouts as small as possible
Moving	from	App	Services	to	Azure	Func5ons 38
39
Moving	from	App	Services	to	Azure	Func5ons 40
www.in2it.be

More Related Content

PPTX
Making Angular2 lean and Fast
PDF
Continuous mobile automation in build pipeline
PDF
Nils Rhode - Does it always have to be k8s - TeC Day 2019
PDF
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps
PPTX
Spring webflux
PDF
Apex Liberation: The Evolution of FlexQueues
PPTX
Apex Liberation - the evolution of Flex Queue (DF15)
PPTX
Amazingly Simple Serverless Go
Making Angular2 lean and Fast
Continuous mobile automation in build pipeline
Nils Rhode - Does it always have to be k8s - TeC Day 2019
Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps
Spring webflux
Apex Liberation: The Evolution of FlexQueues
Apex Liberation - the evolution of Flex Queue (DF15)
Amazingly Simple Serverless Go

What's hot (19)

PDF
Lessons Learned from building a serverless API
PPTX
Taking Control of your Data with GraphQL
PDF
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase Productivity
PDF
Emulators as an Emerging Best Practice for API providers
PDF
Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019
PDF
Infrastructure as Code
PDF
Angular 2 kickstart
PPTX
Building reusable components as micro frontends with glimmer js and webcompo...
PDF
Frail & Cast Iron tools - a Postman Case Study
PPTX
Alfresco Digital Business Platform - Why, How, What
PDF
AWS Community Day Bangkok 2019 - Hello ClaudiaJS
PDF
How to Build Single Page HTML5 Apps that Scale
PPTX
Using Azure Functions for Integration
PPTX
Introduction to Azure Functions - Tutorial
PDF
Serverless GraphQL for Product Developers
PPTX
State in stateless serverless functions
PDF
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
PPTX
Deploying Machine Learning in production without servers - #serverlessCPH
PPTX
X-celerate 2019: Iterating fast with the MERN Stack
Lessons Learned from building a serverless API
Taking Control of your Data with GraphQL
AWS Community Day Bangkok 2019 - Dev Ops Philosophy Increase Productivity
Emulators as an Emerging Best Practice for API providers
Haufe Onboarding - Fast Iterating With the MERN Stack - TEC Day 2019
Infrastructure as Code
Angular 2 kickstart
Building reusable components as micro frontends with glimmer js and webcompo...
Frail & Cast Iron tools - a Postman Case Study
Alfresco Digital Business Platform - Why, How, What
AWS Community Day Bangkok 2019 - Hello ClaudiaJS
How to Build Single Page HTML5 Apps that Scale
Using Azure Functions for Integration
Introduction to Azure Functions - Tutorial
Serverless GraphQL for Product Developers
State in stateless serverless functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Deploying Machine Learning in production without servers - #serverlessCPH
X-celerate 2019: Iterating fast with the MERN Stack
Ad

Similar to Moving from app services to azure functions (20)

PPTX
Azure Integration in Production with Logic Apps and more
PPTX
Go Serverless with Cosmos DB, Azure Functions and Blazor
PDF
Openshift serverless Solution
PDF
Automated Serverless Pipelines with #GitOps on Codefresh
PPTX
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
PDF
Azure Serverless Toolbox
PPTX
Cloud integration: what's in it for you? (Toon Vanhoutte & Massimo Crippa at ...
PPTX
Het Microsoft Integratie Platform – Welk model past u het beste? (Steef Jan W...
PDF
GCP Meetup #3 - Approaches to Cloud Native Architectures
PDF
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
PPTX
Immutable infrastructure tsap_v2
PDF
Continuous Lifecycle London 2018 Event Keynote
PPTX
Hybrid integrationwithsap (Glenn Colpaert @ Integration Monday)
PDF
Platform as a Runtime - PaaR QCON 2024 - Final
PPTX
Put Your Existing Application On Windows Azure
PPTX
Hybrid Integration with SAP
PDF
Pivotal CloudFoundry on Google cloud platform
PDF
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
PPTX
Hybrid Integration with SAP
PDF
Handling Asynchronous Workloads With OpenShift and Iron.io
Azure Integration in Production with Logic Apps and more
Go Serverless with Cosmos DB, Azure Functions and Blazor
Openshift serverless Solution
Automated Serverless Pipelines with #GitOps on Codefresh
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Azure Serverless Toolbox
Cloud integration: what's in it for you? (Toon Vanhoutte & Massimo Crippa at ...
Het Microsoft Integratie Platform – Welk model past u het beste? (Steef Jan W...
GCP Meetup #3 - Approaches to Cloud Native Architectures
Eseguire Applicazioni Cloud-Native con Pivotal Cloud Foundry su Google Cloud ...
Immutable infrastructure tsap_v2
Continuous Lifecycle London 2018 Event Keynote
Hybrid integrationwithsap (Glenn Colpaert @ Integration Monday)
Platform as a Runtime - PaaR QCON 2024 - Final
Put Your Existing Application On Windows Azure
Hybrid Integration with SAP
Pivotal CloudFoundry on Google cloud platform
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
Hybrid Integration with SAP
Handling Asynchronous Workloads With OpenShift and Iron.io
Ad

More from Michelangelo van Dam (20)

PDF
GDPR Art. 25 - Privacy by design and default
PDF
Privacy by design
PDF
DevOps or DevSecOps
PDF
Privacy by design
PDF
Continuous deployment 2.0
PDF
Let your tests drive your code
PDF
General Data Protection Regulation, a developer's story
PDF
Leveraging a distributed architecture to your advantage
PDF
The road to php 7.1
PDF
Open source for a successful business
PDF
Decouple your framework now, thank me later
PDF
Deploy to azure in less then 15 minutes
PDF
Azure and OSS, a match made in heaven
PDF
Getting hands dirty with php7
PDF
Zf2 how arrays will save your project
PDF
Create, test, secure, repeat
PDF
The Continuous PHP Pipeline
PDF
PHPUnit Episode iv.iii: Return of the tests
PDF
Easily extend your existing php app with an api
PDF
Your code are my tests
GDPR Art. 25 - Privacy by design and default
Privacy by design
DevOps or DevSecOps
Privacy by design
Continuous deployment 2.0
Let your tests drive your code
General Data Protection Regulation, a developer's story
Leveraging a distributed architecture to your advantage
The road to php 7.1
Open source for a successful business
Decouple your framework now, thank me later
Deploy to azure in less then 15 minutes
Azure and OSS, a match made in heaven
Getting hands dirty with php7
Zf2 how arrays will save your project
Create, test, secure, repeat
The Continuous PHP Pipeline
PHPUnit Episode iv.iii: Return of the tests
Easily extend your existing php app with an api
Your code are my tests

Recently uploaded (20)

DOCX
573137875-Attendance-Management-System-original
PPTX
Artificial Intelligence
PDF
PPT on Performance Review to get promotions
PPTX
UNIT 4 Total Quality Management .pptx
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
Sustainable Sites - Green Building Construction
PDF
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PDF
Digital Logic Computer Design lecture notes
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPT
Mechanical Engineering MATERIALS Selection
PPTX
Construction Project Organization Group 2.pptx
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PDF
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PDF
Well-logging-methods_new................
PPTX
web development for engineering and engineering
573137875-Attendance-Management-System-original
Artificial Intelligence
PPT on Performance Review to get promotions
UNIT 4 Total Quality Management .pptx
Automation-in-Manufacturing-Chapter-Introduction.pdf
CYBER-CRIMES AND SECURITY A guide to understanding
Sustainable Sites - Green Building Construction
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Digital Logic Computer Design lecture notes
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
Mechanical Engineering MATERIALS Selection
Construction Project Organization Group 2.pptx
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
Unit I ESSENTIAL OF DIGITAL MARKETING.pdf
Foundation to blockchain - A guide to Blockchain Tech
Well-logging-methods_new................
web development for engineering and engineering

Moving from app services to azure functions