PaaS solution for developers to build Web, mobile and API applications Key features: • Multiple languages and frameworks: ASP.NET, ASP.NET Core, Java, Ruby, Node.js, PHP, Python • Easiest deploy: IDE, Azure DevOps, GitHub, BitBucket, Docker Hub, CLI • Scale and high availability: manually or automatically scale up or out, SLA: 99,95 % • Cost optimization: Pay-as-you-go, combine multiple applications together • Built-in security: Updates and patches, SSL, Azure Active Directory integration, ISO and PCI compliant • Also: Deployment Slots, Kudu, Performance test, CORS, Logs, Monitoring 7
# Create Resource Group az group create -l centralus --name "krddotnet-demo-rg" # Create App Service Plan with free tier az appservice plan create --name "krddotnet-demo-asp" --resource-group "krddotnet-demo-rg" --sku F1 # Create WebApp az webapp create --resource-group "krddotnet-demo-rg" --plan "krddotnet-demo-asp" --name "krddotnet-demo-app" 14
App 1 VM 1 VM 2 Azure Storage W3WP.EXE W3WP.EXE App Service Plan D:\local D:\home D:\local D:\home D:\App1 D:\App1 App1 VM local storage VM local storage Load Balancer Deeper: One Web App Compute Each app runs inside its own sandbox Storage D:\local\ – temporary storage resets after WebApp restart (%APPDATA%, %TMP%, etc) D:\home\ – persistent storage shared between all instances, backed by Azure Storage (%HOME%)
Web App 1 VM 1 Azure Storage W3WP.EXE App Service Plan D:\local D:\home VM local storage Load Balancer Web App 2 W3WP.EXE D:\local D:\home Web App 3 W3WP.EXE D:\local D:\home D:\App1 D:\App2 D:\App3 App1 App2 App3 Web App 1 VM 1 W3WP.EXE D:\local D:\home VM local storage Web App 2 W3WP.EXE D:\local D:\home Web App 3 W3WP.EXE D:\local D:\home D:\App1 D:\App2 D:\App3
webapp deployment slot create -g krddotnet-demo-rg -n krddotnet-demo-app --slot staging # Swap staging and production az webapp deployment slot swap -g krddotnet-demo-rg -n krddotnet-demo-app --slot staging - -target-slot production * Can be done via Azure Portal, API, etc.
Use minimum 2 instances Use autoscaling Use AppInsight on server side Design application to be self healing Automate deployment of app and infrastructure Use CDN to offload 37