Skip to main content

Azure App Service

Overview

Azure App Service is an HTTP-based service for hosting:

  • web applications,
  • REST API,
  • mobile back-end.

Runs natively:

  • on Windows,
  • on Linux,
  • Linux containers.

Features:

  • Can scale up/down or scale out/in.
  • Continous integration/deployment with Azure DevOps, GitHub, BitBucket, FTP, or a local Git repository on a development machine.
  • Deployment slots (only in Standard and Premium plan tiers).

Limitations:

  • Shared pricing tier does not support Linux.
  • Cannot mix Windoes and Linux apps in the same App Service plan.

Azure App Service Plans

Each Azure App Service plan defines:

  • region,
  • number of VMs,
  • size of VMs,
  • pricing tier.

Pricing tiers:

  • Shared compute: both Free and Shared share resource pools with other customers.
  • Dedicated compute: the Basic, Standard, Premium, PremiumV2, and PremiumV3 tiers run app on dedicated Azure VMs. The higher the tier, the more VM instances are available for scale-out.
  • Isolated: run dedicated Azure VMs on dedicated Azure Virtual Networks. Provides maximum scale-out capabilities.
  • Consumption: only available for function apps. Scales dynamically depending on workload.

Ties Feature Comparison

TierApp CountDisk SizeMax InstancesScalingZone RedundancyCustom DomainvNet Integration
Free101 GBN/ANot supportedNot supportedNot supportedNot supported
Shared1001 GBN/ANot supportedNot supportedSupportedNot supported
BasicUnlimited10 GBUp to 3ManualNot supportedSupportedSupported
StandardUnlimited50 GBUp to 10RulesNot supportedSupportedSupported
PremiumUnlimited250 GBUp to 30*Rules, ElasticSupportedSupportedSupported
IsolatedUnlimited1 TBUp to 100Rules, ElasticSupportedSupportedSupported
* - in select regions.

Manual Deployment

Supports:

  • Git
  • CLI
  • Zip deploy
  • FTP/S

Built-in Authentication

Identity providers:

  • Microsoft Identity Platform
  • Facebook
  • Google
  • Twitter

Multi-tenant App Service Networking Features

Inbound features:

  • App-assigned address: IP-based SSL, unshared dedicated address.
  • Access restrictions: restrict access from a set of well-defined addresses.
  • Service endpoints
  • Private endpoints

Outbound features:

  • Hybrid Connections
  • Gateway-required VNet Integration
  • VNet Integration

App Service Settings

Consists of:

  • Application settings
  • General settings
  • Path mappings
    • IIS handler mappings (only for Windows)
    • Mount storage

App Service General Settings

Diagnostic Logging

TypePlatform
Application loggingWindows, Linux
Deployment loggingWindows, Linux
Web server loggingWindows
Detailed error loggingWindows
Failed request tracingWindows

Feature Flags

Use Azure App Configuration to manage application feature flags from a centralised place.

Auto-scale

All apps run on all VM instances configured in the App Service plan.

App service can:

  • scale out: increases instance number when any scale out rule from a condition is met,
  • scale in: decreases instance number when all scale in rules from a condition are met.

Conditions can be:

  • based on a metric,
  • based in a schedule.

Time grain - period of time while auto-scale rule aggregates the values for a metric (in most cases is 1 minute). Duration - longer, user-specified period of time when auto-scale rule performs further aggregation of the values collected from the time grain (minimum is 5 minutes).

Deployment Slots

Available in the following tiers:

  • standard,
  • premium,
  • isolated.

Settings that are swapped:

  • General settings (such as framework settings, 32/64-bit, web sockets)
  • App settings (can be configured to stick to a slot)
  • Connection strings (can be configured to stick to a slot)
  • Handler mappings
  • Public certificates
  • WebJobs content
  • Hybrid connections *
  • Service endpoints *
  • Azure Content Delivery Network *
  • Path mappings

Features marked with an asterisk (*) are planned to be unswapped.

Settings that aren't swapped:

  • Publishing endpoints
  • Custom domain names
  • Non-public certificates and TLS/SSL settings
  • Scale settings
  • WebJobs schedulers
  • IP restrictions
  • Always On
  • Diagnostic log settings
  • Cross-origin resource sharing (CORS)
  • Virtual network integration
  • Managed identities
  • Settings that end with the suffix _EXTENSION_VERSION

Warm-up app settings:

  • WEBSITE_SWAP_WARMUP_PING_PATH - relative path to ping during warm-up. An example is /statuscheck.
  • WEBSITE_SWAP_WARMUP_PING_STATUSES - valid HTTP response codes for the warm-up operation. An example is 200,202.

Use x-ms-routing-name query parameter to manually route to a specific slot. Once routed, browser will stick to that route by using cookie with the same name. Examples:

  • /?x-ms-routing-name=staging - route to "staging" slot,
  • /?x-ms-routing-name=self - route to the production slot.