|
| 1 | +--- |
| 2 | +title: Azure Developer CLI vs Azure CLI Overview |
| 3 | +description: Understand the differences between the Azure Developer CLI and the Azure CLI |
| 4 | +author: alexwolfmsft |
| 5 | +ms.author: alexwolf |
| 6 | +ms.date: 04/10/2025 |
| 7 | +ms.service: azure-dev-cli |
| 8 | +ms.topic: conceptual |
| 9 | +ms.custom: devx-track-azdevcli |
| 10 | +--- |
| 11 | + |
| 12 | +# Azure Developer CLI vs Azure CLI overview |
| 13 | + |
| 14 | +Azure provides multiple command-line tools to help users interact with cloud services. Two of the most commonly used tools are the [Azure Developer CLI](/azure/developer/azure-developer-cli/overview) and the [Azure CLI](/cli/azure/what-is-azure-cli). While both options enable users to manage and deploy resources on Azure, they're designed for different audiences and use cases. The following sections provide an overview of each tool, highlight their differences, and offer comparisons to help you select the best tool for different situations. |
| 15 | + |
| 16 | +## What is the Azure Developer CLI? |
| 17 | + |
| 18 | +The Azure Developer CLI (`azd`) is a developer-focused command-line tool designed to streamline the process of building, provisioning, deploying, and managing full-stack apps on Azure. Key features include: |
| 19 | + |
| 20 | +- High-level commands oriented around app lifecycle stages, such as provisioning and deployment |
| 21 | +- A template system to define infrastructure as code and deployment configurations for your app |
| 22 | +- Automated provisioning and deployment of app resources |
| 23 | +- Built-in CI/CD pipeline setup for GitHub Actions or Azure Pipelines |
| 24 | +- Galleries of starter app templates for common app architectures |
| 25 | + |
| 26 | +## What is the Azure CLI? |
| 27 | + |
| 28 | +The Azure CLI (`az`) is a general-purpose command-line interface for managing Azure resources. It provides a comprehensive set of commands to create, configure, delete, and monitor resources programmatically or interactively. Key features include: |
| 29 | + |
| 30 | +- Granular administrative control over Azure resources |
| 31 | +- Support for scripting and task automation |
| 32 | +- Integration with a wide range of Azure services and tools |
| 33 | +- Resource management across many tenants, subscriptions, and environments |
| 34 | + |
| 35 | +## How are the tools different? |
| 36 | + |
| 37 | +While both the Azure Developer CLI and Azure CLI provide command-line interfaces for Azure, they serve different purposes and audiences: |
| 38 | + |
| 39 | +- **Azure Developer CLI**: Focuses on simplifying the developer experience by providing an opinionated workflow for building and deploying applications. It abstracts much of the complexity of resource management and is tailored for application-centric tasks. |
| 40 | +- **Azure CLI**: Offers granular control over Azure resources and is designed for a broader audience, including IT administrators, DevOps engineers, and developers. It provides flexibility for managing individual resources but requires knowledge of specific Azure services. |
| 41 | + |
| 42 | +### Compare commands |
| 43 | + |
| 44 | +You can print the available commands for both CLI tools to visualize these differences. For example, run the Azure Developer CLI command `azd help` to view information about the tool and available commands: |
| 45 | + |
| 46 | +```output |
| 47 | +Usage |
| 48 | + azd [command] |
| 49 | +
|
| 50 | +Commands |
| 51 | + Configure and develop your app |
| 52 | + auth : Authenticate with Azure. |
| 53 | + config : Manage azd configurations (ex: default Azure subscription, location). |
| 54 | + hooks : Develop, test and run hooks for an application. (Beta) |
| 55 | + init : Initialize a new application. |
| 56 | + restore : Restores the application's dependencies. (Beta) |
| 57 | + template : Find and view template details. (Beta) |
| 58 | +
|
| 59 | + Manage Azure resources and app deployments |
| 60 | + deploy : Deploy the application's code to Azure. |
| 61 | + down : Delete Azure resources for an application. |
| 62 | + env : Manage environments. |
| 63 | + package : Packages the application's code to be deployed to Azure. (Beta) |
| 64 | + provision : Provision the Azure resources for an application. |
| 65 | + up : Provision Azure resources, and deploy your project with a single command. |
| 66 | +
|
| 67 | + Monitor, test and release your app |
| 68 | + monitor : Monitor a deployed application. (Beta) |
| 69 | + pipeline : Manage and configure your deployment pipelines. (Beta) |
| 70 | + show : Display information about your app and its resources. |
| 71 | +``` |
| 72 | + |
| 73 | +The commands in the preceding output map to high level development workflow concerns, such as managing app deployments, app configuration, and monitoring. |
| 74 | + |
| 75 | +However, if you run the `az help` command for the Azure CLI, you see output that resembles the following output: |
| 76 | + |
| 77 | +```output |
| 78 | +Group |
| 79 | + az |
| 80 | +
|
| 81 | +Subgroups: |
| 82 | + account : Manage Azure subscription information. |
| 83 | + acr : Manage private registries with Azure Container Registries. |
| 84 | + ad : Manage Microsoft Entra ID (formerly known as Azure Active |
| 85 | + Directory, Azure AD, AAD) entities needed for Azure role-based |
| 86 | + access control (Azure RBAC) through Microsoft Graph API. |
| 87 | + advisor : Manage Azure Advisor. |
| 88 | + afd : Manage Azure Front Door Standard/Premium. |
| 89 | + aks : Manage Azure Kubernetes Services. |
| 90 | + ams : Manage Azure Media Services resources. |
| 91 | + apim : Manage Azure API Management services. |
| 92 | + appconfig : Manage App Configurations. |
| 93 | + appservice : Manage App Service plans. |
| 94 | + aro : Manage Azure Red Hat OpenShift clusters. |
| 95 | + backup : Manage Azure Backups. |
| 96 | + batch : Manage Azure Batch. |
| 97 | + bicep : Bicep CLI command group. |
| 98 | + billing : Manage Azure Billing. |
| 99 | + bot : Manage Microsoft Azure Bot Service. |
| 100 | + cache : Commands to manage CLI objects cached using the `--defer` |
| 101 | + |
| 102 | + (omitted for brevity...) |
| 103 | +``` |
| 104 | + |
| 105 | +In the preceding output, all of the commands focus on managing configurations for specific Azure resources, such as Azure Container Registries or Azure Billing services. |
| 106 | + |
| 107 | +### Compare features |
| 108 | + |
| 109 | +The following table highlights the key differences between the Azure Developer CLI and the Azure CLI in more detail: |
| 110 | + |
| 111 | +| Functionality | Azure Developer CLI (`azd`) | Azure CLI (`az`) | |
| 112 | +|-------------------------|---------------------------------------------------------|----------------------------------------------------| |
| 113 | +| **Primary audience** | Developers focused on building cloud-native apps | Developers, IT admins, and DevOps engineers | |
| 114 | +| **Primary use case** | End-to-end app lifecycle management | Azure resource administration & management | |
| 115 | +| **Type of tasks** | Provisioning and deploying app resources, CI/CD pipeline setup | Resource administration and scripting | |
| 116 | +| **Command behavior** | Opinionated, high-level commands for common workflows | Flexible, low-level commands for granular control | |
| 117 | +| **Template support** | Includes predefined templates for common architectures | No templates; requires manual resource configuration | |
| 118 | +| **IaC support** | Native support for IaC tools like Bicep and Terraform | Requires separate IaC setup and integration | |
| 119 | +| **CI/CD Integration** | Automates pipeline setup for GitHub Actions or Azure Pipelines | No built-in CI/CD automation | |
| 120 | + |
| 121 | +### Compare use cases |
| 122 | + |
| 123 | +Choosing the right tool depends on your specific needs and the tasks you want to accomplish. Below are examples of scenarios where each tool excels to help you decide which one to use for your workflow. |
| 124 | + |
| 125 | +#### When to Use the Azure Developer CLI |
| 126 | + |
| 127 | +The Azure Developer CLI is best suited for scenarios where you need to manage the end-to-end workflow for application development and deployment. Example use cases include: |
| 128 | + |
| 129 | +- Packaging, provisioning and deploying full-stack cloud-native apps in a portable, repeatable way |
| 130 | +- Quickly provisioning sample app architectures using predefined templates for rapid prototyping |
| 131 | +- Setting up CI/CD pipelines for GitHub Actions or Azure Pipelines with minimal effort |
| 132 | + |
| 133 | +#### When to Use the Azure CLI |
| 134 | + |
| 135 | +The Azure CLI is ideal for scenarios that require granular control over individual Azure resources or advanced scripting capabilities. Example use cases include: |
| 136 | + |
| 137 | +- Creating, configuring, or deleting Azure resources |
| 138 | +- Automating resource management using custom scripts |
| 139 | +- Monitoring and troubleshooting Azure resources |
| 140 | +- Integrating resource management into broader DevOps workflows |
| 141 | + |
| 142 | +By understanding these use cases, you can determine which tool is better suited for your specific needs or use both tools in combination to maximize efficiency. |
| 143 | + |
| 144 | +## Conclusion |
| 145 | + |
| 146 | +The Azure Developer CLI and Azure CLI are complementary tools designed for different audiences and use cases. The Azure Developer CLI simplifies app packaging, provisioning, and deployment for developers, while the Azure CLI provides granular control for administrative tasks. Depending on your role and requirements, you can use one or both tools to achieve your goals on Azure. |
0 commit comments