这里的软件工程师没有丰富的服务器管理经验,但想了解自动扩展的工作原理。
背景如下:
我们在 Azure 云上运行了一个无状态应用程序,它在后台与 Azure SQL 数据库进行通信。数据库本身在两个不同的服务器区域进行地理复制。
我们设置了自动扩展,这样,如果服务器负载超过 80%,我们就会扩展并添加一个实例。当负载降至 50% 以下时,我们就会缩减规模。通常不会进行扩展,但在高峰使用期间,服务器会自动扩展。
这是我的问题:
启用自动缩放后,Azure 是否会自动处理实例之间的任何负载平衡?我知道 Azure 也有一些负载平衡器产品,但我想了解我们是否需要它们。
如果没有明确设置负载均衡器,扩展我们的实例是否毫无意义?
答案1
如果您正在运行 Web 应用的单个实例,则实际上无需进行负载平衡。因此,您只需根据特定指标在门户中设置扩展即可。例如,如果 X 分钟内 CPU % > 80%,则扩展到 X 个实例。然后设置另一条规则,规定当 X 分钟内 CPU < 80% 时,则缩减到 X 个实例。
如果您要设置两个实例并对它们进行负载平衡,则必须在实例之上添加负载平衡。这很简单。然后您也可以从那里设置相同的监控规则。
https://docs.microsoft.com/en-us/azure/architecture/best-practices/auto-scaling
https://azure.microsoft.com/en-us/features/autoscale/
https://docs.microsoft.com/en-us/azure/monitoring-and-diagnostics/insights-autoscale-best-practices