Azure cloud architect
Design Azure architectures for startups and enterprises.
How to use it
Claude Code
- Run the line below. It pulls the whole folder into
~/.claude/skills/azure-cloud-architect, including the files SKILL.md points to. - Describe your job in plain words. Claude Code follows the skill from there.
npx degit alirezarezvani/claude-skills/engineering-team/skills/azure-cloud-architect#main ~/.claude/skills/azure-cloud-architectFor one project only, change the path to .claude/skills/azure-cloud-architect. This skill also uses bicep_generator.py, current_resources.json, architecture_designer.py, cost_optimizer.py, resources.json — copying SKILL.md alone won't be enough. See the folder on GitHub.
Claude (web or desktop app)
- On this page open ⋯ → Download .md.
- Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
- Pick the file and Save. Claude shows the name and description and runs a security scan.
- Check the skill is switched on.
- Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
- ChatGPT: make a Project and paste it into Instructions.
- Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Source of Azure cloud architect
Show the full text464 lines
| name | description |
|---|---|
| azure-cloud-architect | Design Azure architectures for startups and enterprises. Use when asked to design Azure infrastructure, create Bicep/ARM templates, optimize Azure costs, set up Azure DevOps pipelines, or migrate to Azure. Covers AKS, App Service, Azure Functions, Cosmos DB, and cost optimization. |
Azure Cloud Architect
Design scalable, cost-effective Azure architectures for startups and enterprises with Bicep infrastructure-as-code templates.
Workflow
Step 1: Gather Requirements
Collect application specifications:
- Application type (web app, mobile backend, data pipeline, SaaS, microservices)
- Expected users and requests per second
- Budget constraints (monthly spend limit)
- Team size and Azure experience level
- Compliance requirements (GDPR, HIPAA, SOC 2, ISO 27001)
- Availability requirements (SLA, RPO/RTO)
- Region preferences (data residency, latency)
Step 2: Design Architecture
Run the architecture designer to get pattern recommendations:
python scripts/architecture_designer.py \
--app-type web_app \
--users 10000 \
--requirements '{"budget_monthly_usd": 500, "compliance": ["SOC2"]}'
Example output:
{
"recommended_pattern": "app_service_web",
"service_stack": ["App Service", "Azure SQL", "Front Door", "Key Vault", "Entra ID"],
"estimated_monthly_cost_usd": 280,
"pros": ["Managed platform", "Built-in autoscale", "Deployment slots"],
"cons": ["Less control than VMs", "Platform constraints", "Cold start on consumption plans"]
}
Select from recommended patterns:
- App Service Web: Front Door + App Service + Azure SQL + Redis Cache
- Microservices on AKS: AKS + Service Bus + Cosmos DB + API Management
- Serverless Event-Driven: Functions + Event Grid + Service Bus + Cosmos DB
- Data Pipeline: Data Factory + Synapse Analytics + Data Lake Storage + Event Hubs
See references/architecture_patterns.md for detailed pattern specifications.
Validation checkpoint: Confirm the recommended pattern matches the team's operational maturity and compliance requirements before proceeding to Step 3.
Step 3: Generate IaC Templates
Create infrastructure-as-code for the selected pattern:
# Web app stack (Bicep)
python scripts/bicep_generator.py --arch-type web-app --output main.bicep
Example Bicep output (core web app resources):
@description('The environment name')
param environment string = 'dev'
@description('The Azure region for resources')
param location string = resourceGroup().location
@description('The application name')
param appName string = 'myapp'
// App Service Plan
resource appServicePlan 'Microsoft.Web/serverfarms@2023-01-01' = {
name: '${environment}-${appName}-plan'
location: location
sku: {
name: 'P1v3'
tier: 'PremiumV3'
capacity: 1
}
properties: {
reserved: true // Linux
}
}
// App Service
resource appService 'Microsoft.Web/sites@2023-01-01' = {
name: '${environment}-${appName}-web'
location: location
properties: {
serverFarmId: appServicePlan.id
httpsOnly: true
siteConfig: {
linuxFxVersion: 'NODE|20-lts'
minTlsVersion: '1.2'
ftpsState: 'Disabled'
alwaysOn: true
}
}
identity: {
type: 'SystemAssigned'
}
}
// Azure SQL Database
resource sqlServer 'Microsoft.Sql/servers@2023-05-01-preview' = {
name: '${environment}-${appName}-sql'
location: location
properties: {
administrators: {
azureADOnlyAuthentication: true
}
minimalTlsVersion: '1.2'
}
}
resource sqlDatabase 'Microsoft.Sql/servers/databases@2023-05-01-preview' = {
parent: sqlServer
name: '${appName}-db'
location: location
sku: {
name: 'GP_S_Gen5_2'
tier: 'GeneralPurpose'
}
properties: {
autoPauseDelay: 60
minCapacity: json('0.5')
}
}
Full templates including Front Door, Key Vault, Managed Identity, and monitoring are generated by
bicep_generator.pyand also available inreferences/architecture_patterns.md.
Bicep is the recommended IaC language for Azure. Prefer Bicep over ARM JSON templates: Bicep compiles to ARM JSON, has cleaner syntax, supports modules, and is first-party supported by Microsoft.
Step 4: Review Costs
Analyze estimated costs and optimization opportunities:
python scripts/cost_optimizer.py \
--config current_resources.json \
--json
Example output:
{
"current_monthly_usd": 2000,
"recommendations": [
{ "action": "Right-size SQL Database GP_S_Gen5_8 to GP_S_Gen5_2", "savings_usd": 380, "priority": "high" },
{ "action": "Purchase 1-year Reserved Instances for AKS node pools", "savings_usd": 290, "priority": "high" },
{ "action": "Move Blob Storage to Cool tier for objects >30 days old", "savings_usd": 65, "priority": "medium" }
],
"total_potential_savings_usd": 735
}
Output includes:
- Monthly cost breakdown by service
- Right-sizing recommendations
- Reserved Instance and Savings Plan opportunities
- Potential monthly savings
Step 5: Configure CI/CD
Set up Azure DevOps Pipelines or GitHub Actions with Azure:
# GitHub Actions — deploy Bicep to Azure
name: Deploy Infrastructure
on:
push:
branches: [main]
permissions:
id-token: write
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- uses: azure/arm-deploy@v2
with:
resourceGroupName: rg-myapp-dev
template: ./infra/main.bicep
parameters: environment=dev
# Azure DevOps Pipeline
trigger:
branches:
include:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- task: AzureCLI@2
inputs:
azureSubscription: 'MyServiceConnection'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az deployment group create \
--resource-group rg-myapp-dev \
--template-file infra/main.bicep \
--parameters environment=dev
Step 6: Security Review
Validate security posture before production:
- Identity: Entra ID (Azure AD) with RBAC, Managed Identity for service-to-service auth — never store credentials in code
- Secrets: Key Vault for all secrets, certificates, and connection strings
- Network: NSGs on all subnets, Private Endpoints for PaaS services, Application Gateway with WAF
- Encryption: TLS 1.2+ in transit, Azure-managed or customer-managed keys at rest
- Monitoring: Microsoft Defender for Cloud enabled, Azure Policy for guardrails
- Compliance: Azure Policy assignments for SOC 2 / HIPAA / ISO 27001 initiatives
If deployment fails:
- Check the deployment status:
az deployment group show \ --resource-group rg-myapp-dev \ --name main \ --query 'properties.error' - Review Activity Log for RBAC or policy errors.
- Validate the Bicep template before deploying:
az bicep build --file main.bicep az deployment group validate \ --resource-group rg-myapp-dev \ --template-file main.bicep
Common failure causes:
- RBAC permission errors — verify the deploying principal has Contributor on the resource group
- Resource provider not registered — run
az provider register --namespace Microsoft.Web - Naming conflicts — Azure resource names are often globally unique (storage accounts, web apps)
- Quota exceeded — request quota increase via Azure Portal > Subscriptions > Usage + quotas
Tools
architecture_designer.py
Generates architecture pattern recommendations based on requirements.
python scripts/architecture_designer.py \
--app-type web_app \
--users 50000 \
--requirements '{"budget_monthly_usd": 1000, "compliance": ["HIPAA"]}' \
--json
Input: Application type, expected users, JSON requirements Output: Recommended pattern, service stack, cost estimate, pros/cons
cost_optimizer.py
Analyzes Azure resource configurations for cost savings.
python scripts/cost_optimizer.py --config resources.json --json
Input: JSON file with current Azure resource inventory Output: Recommendations for:
- Idle resource removal
- VM and database right-sizing
- Reserved Instance purchases
- Storage tier transitions
- Unused public IPs and load balancers
bicep_generator.py
Generates Bicep template scaffolds from architecture type.
python scripts/bicep_generator.py --arch-type microservices --output main.bicep
Output: Production-ready Bicep templates with:
- Managed Identity (no passwords)
- Key Vault integration
- Diagnostic settings for Azure Monitor
- Network security groups
- Tags for cost allocation
Quick Start
Web App Architecture (< $100/month)
Ask: "Design an Azure web app for a startup with 5000 users"
Result:
- App Service (B1 Linux) for the application
- Azure SQL Serverless for relational data
- Azure Blob Storage for static assets
- Front Door (free tier) for CDN and routing
- Key Vault for secrets
- Estimated: $40-80/month
Microservices on AKS ($500-2000/month)
Ask: "Design a microservices architecture on Azure for a SaaS platform with 50k users"
Result:
- AKS cluster with 3 node pools (system, app, jobs)
- API Management for gateway and rate limiting
- Cosmos DB for multi-model data
- Service Bus for async messaging
- Azure Monitor + Application Insights for observability
- Multi-zone deployment
Serverless Event-Driven (< $200/month)
Ask: "Design an event-driven backend for processing orders"
Result:
- Azure Functions (Consumption plan) for compute
- Event Grid for event routing
- Service Bus for reliable messaging
- Cosmos DB for order data
- Application Insights for monitoring
- Estimated: $30-150/month depending on volume
Data Pipeline ($300-1500/month)
Ask: "Design a data pipeline for ingesting 10M events/day"
Result:
- Event Hubs for ingestion
- Stream Analytics or Functions for processing
- Data Lake Storage Gen2 for raw data
- Synapse Analytics for warehouse
- Power BI for dashboards
Input Requirements
Provide these details for architecture design:
| Requirement | Description | Example |
|---|---|---|
| Application type | What you're building | SaaS platform, mobile backend |
| Expected scale | Users, requests/sec | 10k users, 100 RPS |
| Budget | Monthly Azure limit | $500/month max |
| Team context | Size, Azure experience | 3 devs, intermediate |
| Compliance | Regulatory needs | HIPAA, GDPR, SOC 2 |
| Availability | Uptime requirements | 99.9% SLA, 1hr RPO |
JSON Format:
{
"application_type": "saas_platform",
"expected_users": 10000,
"requests_per_second": 100,
"budget_monthly_usd": 500,
"team_size": 3,
"azure_experience": "intermediate",
"compliance": ["SOC2"],
"availability_sla": "99.9%"
}
Anti-Patterns
| Anti-Pattern | Why It Fails | Do This Instead |
|---|---|---|
| ARM JSON templates for new projects | Verbose, hard to read, no modules | Use Bicep — compiles to ARM, cleaner syntax |
| Storing secrets in App Settings | Secrets visible in portal, no rotation | Use Key Vault references in App Settings |
| Single large AKS node pool | Cannot optimize for different workloads | Use multiple node pools: system, app, jobs |
| Public endpoints on PaaS services | Exposed attack surface | Use Private Endpoints + VNet integration |
| Over-provisioning "just in case" | Wastes budget month one | Start small, use autoscale, right-size monthly |
| Shared resource groups for everything | Blast radius, RBAC nightmares | One resource group per environment per workload |
| No tagging strategy | Cannot track costs or ownership | Tag: environment, owner, cost-center, app-name |
| Using classic resources | Deprecated, limited features | Use ARM/Bicep resources exclusively |
Output Formats
Architecture Design
- Pattern recommendation with rationale
- Service stack diagram (ASCII)
- Monthly cost estimate and trade-offs
IaC Templates
- Bicep: Recommended — first-party, module support, clean syntax
- ARM JSON: Generated from Bicep when needed
- Terraform HCL: Multi-cloud compatible using azurerm provider
Cost Analysis
- Current spend breakdown with optimization recommendations
- Priority action list (high/medium/low) and implementation checklist
Cross-References
| Skill | Relationship |
|---|---|
engineering-team/aws-solution-architect |
AWS equivalent — same 6-step workflow, different services |
engineering-team/gcp-cloud-architect |
GCP equivalent — completes the cloud trifecta |
engineering-team/senior-devops |
Broader DevOps scope — pipelines, monitoring, containerization |
engineering/terraform-patterns |
IaC implementation — use for Terraform modules targeting Azure |
engineering/ci-cd-pipeline-builder |
Pipeline construction — automates Azure DevOps and GitHub Actions |
Reference Documentation
| Document | Contents |
|---|---|
references/architecture_patterns.md |
5 patterns: web app, microservices/AKS, serverless, data pipeline, multi-region |
references/service_selection.md |
Decision matrices for compute, database, storage, messaging, networking |
references/best_practices.md |
Naming conventions, tagging, RBAC, network security, monitoring, DR |
| 1 | |
| 2 | name "azure-cloud-architect" |
| 3 | description "Design Azure architectures for startups and enterprises. Use when asked to design Azure infrastructure, create Bicep/ARM templates, optimize Azure costs, set up Azure DevOps pipelines, or migrate to Azure. Covers AKS, App Service, Azure Functions, Cosmos DB, and cost optimization." |
| 4 | |
| 5 | |
| 6 | # Azure Cloud Architect |
| 7 | |
| 8 | Design scalable, cost-effective Azure architectures for startups and enterprises with Bicep infrastructure-as-code templates. |
| 9 | |
| 10 | |
| 11 | |
| 12 | ## Workflow |
| 13 | |
| 14 | ### Step 1: Gather Requirements |
| 15 | |
| 16 | Collect application specifications: |
| 17 | |
| 18 | |
| 19 | - Application type (web app, mobile backend, data pipeline, SaaS, microservices) |
| 20 | - Expected users and requests per second |
| 21 | - Budget constraints (monthly spend limit) |
| 22 | - Team size and Azure experience level |
| 23 | - Compliance requirements (GDPR, HIPAA, SOC 2, ISO 27001) |
| 24 | - Availability requirements (SLA, RPO/RTO) |
| 25 | - Region preferences (data residency, latency) |
| 26 | |
| 27 | |
| 28 | ### Step 2: Design Architecture |
| 29 | |
| 30 | Run the architecture designer to get pattern recommendations: |
| 31 | |
| 32 | |
| 33 | python scripts/architecture_designer.py \ |
| 34 | --app-type web_app \ |
| 35 | --users 10000 \ |
| 36 | --requirements '{"budget_monthly_usd": 500, "compliance": ["SOC2"]}' |
| 37 | |
| 38 | |
| 39 | **Example output:** |
| 40 | |
| 41 | |
| 42 | { |
| 43 | "recommended_pattern": "app_service_web", |
| 44 | "service_stack": ["App Service", "Azure SQL", "Front Door", "Key Vault", "Entra ID"], |
| 45 | "estimated_monthly_cost_usd": 280, |
| 46 | "pros": ["Managed platform", "Built-in autoscale", "Deployment slots"], |
| 47 | "cons": ["Less control than VMs", "Platform constraints", "Cold start on consumption plans"] |
| 48 | } |
| 49 | |
| 50 | |
| 51 | Select from recommended patterns: |
| 52 | **App Service Web**: Front Door + App Service + Azure SQL + Redis Cache |
| 53 | **Microservices on AKS**: AKS + Service Bus + Cosmos DB + API Management |
| 54 | **Serverless Event-Driven**: Functions + Event Grid + Service Bus + Cosmos DB |
| 55 | **Data Pipeline**: Data Factory + Synapse Analytics + Data Lake Storage + Event Hubs |
| 56 | |
| 57 | See `references/architecture_patterns.md` for detailed pattern specifications. |
| 58 | |
| 59 | **Validation checkpoint:** Confirm the recommended pattern matches the team's operational maturity and compliance requirements before proceeding to Step 3. |
| 60 | |
| 61 | ### Step 3: Generate IaC Templates |
| 62 | |
| 63 | Create infrastructure-as-code for the selected pattern: |
| 64 | |
| 65 | |
| 66 | # Web app stack (Bicep) |
| 67 | python scripts/bicep_generator.py --arch-type web-app --output main.bicep |
| 68 | |
| 69 | |
| 70 | **Example Bicep output (core web app resources):** |
| 71 | |
| 72 | |
| 73 | @description('The environment name') |
| 74 | param environment string = 'dev' |
| 75 | |
| 76 | @description('The Azure region for resources') |
| 77 | param location string = resourceGroup().location |
| 78 | |
| 79 | @description('The application name') |
| 80 | param appName string = 'myapp' |
| 81 | |
| 82 | // App Service Plan |
| 83 | resource appServicePlan 'Microsoft.Web/serverfarms@2023-01-01' = { |
| 84 | name: '${environment}-${appName}-plan' |
| 85 | location: location |
| 86 | sku: { |
| 87 | name: 'P1v3' |
| 88 | tier: 'PremiumV3' |
| 89 | capacity: 1 |
| 90 | } |
| 91 | properties: { |
| 92 | reserved: true // Linux |
| 93 | } |
| 94 | } |
| 95 | |
| 96 | // App Service |
| 97 | resource appService 'Microsoft.Web/sites@2023-01-01' = { |
| 98 | name: '${environment}-${appName}-web' |
| 99 | location: location |
| 100 | properties: { |
| 101 | serverFarmId: appServicePlan.id |
| 102 | httpsOnly: true |
| 103 | siteConfig: { |
| 104 | linuxFxVersion: 'NODE|20-lts' |
| 105 | minTlsVersion: '1.2' |
| 106 | ftpsState: 'Disabled' |
| 107 | alwaysOn: true |
| 108 | } |
| 109 | } |
| 110 | identity: { |
| 111 | type: 'SystemAssigned' |
| 112 | } |
| 113 | } |
| 114 | |
| 115 | // Azure SQL Database |
| 116 | resource sqlServer 'Microsoft.Sql/servers@2023-05-01-preview' = { |
| 117 | name: '${environment}-${appName}-sql' |
| 118 | location: location |
| 119 | properties: { |
| 120 | administrators: { |
| 121 | azureADOnlyAuthentication: true |
| 122 | } |
| 123 | minimalTlsVersion: '1.2' |
| 124 | } |
| 125 | } |
| 126 | |
| 127 | resource sqlDatabase 'Microsoft.Sql/servers/databases@2023-05-01-preview' = { |
| 128 | parent: sqlServer |
| 129 | name: '${appName}-db' |
| 130 | location: location |
| 131 | sku: { |
| 132 | name: 'GP_S_Gen5_2' |
| 133 | tier: 'GeneralPurpose' |
| 134 | } |
| 135 | properties: { |
| 136 | autoPauseDelay: 60 |
| 137 | minCapacity: json('0.5') |
| 138 | } |
| 139 | } |
| 140 | |
| 141 | |
| 142 | > Full templates including Front Door, Key Vault, Managed Identity, and monitoring are generated by `bicep_generator.py` and also available in `references/architecture_patterns.md`. |
| 143 | |
| 144 | **Bicep is the recommended IaC language for Azure.** Prefer Bicep over ARM JSON templates: Bicep compiles to ARM JSON, has cleaner syntax, supports modules, and is first-party supported by Microsoft. |
| 145 | |
| 146 | ### Step 4: Review Costs |
| 147 | |
| 148 | Analyze estimated costs and optimization opportunities: |
| 149 | |
| 150 | |
| 151 | python scripts/cost_optimizer.py \ |
| 152 | --config current_resources.json \ |
| 153 | --json |
| 154 | |
| 155 | |
| 156 | **Example output:** |
| 157 | |
| 158 | |
| 159 | { |
| 160 | "current_monthly_usd": 2000, |
| 161 | "recommendations": [ |
| 162 | { "action": "Right-size SQL Database GP_S_Gen5_8 to GP_S_Gen5_2", "savings_usd": 380, "priority": "high" }, |
| 163 | { "action": "Purchase 1-year Reserved Instances for AKS node pools", "savings_usd": 290, "priority": "high" }, |
| 164 | { "action": "Move Blob Storage to Cool tier for objects >30 days old", "savings_usd": 65, "priority": "medium" } |
| 165 | ], |
| 166 | "total_potential_savings_usd": 735 |
| 167 | } |
| 168 | |
| 169 | |
| 170 | Output includes: |
| 171 | Monthly cost breakdown by service |
| 172 | Right-sizing recommendations |
| 173 | Reserved Instance and Savings Plan opportunities |
| 174 | Potential monthly savings |
| 175 | |
| 176 | ### Step 5: Configure CI/CD |
| 177 | |
| 178 | Set up Azure DevOps Pipelines or GitHub Actions with Azure: |
| 179 | |
| 180 | |
| 181 | # GitHub Actions — deploy Bicep to Azure |
| 182 | name: Deploy Infrastructure |
| 183 | on: |
| 184 | push: |
| 185 | branches: [main] |
| 186 | |
| 187 | permissions: |
| 188 | id-token: write |
| 189 | contents: read |
| 190 | |
| 191 | jobs: |
| 192 | deploy: |
| 193 | runs-on: ubuntu-latest |
| 194 | steps: |
| 195 | - uses: actions/checkout@v4 |
| 196 | |
| 197 | - uses: azure/login@v2 |
| 198 | with: |
| 199 | client-id: ${{ secrets.AZURE_CLIENT_ID }} |
| 200 | tenant-id: ${{ secrets.AZURE_TENANT_ID }} |
| 201 | subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} |
| 202 | |
| 203 | - uses: azure/arm-deploy@v2 |
| 204 | with: |
| 205 | resourceGroupName: rg-myapp-dev |
| 206 | template: ./infra/main.bicep |
| 207 | parameters: environment=dev |
| 208 | |
| 209 | |
| 210 | |
| 211 | # Azure DevOps Pipeline |
| 212 | trigger: |
| 213 | branches: |
| 214 | include: |
| 215 | - main |
| 216 | |
| 217 | pool: |
| 218 | vmImage: 'ubuntu-latest' |
| 219 | |
| 220 | steps: |
| 221 | - task: AzureCLI@2 |
| 222 | inputs: |
| 223 | azureSubscription: 'MyServiceConnection' |
| 224 | scriptType: 'bash' |
| 225 | scriptLocation: 'inlineScript' |
| 226 | inlineScript: | |
| 227 | az deployment group create \ |
| 228 | --resource-group rg-myapp-dev \ |
| 229 | --template-file infra/main.bicep \ |
| 230 | --parameters environment=dev |
| 231 | |
| 232 | |
| 233 | ### Step 6: Security Review |
| 234 | |
| 235 | Validate security posture before production: |
| 236 | |
| 237 | **Identity**: Entra ID (Azure AD) with RBAC, Managed Identity for service-to-service auth — never store credentials in code |
| 238 | **Secrets**: Key Vault for all secrets, certificates, and connection strings |
| 239 | **Network**: NSGs on all subnets, Private Endpoints for PaaS services, Application Gateway with WAF |
| 240 | **Encryption**: TLS 1.2+ in transit, Azure-managed or customer-managed keys at rest |
| 241 | **Monitoring**: Microsoft Defender for Cloud enabled, Azure Policy for guardrails |
| 242 | **Compliance**: Azure Policy assignments for SOC 2 / HIPAA / ISO 27001 initiatives |
| 243 | |
| 244 | **If deployment fails:** |
| 245 | |
| 246 | Check the deployment status: |
| 247 | |
| 248 | az deployment group show \ |
| 249 | --resource-group rg-myapp-dev \ |
| 250 | --name main \ |
| 251 | --query 'properties.error' |
| 252 | |
| 253 | Review Activity Log for RBAC or policy errors. |
| 254 | Validate the Bicep template before deploying: |
| 255 | |
| 256 | az bicep build --file main.bicep |
| 257 | az deployment group validate \ |
| 258 | --resource-group rg-myapp-dev \ |
| 259 | --template-file main.bicep |
| 260 | |
| 261 | |
| 262 | **Common failure causes:** |
| 263 | RBAC permission errors — verify the deploying principal has Contributor on the resource group |
| 264 | Resource provider not registered — run `az provider register --namespace Microsoft.Web` |
| 265 | Naming conflicts — Azure resource names are often globally unique (storage accounts, web apps) |
| 266 | Quota exceeded — request quota increase via Azure Portal > Subscriptions > Usage + quotas |
| 267 | |
| 268 | |
| 269 | |
| 270 | ## Tools |
| 271 | |
| 272 | ### architecture_designer.py |
| 273 | |
| 274 | Generates architecture pattern recommendations based on requirements. |
| 275 | |
| 276 | |
| 277 | python scripts/architecture_designer.py \ |
| 278 | --app-type web_app \ |
| 279 | --users 50000 \ |
| 280 | --requirements '{"budget_monthly_usd": 1000, "compliance": ["HIPAA"]}' \ |
| 281 | --json |
| 282 | |
| 283 | |
| 284 | **Input:** Application type, expected users, JSON requirements |
| 285 | **Output:** Recommended pattern, service stack, cost estimate, pros/cons |
| 286 | |
| 287 | ### cost_optimizer.py |
| 288 | |
| 289 | Analyzes Azure resource configurations for cost savings. |
| 290 | |
| 291 | |
| 292 | python scripts/cost_optimizer.py --config resources.json --json |
| 293 | |
| 294 | |
| 295 | **Input:** JSON file with current Azure resource inventory |
| 296 | **Output:** Recommendations for: |
| 297 | Idle resource removal |
| 298 | VM and database right-sizing |
| 299 | Reserved Instance purchases |
| 300 | Storage tier transitions |
| 301 | Unused public IPs and load balancers |
| 302 | |
| 303 | ### bicep_generator.py |
| 304 | |
| 305 | Generates Bicep template scaffolds from architecture type. |
| 306 | |
| 307 | |
| 308 | python scripts/bicep_generator.py --arch-type microservices --output main.bicep |
| 309 | |
| 310 | |
| 311 | **Output:** Production-ready Bicep templates with: |
| 312 | Managed Identity (no passwords) |
| 313 | Key Vault integration |
| 314 | Diagnostic settings for Azure Monitor |
| 315 | Network security groups |
| 316 | Tags for cost allocation |
| 317 | |
| 318 | |
| 319 | |
| 320 | ## Quick Start |
| 321 | |
| 322 | ### Web App Architecture (< $100/month) |
| 323 | |
| 324 | |
| 325 | Ask: "Design an Azure web app for a startup with 5000 users" |
| 326 | |
| 327 | Result: |
| 328 | - App Service (B1 Linux) for the application |
| 329 | - Azure SQL Serverless for relational data |
| 330 | - Azure Blob Storage for static assets |
| 331 | - Front Door (free tier) for CDN and routing |
| 332 | - Key Vault for secrets |
| 333 | - Estimated: $40-80/month |
| 334 | |
| 335 | |
| 336 | ### Microservices on AKS ($500-2000/month) |
| 337 | |
| 338 | |
| 339 | Ask: "Design a microservices architecture on Azure for a SaaS platform with 50k users" |
| 340 | |
| 341 | Result: |
| 342 | - AKS cluster with 3 node pools (system, app, jobs) |
| 343 | - API Management for gateway and rate limiting |
| 344 | - Cosmos DB for multi-model data |
| 345 | - Service Bus for async messaging |
| 346 | - Azure Monitor + Application Insights for observability |
| 347 | - Multi-zone deployment |
| 348 | |
| 349 | |
| 350 | ### Serverless Event-Driven (< $200/month) |
| 351 | |
| 352 | |
| 353 | Ask: "Design an event-driven backend for processing orders" |
| 354 | |
| 355 | Result: |
| 356 | - Azure Functions (Consumption plan) for compute |
| 357 | - Event Grid for event routing |
| 358 | - Service Bus for reliable messaging |
| 359 | - Cosmos DB for order data |
| 360 | - Application Insights for monitoring |
| 361 | - Estimated: $30-150/month depending on volume |
| 362 | |
| 363 | |
| 364 | ### Data Pipeline ($300-1500/month) |
| 365 | |
| 366 | |
| 367 | Ask: "Design a data pipeline for ingesting 10M events/day" |
| 368 | |
| 369 | Result: |
| 370 | - Event Hubs for ingestion |
| 371 | - Stream Analytics or Functions for processing |
| 372 | - Data Lake Storage Gen2 for raw data |
| 373 | - Synapse Analytics for warehouse |
| 374 | - Power BI for dashboards |
| 375 | |
| 376 | |
| 377 | |
| 378 | |
| 379 | ## Input Requirements |
| 380 | |
| 381 | Provide these details for architecture design: |
| 382 | |
| 383 | | Requirement | Description | Example | |
| 384 | |-------------|-------------|---------| |
| 385 | | Application type | What you're building | SaaS platform, mobile backend | |
| 386 | | Expected scale | Users, requests/sec | 10k users, 100 RPS | |
| 387 | | Budget | Monthly Azure limit | $500/month max | |
| 388 | | Team context | Size, Azure experience | 3 devs, intermediate | |
| 389 | | Compliance | Regulatory needs | HIPAA, GDPR, SOC 2 | |
| 390 | | Availability | Uptime requirements | 99.9% SLA, 1hr RPO | |
| 391 | |
| 392 | **JSON Format:** |
| 393 | |
| 394 | |
| 395 | { |
| 396 | "application_type": "saas_platform", |
| 397 | "expected_users": 10000, |
| 398 | "requests_per_second": 100, |
| 399 | "budget_monthly_usd": 500, |
| 400 | "team_size": 3, |
| 401 | "azure_experience": "intermediate", |
| 402 | "compliance": ["SOC2"], |
| 403 | "availability_sla": "99.9%" |
| 404 | } |
| 405 | |
| 406 | |
| 407 | |
| 408 | |
| 409 | ## Anti-Patterns |
| 410 | |
| 411 | | Anti-Pattern | Why It Fails | Do This Instead | |
| 412 | |---|---|---| |
| 413 | | ARM JSON templates for new projects | Verbose, hard to read, no modules | Use Bicep — compiles to ARM, cleaner syntax | |
| 414 | | Storing secrets in App Settings | Secrets visible in portal, no rotation | Use Key Vault references in App Settings | |
| 415 | | Single large AKS node pool | Cannot optimize for different workloads | Use multiple node pools: system, app, jobs | |
| 416 | | Public endpoints on PaaS services | Exposed attack surface | Use Private Endpoints + VNet integration | |
| 417 | | Over-provisioning "just in case" | Wastes budget month one | Start small, use autoscale, right-size monthly | |
| 418 | | Shared resource groups for everything | Blast radius, RBAC nightmares | One resource group per environment per workload | |
| 419 | | No tagging strategy | Cannot track costs or ownership | Tag: environment, owner, cost-center, app-name | |
| 420 | | Using classic resources | Deprecated, limited features | Use ARM/Bicep resources exclusively | |
| 421 | |
| 422 | |
| 423 | |
| 424 | ## Output Formats |
| 425 | |
| 426 | ### Architecture Design |
| 427 | |
| 428 | Pattern recommendation with rationale |
| 429 | Service stack diagram (ASCII) |
| 430 | Monthly cost estimate and trade-offs |
| 431 | |
| 432 | ### IaC Templates |
| 433 | |
| 434 | **Bicep**: Recommended — first-party, module support, clean syntax |
| 435 | **ARM JSON**: Generated from Bicep when needed |
| 436 | **Terraform HCL**: Multi-cloud compatible using azurerm provider |
| 437 | |
| 438 | ### Cost Analysis |
| 439 | |
| 440 | Current spend breakdown with optimization recommendations |
| 441 | Priority action list (high/medium/low) and implementation checklist |
| 442 | |
| 443 | |
| 444 | |
| 445 | ## Cross-References |
| 446 | |
| 447 | | Skill | Relationship | |
| 448 | |-------|-------------| |
| 449 | | `engineering-team/aws-solution-architect` | AWS equivalent — same 6-step workflow, different services | |
| 450 | | `engineering-team/gcp-cloud-architect` | GCP equivalent — completes the cloud trifecta | |
| 451 | | `engineering-team/senior-devops` | Broader DevOps scope — pipelines, monitoring, containerization | |
| 452 | | `engineering/terraform-patterns` | IaC implementation — use for Terraform modules targeting Azure | |
| 453 | | `engineering/ci-cd-pipeline-builder` | Pipeline construction — automates Azure DevOps and GitHub Actions | |
| 454 | |
| 455 | |
| 456 | |
| 457 | ## Reference Documentation |
| 458 | |
| 459 | | Document | Contents | |
| 460 | |----------|----------| |
| 461 | | `references/architecture_patterns.md` | 5 patterns: web app, microservices/AKS, serverless, data pipeline, multi-region | |
| 462 | | `references/service_selection.md` | Decision matrices for compute, database, storage, messaging, networking | |
| 463 | | `references/best_practices.md` | Naming conventions, tagging, RBAC, network security, monitoring, DR | |
| 464 |
Discussion
Browse more free Claude skills or everything in Development.