创建部署槽位
- 10 分钟
组织通常需要在隔离的环境中运行 Web 应用,在部署之前对其进行测试。 他们还需要快速部署,而不会影响用户。
假设你正在尝试决定是否使用槽位作为在社交媒体系统中部署 Web 应用的简化方法。 你想要了解部署插槽在部署期间是否会减少停机时间、是否可以简化回滚过程,以及能否在 Azure 中设置部署插槽。
在这里,你将了解部署槽位如何简化新代码的测试和推出。
使用部署插槽
在单个 Azure 应用服务 Web 应用中,可以创建多个部署槽位。 每个槽是该 Web 应用的单独实例,且具有单独的主机名。 可以将不同版本的 Web 应用部署到每个槽。
一个槽是生产槽。 这个插槽是用户连接时看到的 Web 应用。 确保部署到此槽的应用稳定且经过良好测试。
使用其他槽来托管新版本的 Web 应用。 针对这些实例,可以运行集成测试、验收测试和容量测试等测试。 在将代码移动到生产槽之前,请修复任何问题。 其他部署槽的行为类似于独立的应用服务实例,因此您可以确信,测试能够准确反映应用在生产环境中的运行方式。
如果对新应用版本的测试结果满意,请通过将其槽与生产槽交换来进行部署。 与代码部署不同,槽交换是即时的。 交换槽时,会交换槽主机名,并且立即将生产流量发送到新版应用。 使用槽交换功能进行部署时,您的应用程序永远不会以部分部署状态向公共 Web 公开。
如果发现尽管进行了仔细测试,但新版本仍然存在问题,则可以通过交换回槽进行回滚。
了解作为单独 Azure 资源的槽
将多个部署槽用于 Web 应用时,这些槽被视为该 Web 应用的单独实例。 例如,它们分别在 Azure 门户中的“ 所有资源 ”页上列出。 它们各自具有自己的 URL。 但是,每个槽共享应用服务计划的资源,包括虚拟机内存和 CPU 以及磁盘空间。
创建部署槽位和层级
只有在 Web 应用使用标准层、高级层或独立层中的应用服务计划时,部署槽才可用。 下表显示了可以创建的槽数上限:
| 层 | 最大暂存位数 |
|---|---|
| 免费 | 0 |
| 共享 | 0 |
| 基本 | 0 |
| 标准 | 5 |
| 高级 | 20 |
| 独立 | 20 |
避免在交换期间冷启动
开发人员用于创建 Web 应用的许多技术都需要在服务器上进行最终编译和其他作,然后才能向用户提供页面。 当应用启动并收到请求时,其中许多任务都已完成。 例如,如果使用 ASP.NET 生成应用,则代码会编译,并且当第一个用户请求页面时,视图将完成。 该页的后续请求收到更快的响应,因为代码已编译。
初始延迟称为 冷启动。 可以通过使用槽交换部署到生产环境来避免冷启动。 将槽交换到生产环境后,将会“预热”应用,因为操作会向站点根目录发送请求。 预热请求可确保完成所有编译和缓存任务。 交换后,网站的响应速度快得就像已经部署了几天一样。
创建部署槽位
在创建槽之前,请确保 Web 应用在标准层、高级层或独立层中运行:
在 Azure 门户中打开 Web 应用。
选择 部署槽 窗格。
选择 添加槽。
为槽命名。
选择是否从另一个插槽克隆设置。 如果选择克隆,则设置将从指定的槽复制到新槽。
注释
虽然可以将设置克隆到新插槽,但无法克隆内容。 新槽一开始都没有内容。 必须使用 Git 或其他部署策略部署内容。 克隆操作会将配置复制到新的插槽。 克隆设置后,可以独立更改两个槽的配置。
选择 “添加” 以创建新槽。 现在,您在部署插槽页的列表中有了新的插槽。 选择插槽以查看其管理面板。
访问插槽
新槽的主机名派生自 Web 应用名称和槽名称。 在部署槽页上选择槽位之后,你将获得此主机名:
可以将代码部署到新槽,就像为生产槽部署代码一样。 只需在所使用的部署工具的配置中替换新槽的名称或 URL。 如果使用 FTP 进行部署,您可以在槽位的 URL 下看到 FTP 主机名和用户名。
新槽实际上是具有其他主机名的独立 Web 应用。 只要互联网用户知道主机名,他们就能访问它。 除非使用搜索引擎注册槽或从爬网页面链接到该槽,否则该槽不会显示在搜索引擎索引中。 它对普通互联网用户仍然不清晰。
可以使用 IP 地址限制来控制对槽的访问。 创建允许访问槽的 IP 地址范围列表,或拒绝访问该槽的范围列表。 这些列表类似于可以在防火墙上设置的允许和拒绝范围。 使用此列表仅允许访问属于公司或开发团队的计算机。