Microsoft Docs

Azure App Service Concepts

Last updated: October 26, 2023

Table of Contents

Introduction to Azure App Service

Azure App Service is a fully managed platform for building, deploying, and scaling web apps, mobile backends, and APIs. It provides a robust environment for hosting your applications, abstracting away the complexities of infrastructure management. App Service supports a wide range of programming languages and frameworks, including .NET, Java, Node.js, Python, PHP, and Ruby.

Key benefits of using Azure App Service include:

Understanding the App Service Plan

An App Service plan defines a set of computing resources for your web app to run on. It's analogous to the SQL server farm in a SQL Server instance. When you create an App Service app, you choose an App Service plan that determines the location, size, features, cost, and compute resources of the app.

Key characteristics of an App Service Plan:

Important: All apps in the same App Service plan share the same compute resources. If one app experiences high load, it can affect the performance of other apps in the same plan.

Web Apps

Web Apps are the primary resource in App Service. They are designed to host web applications. You can deploy code written in various languages and frameworks to a Web App. Azure handles the patching, OS updates, and infrastructure maintenance, allowing you to concentrate on developing your application.

Key Features of Web Apps:

API Apps

API Apps are specialized for hosting RESTful APIs. They are built on top of Web Apps but provide additional features tailored for API development, such as Swagger integration, OAuth support, and connectors to other services.

Key Features of API Apps:

Mobile Apps

Mobile Apps (now part of App Service) provide a backend for iOS, Android, and Windows mobile applications. They offer features like data synchronization, push notifications, and authentication.

Key Features of Mobile Apps:

Function Apps

Function Apps enable you to run small pieces of code, or "functions," in the cloud without explicitly managing infrastructure. This is often referred to as serverless computing. Functions are triggered by events (e.g., HTTP requests, timer, message queue, file upload).

Key Features of Function Apps:


// Example Azure Function (Node.js) triggered by HTTP
module.exports = async function (context, req) {
    context.log('JavaScript HTTP trigger function processed a request.');
    const name = (req.query.name || (req.body && req.body.name));
    const responseMessage = name
        ? "Hello, " + name + ". This HTTP triggered function executed successfully."
        : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.";

    context.res = {
        status: 200,
        body: responseMessage
    };
};
            

Deployment Slots

Deployment Slots are live apps with their own hostnames. A Web App in Azure App Service can have multiple deployment slots. The primary slot is the one that receives production traffic. Other slots can be used for staging, testing, or canary releases.

Benefits of Deployment Slots:

Continuous Integration and Continuous Delivery (CI/CD)

Azure App Service integrates seamlessly with popular CI/CD tools like Azure DevOps, GitHub Actions, Jenkins, and Bitbucket. This allows you to automate the build, test, and deployment process, ensuring that your applications are always up-to-date and reliable.

A typical CI/CD workflow involves:

Pricing Tiers

Azure App Service offers several pricing tiers to meet different needs and budgets. These tiers provide varying levels of compute power, features, and support.

Common Pricing Tiers:

  • Free: Limited features, suitable for development and testing.
  • Shared: Basic features, shared compute resources.
  • Basic: Dedicated compute resources, custom domains, SSL.
  • Standard: Advanced features like deployment slots, auto-scaling, and backup.
  • Premium: High performance, VNet integration, advanced security.
  • Isolated: Dedicated Azure infrastructure, maximum security and performance.

The choice of pricing tier significantly impacts performance, scalability, and cost. It's crucial to select a tier that aligns with your application's requirements.