Deploying applications to Azure often involves juggling multiple tools—Azure CLI, Terraform, Bicep, and setting up CI/CD pipelines—to manage infrastructure, deploy workloads, and configure environments. This complexity can be overwhelming for developers aiming to focus on coding and delivering applications efficiently.
Enter the Azure Developer CLI (azd), a developer-centric command-line tool that streamlines the process of deploying full-stack applications to Azure, automating both infrastructure provisioning and application deployment.
In this blog, we’ll explore:
- What azd is and how it simplifies cloud development.
- Key features that make it a valuable tool for developers.
- Recent updates introduced in the March 2025 release.
- A hands-on example: Deploying a web application using azd.
What is azd?
The Azure Developer CLI (azd) is an open-source, developer-friendly CLI that helps developers quickly scaffold, provision, deploy, and monitor applications on Azure with minimal setup.
Key features of azd
- End-to-End developer workflow: Facilitates the entire development lifecycle, from scaffolding new projects to monitoring deployed applications.
- Infrastructure as Code (IaC) support: Utilizes Bicep and Terraform to define and manage Azure infrastructure declaratively.
- Preconfigured templates: Offers a variety of templates for common application architectures, including web apps, microservices, and serverless applications.
- CI/CD integration: Seamlessly integrates with GitHub Actions and Azure DevOps pipelines for automated deployments.
- Environment management: Simplifies handling of multiple environments (e.g., development, testing, production).
- Simplified authentication: Leverages az login for secure authentication and Azure resource management.
- Multi-language support: Compatible with applications written in .NET, Python, Node.js, Java, Go, and more.
Think of azd as a tool that helps you transition from "code on GitHub" to "running on Azure" in minutes.
Recent updates: March 2025 release
The March 2025 release (version 1.13.0) of azd introduced several noteworthy features:
- Azure AI Services integration: azd add now supports Azure AI Services models and Azure AI Foundry resources, including intelligent filtering for location Bicep parameters based on AI model quotas and usage information.
- Expanded database support: Added support for Azure Cosmos DB and Azure Database for MySQL, enhancing the range of database options available for deployment.
- Enhanced storage and messaging services: Introduced support for Azure Key Vault, Azure Service Bus, Azure Event Hubs, and Azure Storage (Blob Service).
- Docker language support: Added a docker language type to support containerized applications written in languages like Go without native support in azd.
- Pipeline enhancements: Implemented support for environment secrets in pipeline configurations, improving security and flexibility.
For a comprehensive list of updates, refer to the official Azure SDK Blog post.
Use cases for azd
- Rapid prototyping: Quickly build and deploy cloud-native applications without extensive setup.
- Automated deployment: Streamline the deployment process for full-stack applications.
- Unified infrastructure and application management: Manage infrastructure alongside application code for consistency and version control.
- Consistent environments: Easily set up repeatable environments for development, testing, and production.
Ideal for: Developers deploying full-stack applications, startups, and teams focusing on rapid prototyping.
Why isn’t azd more popular?
Despite its advantages, azd hasn't achieved widespread adoption due to several factors:
- Lack of Awareness: Many Azure users are more familiar with tools like Terraform, Bicep, or the standard Azure CLI (az) for infrastructure deployment.
- Developer-centric focus: azd abstracts away certain complexities typically managed by DevOps and SRE teams, which may not align with existing workflows in large enterprises.
- Early stage adoption: Being relatively new, azd hasn't yet built a large community or established best practices.
- Opinionated approach: It follows a specific pattern (IaC + CI/CD + App Code), which might not fit all use cases.
Who should use azd?
- Developers seeking a quick and efficient way to scaffold and deploy applications to Azure without manual infrastructure setup.
- Teams looking for an opinionated developer experience with built-in CI/CD integrations.
- Startups and/or small projects where a simplified setup is beneficial for rapid development and iteration.
Hands-on example: Deploying a web application using a template
To demonstrate the capabilities of the Azure Developer CLI (azd), let's deploy a sample application using the azd-fdcdn template. This template sets up an Azure App Service WebApp, a Storage Account, and Azure Front Door with CDN, showcasing caching functionality by displaying Seattle scenery images and demonstrating loading times for different back-ends.
Step 1 - Install Azure Developer CLI (azd)
Begin by installing azd on your machine. This installation will also include the GitHub CLI and Bicep CLI if they aren't already installed. Detailed instructions are available in the official Azure documentation.
Step 2 - Clone the azd-fdcdn Repository
Open your terminal and execute the following commands to create a new directory and clone the repository:
git clone https://github.com/petender/azd-fdcdn
cd azd-fdcdn
Step 3 - Authenticate with Azure
Before provisioning resources, log in to Azure:
azd auth login
Ensure you're using the correct Azure subscription:
az account show
If needed, switch subscriptions:
az account set --subscription "<SUBSCRIPTION_ID>"
Step 4 - Initialize the azd Project
Initialize the project using the following command:
azd init
This command will prompt you to enter an environment name.
Step 5 - Provision Azure Resources
Provision the necessary Azure resources by running:
azd provision
You will be asked for the subscription and region to be used. This process sets up all required resources, such as the Azure App Service WebApp, Storage Account, and Azure Front Door with CDN, as defined in the infrastructure as code (IaC) templates.
Step 6 - Deploy the Application
Once the resources are provisioned, deploy the application:
azd deploy
This command deploys the application code to the Azure environment.
Step 7 - Access the Deployed Application
After deployment, retrieve the application's endpoint:
azd show
This command displays the URLs for accessing the deployed services. Open the provided URL in your browser to interact with the application and observe the caching functionality facilitated by Azure Front Door with CDN.
By following these steps, you've successfully deployed a web application using the Azure Developer CLI (azd) and the azd-fdcdn template. This process demonstrates how azd simplifies the deployment of applications by automating infrastructure provisioning and application deployment.
For more detailed information and advanced configurations, refer to the azd-fdcdn repository and the Azure Developer CLI documentation.
Note: Ensure you have the necessary Azure permissions to deploy resources within your subscription.
Final Thoughts
If you're working with Azure, azd is a powerful tool to accelerate application deployment. Instead of writing complex CLI scripts or manually configuring resources, azd automates the entire process, allowing you to focus on building features.
Additional Resources
- Explore more azd samples: Awesome AZD | Trainer Demo Deploy Catalog
- Learn more about azd: Official Documentation
- Discover more templates: Azure Samples
Updated Mar 11, 2025
Version 2.0rmmartins
Microsoft
Joined June 01, 2017
Startups at Microsoft
Follow this blog board to get notified when there's new activity