云基础设施扩展策略与亚马逊Web服务命令参考
1. 主动扩展管理
设计良好的主动扩展系统能让你根据应用需求的预期变化来安排容量调整。使用主动扩展时,要了解预期的标准偏差,也就是大致清楚正常流量与预期的偏离程度。例如,预计中午左右网站每小时有1000次页面浏览量,而实际看到1100次,这可能并非意外情况。
任何时间点的容量都应能处理预期容量的上限,并留有一定余量。资源的最有效利用是接近其容量,但这样安排在预期错误时会产生问题,即便结合被动扩展也是如此。理解“余量”构成可能是容量规划中最困难的部分。
2. 被动扩展管理
被动扩展是一把双刃剑,它能让你快速应对意外需求,但如果完全依赖它来管理Web应用而不进行容量规划,可能会陷入困境。
2.1 基于利用率的被动扩展及其问题
最粗糙的被动扩展形式是基于利用率的,即当CPU、RAM或其他资源达到一定利用率时,就向环境中添加更多该资源。这种方式对监控系统来说逻辑简单,但实际中只有部分情况适用,以下是一些可能失败的例子:
- I/O受限的数据库服务器 :应用服务器处理量增加,但数据库服务器I/O受限,导致数据库服务器负载进一步加重。
- 攻击情况 :攻击者会耗尽你投入的任何资源,导致不断尝试启动新资源,成本飙升。
- 意外的流量高峰 :Web活动意外激增,虽对基础设施造成压力,但对终端用户体验影响较小。监控系统仅因感知到负载就启动新实例,而你知道活动会平息。
2.2 监控系统与限制设置
好的监