Azure DevOps 发布管道:多环境部署与手动审批流程配置
·
Azure DevOps 发布管道配置:多环境部署与手动审批流程
在Azure DevOps中,发布管道用于自动化应用程序的部署过程。支持多环境部署(如开发、测试、生产环境)和手动审批流程,可以确保部署的安全性和质量控制。手动审批允许在关键阶段(如从测试环境升级到生产环境)由指定人员审核和批准部署,避免意外错误。下面我将逐步解释如何配置,基于Azure DevOps的经典UI(图形界面),因为它更直观易用。所有步骤都基于官方文档和最佳实践,确保真实可靠。
步骤1: 创建基本发布管道
首先,在Azure DevOps项目中创建一个新的发布管道。这定义了部署的整体流程。
- 登录Azure DevOps门户,导航到“Pipelines” > “Releases”。
- 点击“New pipeline”或“New release pipeline”。
- 选择“Empty job”作为模板,开始自定义配置。
- 添加“Artifact”(工件),例如连接到你的构建管道输出(如Docker镜像或代码包)。这确保了部署源可靠。
步骤2: 添加多个环境(阶段)
多环境部署通过添加多个“Stages”(阶段)来实现,每个阶段对应一个环境(如Dev、Test、Prod)。环境之间可以顺序执行,确保部署逐步推进。
- 在发布管道编辑器中,点击“Add stage”按钮。
- 为每个环境创建独立阶段:
- Dev环境:命名为“Dev-Deploy”,用于开发环境部署。
- Test环境:命名为“Test-Deploy”,用于测试环境部署。
- Prod环境:命名为“Prod-Deploy”,用于生产环境部署。
- 配置每个阶段的部署任务:
- 在阶段属性中,设置“Deployment job”(部署作业),添加任务如“Azure App Service deploy”或“Kubernetes manifest deploy”,具体取决于你的应用类型。
- 例如,在Dev环境中,可以添加任务来自动部署到Azure Web App;在Prod环境中,添加更严格的健康检查。
步骤3: 配置手动审批流程
手动审批确保在部署到敏感环境(如生产)前,必须由授权人员批准。这通过在每个阶段前添加“Pre-deployment approvals”来实现。
- 启用审批:
- 在发布管道编辑器中,选择目标阶段(如“Prod-Deploy”)。
- 在阶段属性中,点击“Pre-deployment conditions”图标(闪电符号)。
- 在“Pre-deployment approvals”部分,勾选“Enable approvals”。
- 指定“Approvers”(审批者):输入用户或组名(如“Project Administrators”),并设置“Timeout”(超时时间,如24小时)。
- 定制审批规则:
- 可选:启用“Require all approvers”以确保所有指定人员都批准。
- 添加“Instructions for approvers”:提供审批说明,如“请验证测试报告后再批准”。
- 应用到其他环境:重复上述步骤,为其他关键环境(如Test到Prod的过渡)添加审批。例如:
- 在Test环境后添加Prod环境,并在Prod阶段设置审批。
示例YAML配置(可选参考)
虽然经典UI更适合审批配置,但Azure DevOps也支持YAML定义基础管道。以下是一个简单YAML示例,展示多阶段结构(审批需通过UI添加,因为YAML不支持直接定义审批)。保存为.yml文件并导入到发布管道中。
trigger: none # 手动触发发布
stages:
- stage: Dev_Deploy
displayName: 'Dev Environment Deployment'
jobs:
- deployment: Deploy_Dev
environment: 'dev-env' # 引用Azure DevOps环境
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
inputs:
azureSubscription: 'your-subscription'
appName: 'dev-webapp'
package: '$(Pipeline.Workspace)/**/*.zip'
- stage: Test_Deploy
displayName: 'Test Environment Deployment'
dependsOn: Dev_Deploy # 依赖Dev阶段完成
jobs:
- deployment: Deploy_Test
environment: 'test-env'
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
inputs:
azureSubscription: 'your-subscription'
appName: 'test-webapp'
package: '$(Pipeline.Workspace)/**/*.zip'
- stage: Prod_Deploy
displayName: 'Prod Environment Deployment'
dependsOn: Test_Deploy # 依赖Test阶段完成
jobs:
- deployment: Deploy_Prod
environment: 'prod-env'
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
inputs:
azureSubscription: 'your-subscription'
appName: 'prod-webapp'
package: '$(Pipeline.Workspace)/**/*.zip'
注意:在YAML中定义环境后,需在Azure DevOps门户中手动为prod-env环境添加审批(通过“Environments”设置)。
测试和验证
- 测试配置:创建测试发布,模拟部署流程。检查审批是否触发:当部署到达Prod阶段时,Azure DevOps会发送通知邮件,审批者可以在门户中批准或拒绝。
- 最佳实践:
- 使用“Deployment Gates”(部署门)结合审批,如集成Azure Monitor检查应用健康。
- 为每个环境设置变量(如数据库连接字符串),确保隔离性。
- 监控日志:在“Releases”视图查看部署历史和审批记录。
总结
通过配置多环境部署和手动审批,你可以提升部署的可靠性和安全性。例如,开发环境自动部署加速迭代,生产环境手动审批减少风险。Azure DevOps的灵活性支持各种场景,如有问题,参考官方文档或社区论坛。定期审查审批规则,以适应团队变化。
更多推荐
所有评论(0)