Azure 平台
azure;衔接 dc-azure。
30 分钟
Azure 平台
Microsoft Azure 提供从 IaaS 到 PaaS、从 AKS 到 Azure Functions 的完整云平台。本课衔接 devops-cloud-essentials 中的 dc-azure 课,从 配置与平台 视角深入 Resource Group、ARM/Bicep、App Service、AKS、ARO、Key Vault 等组件,帮你在 /roadmaps/devops 的 cloud-providers / platform 节点上建立 Azure 对照表。基础设施代码见 terraform-essentials,容器见 kubernetes-essentials。
学习目标
- 理解 Azure 订阅 → Resource Group → Resource 层级与 RBAC 模型
- 会用 Bicep 声明式描述 CodeRoadMap 最小可运行栈(App Service + MySQL Flexible Server)
- 区分 AKS(vanilla K8s) 与 ARO(OpenShift 托管) 的适用场景
核心资源模型
Subscription(计费与配额边界)
└─ Resource Group(生命周期一致的资源集合,如 rg-coderoadmap-prod)
├─ App Service Plan + Web App(backend / frontend)
├─ Azure Database for MySQL Flexible Server
├─ Key Vault(密钥、连接串)
├─ Application Gateway / Front Door(入口)
└─ AKS / ARO 集群(容器路线)
Azure Policy 与 Blueprint 用于组织级合规;与 CM 工具(Puppet/Chef)配合时,Terraform/Bicep 创建 VM 后仍可用 Agent 收敛 OS 配置。
Bicep 示例
// main.bicep — 简化 CodeRoadMap 后端托管
param location string = resourceGroup().location
param appName string = 'coderoadmap-api'
resource plan 'Microsoft.Web/serverfarms@2022-09-01' = {
name: '${appName}-plan'
location: location
sku: { name: 'B1', tier: 'Basic' }
properties: { reserved: true } // Linux
}
resource webApp 'Microsoft.Web/sites@2022-09-01' = {
name: appName
location: location
properties: {
serverFarmId: plan.id
siteConfig: {
linuxFxVersion: 'JAVA|17-java17'
appSettings: [
{ name: 'SPRING_DATASOURCE_URL'; value: '@Microsoft.KeyVault(SecretUri=${dbConnSecret.properties.secretUri})' }
]
}
}
}
resource kv 'Microsoft.KeyVault/vaults@2023-02-01' existing = {
name: 'kv-coderoadmap-prod'
}
# azure-pipelines.yml 片段 — 部署到 App Service
trigger:
branches: [main]
stages:
- stage: Deploy
jobs:
- job: DeployBackend
steps:
- task: AzureWebApp@1
inputs:
azureSubscription: 'coderoadmap-prod'
appName: 'coderoadmap-api'
package: '$(Pipeline.Workspace)/backend.jar'