From managing complex dependencies and opaque configurations to juggling compatibility issues and security risks, deploying app infrastructure has always been a source of friction. We designed Azure Deployment Environments to eliminate these complexities and empower developers to deploy app infrastructure in a secure, compliant, and cost-effective way—and we are continuing to add capabilities that makes the experience more powerful and seamless.
Today, we’re excited to announce a new extensibility model, now available in public preview, that empowers customers to customize their deployment workflows using Bicep, Terraform, Pulumi, or any other infrastructure-as-code (IaC) framework of their choice. This new model further streamlines app infrastructure provisioning and makes it easier for platform engineers to meet the unique needs of their organization. Read on to learn more about the extensibility model and what this means for popular frameworks like Bicep and Terraform.
Expanding support to any IaC framework in Azure Deployment Environments
Up to now, Azure Resource Manager (ARM) was the primary IaC framework used to define and deploy environments in Azure Deployment Environments. ARM is a powerful form of IaC that has many applications across Azure services, but not all platform engineers are familiar with scripting ARM files. With Azure Deployment Environment’s new extensibility model, platform engineers can now use any IaC framework they want to deploy their environments. Instead of having to recreate templates in the ARM format, teams can directly bring in their existing templates or create new templates in a familiar IaC framework.
The extensibility model also makes it easier to customize your deployments based on your unique organizational needs. For example, with the extensibility model, you can invoke internal APIs to dynamically retrieve data to configure Azure resources during a deployment, or you can invoke custom scripts to create resources such as namespaces in a shared AKS cluster. This makes it possible to add additional logic, validations, or custom actions into deployments via internal APIs and systems. This flexibility ensures that Azure app infrastructure can be adapted to diverse scenarios and accommodate unique business needs.
Using the extensibility model is straightforward—All you need to do is configure your own container image, publish it in a container registry, and reference it in the environment.yaml of your environment definition. Check out the MS learn page for more information on how to configure an environment definition or learn how to build your own custom container image and perform customized deployments with your own preferred IaC framework.
Figure 1. Extensibility model workflow in Azure Deployment Environments
Get started today with a standard container image for Bicep
In addition to introducing the extensibility model for Azure Deployment Environments, we’re also excited to announce additional support for popular IaC frameworks. Bicep, for instance, offers a first-class authoring experience with concise syntax, reliable type safety, and support for code reuse. To make it easier for customers to use Bicep in Azure Deployment Environments, we’re excited to announce the public availability of a sample Bicep container image.
While customers can also build their own custom container images, this sample Bicep image helps customers to get started quickly. Platform engineers simply set the identifier to Bicep in the environment.yaml’s runner property, and the service will automatically use the standard image to execute Bicep deployments. You can directly use Bicep templates in Deployment Environments today by leveraging the standard Bicep image or refer to the documentation on how to build a container image for Bicep deployments.
Execute your deployments using Terraform
Terraform is one of most popular IaC frameworks and customers have been asking for Terraform support in Azure Deployment Environments since the service was announced. Today, we’re excited that the new extensibility model provides a way to directly use Terraform templates in Azure Deployment Environments. Read to learn more about configuring a container image for executing deployments using Terraform.
Get started with Azure Deployment Environments today
You can get started with Azure Deployment Environments today, for free and pay only for the Azure resources you create as part of your environments, such as compute, storage, and networking. We believe that the new extensibility model in Azure Deployment Environments paves the way to more flexible, customized, and accelerated deployments and we look forward to learning about the exciting ways in which you will leverage such flexibility. Please feel free to share your thoughts by directly commenting on this blog post or reaching out to us via Azure Deployment Environments Support.
Sagar Lankala
Senior Product Manager, Developer Division