部署入口
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018
盖茨允许从外部服务自动收集运行状况信号,然后在所有信号都成功或停止部署超时时提升发布。 通常,入口用于与事件管理、问题管理、变更管理、监视和外部审批系统有关。
用例
部署入口的一些常见用例包括:
- 事件管理:在继续部署之前,请确保满足某些条件。 例如,确保仅当不存在优先级零 bug 时,才会进行部署。
- 寻求审批:通过与其他服务(如 Microsoft Teams 或 Slack)集成并等待审批,通知外部用户(例如法律部门、审核员或 IT 经理)部署。
- 质量验证:查询管道指标,例如通过率或代码覆盖率,并且仅在它们位于预定义阈值内时才进行部署。
- 安全扫描:执行安全检查,例如项目扫描、代码签名和策略检查。 部署入口可能会启动扫描并等待扫描完成,或者只需检查完成。
- 相对于基线的用户体验:使用产品遥测,确保用户体验不会从基线状态回归。 部署前的用户体验指标可用作基线。
- 更改管理:等待 ServiceNow 等系统中的更改管理过程完成,然后再继续部署。
- 基础结构运行状况:在部署后根据符合性规则执行监视和验证基础结构,或等待正常的资源利用率和积极的安全报告。
大多数运行状况参数随时间而变化,定期将状态从正常更改为不正常,并重新更改为正常。 为了考虑到这种变化,所有入口都会定期重新评估,直到它们全部同时成功。 如果所有入口不在同一间隔和配置超时之前成功,则发布执行和部署不会继续。
定义阶段的门
可以在阶段开始时启用入口, (预部署条件) 或阶段结束时 (部署后条件) 或两者。 有关更多详细信息,请参阅 “设置入口 ”。
评估之前的延迟是入口评估过程开始时的延迟,允许入口初始化、稳定并开始为当前部署提供准确的结果。 有关更多详细信息,请参阅 Gate 评估流 。
- 对于 部署前入口,延迟是针对要部署的项目记录所有 bug 所需的时间。
- 对于 部署后入口,延迟将是部署应用达到稳定操作状态所花费的最大时间、在部署阶段执行所有所需测试所花费的时间,以及部署后记录事件所需的时间。
默认情况下,以下入口可用:
- 调用 Azure 函数:触发 Azure 函数的执行并确保成功完成。 有关详细信息,请参阅 Azure 函数任务 。
- 查询 Azure Monitor 警报:观察已配置的 Azure Monitor 警报规则,以用于活动警报。 有关详细信息,请参阅 Azure Monitor 任务 。
- 调用 REST API:调用 REST API,并在返回成功响应时继续。 有关详细信息,请参阅 调用 REST API 任务 。
- 查询工作项:确保从查询返回的匹配工作项数处于阈值内。 有关详细信息,请参阅 “查询工作项”任务 。
- 安全性和符合性评估:评估给定订阅和资源组范围内的资源Azure Policy合规性,并选择性地在特定资源级别评估。 有关详细信息,请参阅“检查Azure Policy符合性任务”。
还可以使用市场扩展 创建自己的入口 。
适用于所有入口的评估选项包括:
- 重新评估入口之间的时间。 入口的连续评估之间的时间间隔。 在每个采样间隔内,新请求同时发送到每个门,并评估新结果。 建议采样间隔大于配置入口最长的典型响应时间,以允许接收所有响应的时间进行评估。
- 超时后入口失败。 所有入口的最大评估周期。 如果在同一采样间隔内所有入口都成功之前已达到超时时间,则部署将被拒绝。
- 盖茨和批准。 如果同时配置了两者,请选择入口和审批所需的执行顺序。 对于部署前条件,默认值为先提示手动 (用户) 审批,然后评估入口。 如果用户拒绝发布,则会保存系统评估门函数。 对于部署后条件,默认值为评估入口并仅在所有入口都成功时提示手动审批。 这可确保审批者拥有批准所需的所有信息。
有关入口分析的详细信息,请参阅查看审批日志和监视和跟踪部署。
门评估流示例
下图演示了入口评估流,其中,在初始稳定延迟期和三个采样间隔之后,部署获得批准。
下图演示了门评估流,其中,在初始稳定延迟期之后,并非所有入口在每次采样间隔都成功。 在这种情况下,超时期限过期后,部署将被拒绝。