SRE的核心工作之一:需求预测和容量规划
本帖最后由 FYIRH 于 2020-11-25 22:16 编辑需求预测和容量规划简单来说就是保障一个业务有足够的容量和冗余度去服务预测中的未来需求。这里并没有任何特别的概念,但是我们发现行业内有许多团队根本没有这个意识和计划去满足这个要求。一个业务的容量规划,不仅仅要包括自然增长(随着用户使用量上升,资源用量也上升),也需要包括一些非自然增长的因素(新功能的发布、商业推广,以及其他商业因素在内)。
容量规划有几个步骤是必需的:
● 必须有一个准确的自然增长需求预测模型,需求预测的时间应该超过资源获取的时间。
● 规划中必须有准确的非自然增长的需求来源的统计。
● 必须有周期性压力测试,以便准确地将系统原始资源信息与业务容量对应起来。
因为服务容量对可用性来说是极为重要的,很自然的,SRE应该主导容量规划的过程。同时,这也意味着 SRE 需要主导资源部署的过程。
资源部署
资源的部署(provisinging)是变更管理与容量规划的结合物。在我们的经验里,资源的部署和配置必须能够非常迅速地完成,而且仅仅是在必要的时候才执行,因为资源通常是非常昂贵的。而且这个部署和配置的过程必须要确保能够正确地执行完毕,否则资源就仍然处于不可用状态。增加现有容量经常需要启动新的实例甚至是整个集群,这通常需要大幅度修改现有的集群配置(配置文件、负载均衡、网络等),同时还要执行一系列测试,确保新上线的容量可以正确地服务用户。因此,新资源的部署与配置是一个相对比较危险的操作,必须要小心谨慎地执行。
效率与性能
高效地利用各种资源是任何赢利性服务都要关心的。因为SRE 最终负责容量的部署和配置,因此SRE也必须承担起任何有关利用率的讨论及改进。因为一个服务的利用率指标通常依赖于这个服务的工作方式以及对容量的配置与部署上。如果能够通过密切关注一个服务的容量配置策略,进而改进其资源利用率,这可以非常有效地降低系统的总成本。
一个业务总体资源的使用情况是由以下几个因素驱动的∶ 用户需求(流量)、可用容量和软件的资源使用效率。SRE 可以通过模型预测用户需求,合理部署和配置可用容量,同时可以改进软件以提升资源使用效率。通过这三个因素能够大幅度推动一个服务的效率提升(但是并非全部)。
软件系统一般来说在负载上升的时候,会导致延迟升高。延迟升高其实和容量损失是一样的。当负载到达临界线的时候,一个逐渐变慢的系统最终会停止一切服务。换句话说,系统此时的延迟已经是无穷大了。SRE 的目标是根据一个预设的延迟目标部署和维护足够的容量。SRE 和产品研发团队应该共同监控和优化整个系统的性能,这就相当于给服务增加容量和提升效率了。
Google SRE代表了对行业现存管理大型复杂服务的最佳实践的一个重要突破。由一个简单的想法"我是一名软件工程师,这是我如何来应付重复劳动的办法"而生,SRE 模型已经发展成一套指导思想、一套方法论、一套激励方法和一个拥有广阔空间的独立职业。想要了解更多关于 SRE 相关的信息,请阅读本书的其余部分。
页:
[1]