部署到应用服务

已完成

每个开发团队都有独特的要求,因此很难做到在任何云服务上都能实现高效的部署管道。 应用服务支持自动和手动部署。

自动化部署

自动化部署(也称为持续部署)是一种过程,用于按快速、重复的模式推出新功能和 bug 修补程序,同时将对最终用户的影响降到最低。

Azure 支持直接从多个源进行自动化部署。 可以使用以下选项:

  • Azure DevOps 服务:可以将代码推送到 Azure DevOps 服务、在云中生成代码、运行测试、根据代码生成发布,最后将代码推送到 Azure Web 应用。
  • GitHub:Azure 支持直接从 GitHub 进行自动化部署。 在将 GitHub 存储库连接到 Azure 进行自动化部署时,系统将自动部署推送到 GitHub 上的生产分支的任何更改。
  • Bitbucket:由于 Bitbucket 与 GitHub 很相似,因此可使用它来配置自动化部署。

手动部署

可通过下述几个选项将代码手动推送到 Azure:

  • Git:应用服务 Web 应用提供了 Git URL,你可将它添加为远程存储库。 推送到远程存储库即会部署你的应用。
  • CLI:webapp upaz 命令行接口的一项功能,可打包应用并对其进行部署。 与其他部署方法不同,az webapp up 可为你创建新的应用服务 Web 应用(如果尚未创建)。
  • Zip 部署:使用 curl 或类似的 HTTP 实用工具将 ZIP 形式的应用程序文件发送到应用服务。
  • FTP/S:FTP(或 FTPS)是一种将代码推送到应用服务等多个托管环境的传统方式。

使用部署槽位

在部署新的生产版本时,应尽可能使用部署槽位。 如果使用标准应用服务计划层或更好的层级,则可以将应用部署到过渡环境,然后交换过渡槽和生产槽。 交换操作将根据生产规模所需预热必要的辅助角色实例,从而缩短故障时间。

持续部署代码

如果项目中指定了用于测试、QA 和过渡的分支,则每个分支都应持续部署到过渡槽位。 这样便于利益干系人轻松地访问和测试已部署的分支。

持续部署容器

对于 Azure 容器注册表或其他容器注册表中的自定义容器,请将映像部署到过渡槽并交换到生产中,以防止停机。 这一自动过程比代码部署更复杂,因为必须将映像推送到容器注册表上,并更新 Webapp 上的映像标记。

  • 生成并标记映像:作为生成管道的一部分,使用 git 提交 ID、时间戳或其他可识别信息标记映像。 最好不要使用默认的“latest”标记。 否则将很难追溯到当前部署的代码,导致调试难度加大。
  • 推送标记的映像:生成并标记映像后,管道会将映像推送到容器注册表。 下一步,部署槽位将从容器注册表中拉取已标记的映像。
  • 使用新的映像标记更新部署槽位:更新此属性后,站点将自动重启并拉取新的容器映像。