Microsoft Azure Scale Sets 发布公共预览版

阅读数:233 2015 年 12 月 3 日

话题:架构

在近期的一篇博客中,负责微软 Azure 产品的 CTO Mark Russinovich 宣布了 Azure Scale Sets 这一新特性的公开预览版的发布。Azure Scale Sets 属于一种 Azure 计算资源,通过这一特性,可以对一组虚拟机(VM)以集合或组合的形式进行部署及管理。

对于那些需要部署一组相同规格的虚拟机的客户来说,当他们在部署虚拟机,或是对这些虚拟机进行水平伸缩时,这一新特性能够为他们带来一种一致的管理体验。通过这一服务,客户就无需事先搭建好额外的虚拟机以备不时之需了。

Azure Scale Set 支持运行 Windows 系统或 Linux 系统的虚拟机,也支持各种虚拟机的扩展。这一特性不仅支持 Azure Marketplace 中提供的虚拟机,也支持自定义的虚拟机。如果要创建或部署一个 Azure Scale Set,开发者可以利用基于 JSON 格式的Azure Resource Manager(ARM) 模板,通过 ARM 进行部署。此外,也可以通过 PowerShell cmdlet或 Azure 命令行(CLI)工具进行部署。

在定义 Azure Scale Set 时,客户必须指定一些必要的资源,包括一个资源组、网络适配(NIC)、可扩展存储、各种扩展以及负载均衡器(如适用)。

图片来源:https://azure.microsoft.com/en-us/blog/azure-vm-scale-sets-public-preview/

管理员也需要设定 VM Scale Set 的各种属性,包括所预期的 VM 的数量(上限),以及指示如何对伸缩操作进行管理的阀值。不过,按照 Russinovich所说:“与单实例的虚拟机组不同,在 VM Scale Set 中,你无需为每个虚拟机实例分别定义网络、存储属性和扩展资源,以及为这些资源建立关联。”

下图展示了如何通过 ARM 模板定义各种属性,包括 capacity 属性。

图片来源: (视频截图) https://www.youtube.com/watch?v=vh6sLvTNCCs

来自微软的高级程序经理 Guy Bowerman提出了一种适合使用这种架构的场景,即一个多虚拟机的无状态 web farm。在这种场景下,某个 web 客户端能够连接至某个具有外部 IP 地址的负载均衡器上。随后,负载均衡器将通过轮询调度算法,将访问在 Azure Scale Set 中所定义的多个 VM 中进行路由。如果在这个 Scale Set 中产生了 CPU 占用率升高的情况,比方说占用率在 60% 以上的情形持续了超过 5 分钟,那么该平台将自动创建另一台 VM 以进行水平伸缩。而一旦负载下降,比方说近 5 分钟内 CPU 占用率始终低于 50%,该平台就会自动减少 VM 的数目。

下图展示了该架构的大体结构。

图片来源: (视频截图) https://www.youtube.com/watch?v=vh6sLvTNCCs

Bowerman 还描述了另一种使用场景,它牵涉到网络地址转换(NAT)的使用,使私有的或内部的网络端口对外部客户端展现为不同的 IP 地址。在这一场景中,管理员可定义一个外部端口的范围,例如从 50000 至 50100。而在服务端内部,每个虚拟机仍然将暴露他们的常见端口号,例如用于 SSH 的端口号依然为 22。Inbound NAT 规则将为外部端口范围与内部虚拟机之间提供一个端口映射机制。例如端口号 50000 将对应第一台虚拟机,端口号 50001 则对应第二台虚拟机,以此类推。对于这种方式,可以减少外部端口号与内部服务器之间的关联。

下图展示了这种配置是如何搭建的。

图片来源: (视频截图) https://www.youtube.com/watch?v=vh6sLvTNCCs

查看英文原文:Microsoft Azure Scale Sets In Public Preview