部署到应用服务
每个开发团队都有独特的要求,因此很难做到在任何云服务上都能实现高效的部署管道。 应用服务支持自动和手动部署。
自动化部署
自动化部署(也称为持续部署)是一种过程,用于按快速、重复的模式推出新功能和 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,你可将它添加为远程存储库。 推送到远程存储库即会部署你的应用。
-
CLI:
az 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 容器。