部署到应用服务

已完成

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

自动化部署

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

Azure 应用服务支持从多个源代码管理系统自动部署,作为持续集成和部署(CI/CD)管道的一部分。 可以使用以下选项:

  • Azure DevOps 服务:可以将代码推送到 Azure DevOps 服务、在云中生成代码、运行测试、根据代码生成发布,最后将代码推送到 Azure Web 应用。
  • GitHub:Azure 支持直接从 GitHub 进行自动化部署。 在将 GitHub 存储库连接到 Azure 进行自动化部署时,系统将自动部署推送到 GitHub 上的生产分支的任何更改。
  • Bitbucket:支持 Bitbucket,尽管 GitHub 和 Azure DevOps 更常用,并且集成更好。

手动部署

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

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

注释

应用服务使用 Kudu 进行 Git 和基于 zip 的部署。 Kudu 处理文件同步和部署触发器。

使用部署槽位

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

持续部署代码

如果项目指定用于测试、QA 和暂存的分支,则应将每个分支持续部署到过渡槽。 这样,利益干系人就可以轻松访问和测试已部署的分支。

持续部署容器

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

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

Sidecar 容器

在 Azure 应用服务中,可以为每个已启用 sidecar 的自定义容器应用添加最多 9 个 sidecar 容器。 基于 Linux 的自定义容器应用支持 Sidecar 容器,并支持部署额外的服务和功能,而无需将它们紧密耦合到主应用程序容器。 例如,可以将监视、日志记录、配置和网络服务添加为 sidecar 容器。

可以通过应用管理页中的 部署中心 添加 sidecar 容器。