大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
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'
与 dc-azure 的衔接
| 主题 | dc-azure 侧重 | 本课侧重 |
|---|---|---|
| 服务选型 | 全栈云服务地图 | 平台层:App Service vs AKS vs ARO |
| 身份 | Managed Identity 概念 | Key Vault 引用、RBAC 最小权限 |
| 网络 | VNet、NSG | Application Gateway + 内部 MySQL 专用终结点 |
云函数细节见 dcp-functions;密钥同步见 dcp-cloud-tools 的 ESO。
练习
- 为 CodeRoadMap 画 Azure 架构:Front Door → App Service(platform)+ App Service(backend)+ Flexible Server
- 写一份决策表:何时选 App Service、何时选 AKS、何时选 ARO
- 在 /roadmaps/devops 关联 cloud-providers 节点,列出 Azure 与 AWS 在托管 Java 上的对应服务名
小结
Azure 平台层 = Resource Group 组织资源 + Bicep/ARM 声明式部署 + PaaS/容器多种托管路径。 下一课汇总 云原生工具(含 External Secrets Operator)在多云 K8s 上的用法。