Azure App Service Deployment

Comprehensive guide for developers deploying to Azure App Service.

Deployment Methods

Azure App Service offers a variety of deployment methods to suit different development workflows and application types. Choose the method that best fits your needs, from continuous integration to manual deployments.

1. Azure DevOps / GitHub Actions (CI/CD)

Automate your build and deployment pipeline for seamless code integration.

  • Azure Pipelines: Integrate with Azure DevOps for robust CI/CD workflows. Define build agents, deployment stages, and approval gates.
  • GitHub Actions: Leverage GitHub's native CI/CD solution. Use pre-built templates or define custom workflows to deploy directly from your repository.

Recommended for: Teams practicing continuous integration and delivery, aiming for frequent and reliable deployments.

Example workflow snippet (GitHub Actions):


name: Deploy to Azure App Service

on:
  push:
    branches:
      - main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Set up Node.js version
      uses: actions/setup-node@v3
      with:
        node-version: '18.x'
    - name: npm install, build, and test
      run: |
        npm install
        npm run build --if-present
        npm test
    - name: Azure Login
      uses: azure/login@v1
      with:
        creds: ${{ secrets.AZURE_CREDENTIALS }}
    - name: Deploy to Azure App Service
      uses: azure/webapps-deploy@v2
      with:
        app-name: my-azure-app-service
        package: '.'
                

2. Git Deployment

Deploy directly from a local Git repository or a remote Git repository.

  • Local Git: Configure App Service to pull from your local repository. This is useful for simple, direct deployments.
  • Remote Git: Connect your App Service to a repository hosted on platforms like GitHub, Bitbucket, or Azure Repos. App Service will automatically redeploy when changes are pushed.

Setup: Navigate to your App Service's "Deployment Center" and select "Git". Follow the instructions to connect your repository.

3. FTP Deployment

Use FTP or FTPS to upload your application files directly to the App Service's file system.

  • Credentials: Obtain FTP/FTPS credentials from the "Deployment Center" in your App Service.
  • Tools: Use standard FTP clients like FileZilla or command-line tools.

Note: While simple, FTP is generally less secure and less automated than other methods. It's often used for quick fixes or simple static sites.

4. Container Registries (Docker)

Deploy your application as a Docker container.

  • Docker Hub / Azure Container Registry: Point your App Service to a container image stored in a public or private registry. App Service can automatically pull the latest image when changes occur.
  • Custom Containers: Build and manage your own Docker images for greater control over your application environment.

Configuration: In the App Service's "Container settings", specify the registry, image name, and tag.

5. OneDrive / Dropbox Integration

Deploy static content or simple web applications directly from cloud storage services.

  • Linking: Connect your App Service to a specific folder in OneDrive or Dropbox.
  • Automatic Updates: Changes made to files in the linked folder will be automatically deployed to your App Service.

Use Case: Ideal for static websites or content-driven applications where a CI/CD pipeline might be overkill.

Choosing the Right Method

Consider these factors when selecting your deployment strategy: