虚拟机规模集的特性和优势
Azure 虚拟机规模集提供了一种可缩放的方式,用于在一组虚拟机 (VM) 上运行应用程序。 规模集中的 VM 都可以具有相同的配置并运行相同的应用程序,也可以具有不同的配置并运行不同的应用程序。 随着需求增加,规模集中运行的虚拟机数量也随之增加。 随着需求减少,可以删除多余的 VM。 虚拟机规模集非常适合计算工作负载、大数据工作负载和容器工作负载等场景。
在我们的示例场景中,客户使用公司的一个网站来管理和查看运输状态。 由于网站可供全球范围的用户访问,因此有时很难预测某个特定时间的负载量。 此外,负载可能呈现季节性波动,由于年终的节假日,十二月是业务繁忙的时间。 你决定使用虚拟机规模集处理不断波动的负载,同时保持较低的客户请求响应时间。
本单元介绍虚拟机规模集的功能。 本单元结束时,你将明白规模集的工作方式。 你将了解规模集如何支持横向扩展和纵向扩展方案,以及如何使用自动缩放和基于计划的缩放来调整规模集可用的资源。
什么是虚拟机规模集?
Azure 虚拟机规模集可用于部署和管理多个负载均衡的虚拟机。 虚拟机规模集高度智能化,能自动纵向扩展或减少虚拟机实例数。
用于激活纵向扩展或缩减的条件可由自定义计划或者实际需求和使用情况决定。 规模集可以同时将相同的配置应用于一组虚拟机。 如果没有特别的需求,就无需单独手动配置实例。
规模集使用负载均衡器在虚拟机实例之间分配请求。 它使用运行状况探测或应用程序运行状况扩展来确定每个实例的可用性。 运行状况探测或应用程序运行状况扩展对实例执行 ping 操作。 如果实例响应,则规模集知道实例仍然可用。 如果 ping 失败或超时,则规模集知道实例不可用,不会向它发送请求。
虚拟机规模集在 Azure 中同时支持 Linux 和 Windows VM,并且可以在单个规模集上运行最多 1,000 个 VM。
如果处理需求各异且不可预测的大型工作负载,则规模集是很好的解决方案。 虚拟机规模集提供可根据需求缩放且负载均衡的虚拟机。 它们会自动提供高度可用的环境。
规模集缩放选项
规模集旨在实现高成本效益。 仅在需要时才创建新虚拟机实例。
有时,可能需要根据需求在规模集中添加或删除虚拟机。 例如,可能无需在需求较低的一周或一天的某个时段运行某些计算机。 通过增加或降低实例数可以手动调节规模集中的虚拟机数量。 在许多情况下,最好使用规则自动添加或删除 VM。 这些规则基于各种指标。 它们可确保根据需求或计划添加适当数量的虚拟机。
缩放规模集
虚拟机规模集可满足为应对工作负载量波动而迅速创建和管理虚拟机的需求。 可以为规模集配置两种类型的缩放:
计划缩放:可以主动计划一个规模集,用于部署一个或多个实例来处理流量峰值,并在流量峰值结束时重新减少实例数。
自动缩放:如果工作负载不断变化,且不总是能够制定计划,可以使用基于指标的阈值缩放。 自动缩放会根据节点使用情况进行横向扩展。 然后,当资源返回基线时,它会缩减。
这两个选项都能满足缩放要求,同时可管理相关成本。 以下示例介绍了可能需要采用不同缩放类型的场景。
计划缩放
假设你是一家大型食品运输公司 DevOps 团队的一员。 星期五晚上通常最忙碌。 而周三早上 7 点通常最空闲。
Azure 根据资源用量收费,因此请不要运行不需要的服务。 如果需要 100 台 Web 服务器才可满足星期五晚上的需求,你愿意支付相应费用。 但是,如果星期三早上仅需 2 台服务器,你自然不愿意支付额外 98 台空闲服务器的费用。 为了管理成本并满足业务需求,请考虑采用计划缩放。
自动缩放
假设你是某家知名鞋业公司 DevOps 团队的成员。 随着产品上市的临近,你认为将出现巨大的服务需求。 但是,需求峰值本身可能无法预测,也很难量化。 为使服务满足需求,你希望在当前所用资源的基础上进行横向缩放。
在此场景下,可以使用基于指标的自动缩放。 这种自动缩放类型可在需求增加时横向扩展基础结构, 在需求降低时会重新缩小。
使用现成虚拟机降低成本
使用 Azure 现成虚拟机,可以利用未使用的容量,大幅降低成本。 每当 Azure 需要回收容量时,Azure 基础结构就会逐出 Azure 现成虚拟机。 因此,这些虚拟机非常适合可以处理服务中断的工作负载,例如批处理作业、开发/测试环境、大型计算工作负载。
可用容量可能因大小、区域、一天内的时间和其他因素而异。 部署 Azure 现成虚拟机时,如果有可用的容量,则 Azure 会分配 VM,但这些 VM 没有 SLA 的保障。 Azure 现成虚拟机不提供高可用性保证。 每当 Azure 需要回收容量时,Azure 基础结构就会逐出 Azure 现成虚拟机并提前 30 秒发出通告。
当 Azure 再次需要计算能力时,你会收到有关 Azure 将从规模集中删除 VM 的通知。 如要需要在虚拟机上进行清理或正常退出代码,可以使用 Azure Scheduled Events 在虚拟机内响应此通知。 还可以让规模集另外创建一个虚拟机来替换要删除的虚拟机。 但是,无法保证一定会创建新的虚拟机。
使用 Azure 现成虚拟机,可以通过设置逐出策略来指定两种类型的删除:
- 解除分配策略(默认设置):VM 停止。 处理资源和内存资源解除分配。 磁盘保持不变,保留数据。 虚拟机未运行时,需支付磁盘空间费用。
- 删除策略:将删除整个 VM(包括所有基础磁盘),因此你无需支付存储费用。
如果工作负载存在运行中断,或者需要以较低成本使用更大虚拟机,Azure 现成虚拟机非常有用。 请记住,无法控制何时删除虚拟机。