五、弹性能力Elasticity
1. 弹性能力的基本概念
Gartner从两个维度定义了云服务的弹性能力:
• 从云服务器提供商的角度,云服务的弹性意味着“云服务具备根据需要自动增加或减少系统容量的能力(比如CPU、内存、磁盘和网络带宽),这会给用户带来一种无限算力的感知”。
• 从客户的角度,云服务的弹性指的是云服务具备自动跟随需求的波动变化增加或减少特定服务容量的能力。
弹性能力主要解决在某个具体业务场景下如何实现资源与业务负载波动匹配的能力。当然还有一种更为广义的弹性描述,即云资源支持按需取用,需要时可快速获得,不需要时可随时释放资源的能力,这种能力目前已经成为公有云的能力标配,本文不做更多相关阐述。
弹性能力指的是平台具备根据业务负载变化,及时且独立地增加或减少基础设施资源的能力。其中,资源可以是CPU核数、内存、网络带宽,磁盘,也可以是ECS实例。弹性能力是公有云典型优势之一,根据添加或减少资源的粒度,弹性能力可以细分为以下两类:
• 垂直弹性(vertical elasticity):主要指的是增加或减少计算资源的某个组件,比如CPU核数、内存大小、网络带宽大小、磁盘空间大小等。
• 水平弹性(Horizonal elasticity):主要指的是增加或减少相同计算资源的数量。
与弹性能力有关的一个概念是可扩展性(scalability),它通常指的是在不中断服务的前提下,系统具备通过增加当前的硬件资源(向上扩容)或增加额外的硬件资源(横向扩容)的方式应对更高业务负载的能力。与弹性能力总是试图提供与当前业务负载匹配的动态能力相比,可扩展性是一个静态属性,即以增量方式通过提供更多资源来满足负载增加的场景。
当业务负载下降时,弹性能力会动态释放不需要的资源,而可扩展性不会。所以,可扩展性只能满足部分弹性场景的需求,可以看做是弹性能力的一个子集。