This repository implements an atomic design approach for Azure infrastructure-as-code using Bicep. It is organized into two main categories:
Located in the bicep/modules/ directory, these are small, reusable Bicep modules representing individual Azure resources (e.g., storage accounts, key vaults, app services). Each module is designed to be composable and independently deployable.
Located in the bicep/templates/ directory, these are higher-level Bicep templates that combine multiple modules (atoms) to define more complex Azure solutions or environments. Organisms orchestrate the deployment of multiple resources as a cohesive unit.
- Atomic Design: Promotes reusability, maintainability, and clarity by separating infrastructure into atoms (modules) and organisms (templates).
- Validation: Supports validation of deployments using Azure's deployment group what-if operation, allowing you to preview changes before applying them.
- Deployment: Deploys resources using
az deployment group createfor robust, repeatable, and auditable infrastructure provisioning.
Preview the impact of a deployment without making changes:
az deployment group what-if \
--resource-group <your-resource-group> \
--template-file <path-to-template.bicep> \
--parameters <parameters-file>Deploy a Bicep template (organism) to your Azure resource group:
az deployment group create \
--resource-group <your-resource-group> \
--template-file <path-to-template.bicep> \
--parameters <parameters-file>bicep/modules/— Atomic Bicep modules (atoms)bicep/templates/— Composite Bicep templates (organisms)scripts/— PowerShell and CLI scripts for automationvariables/— Parameter and variable files
Contributions are welcome! Please ensure new modules and templates follow the atomic design principles and include documentation and sample parameters.
This project is licensed under the MIT License. See the LICENSE file for details.