二 上云系列云计算的弹性——时间维度和空间维度

云计算的本质就是弹性
按量计费(按需使用)是云计算弹性在时间维度的体现,弹性伸缩是云计算弹性在空间维度的体现
云计算的本质——弹性
我认为最能描述云计算的本质的词语是弹性,因为弹性是云计算和传统企业计算模式的根本区别 。
云计算弹性可分为时间维度和空间维度 。
通常在一天之内业务访问量存在波峰波谷,如果波峰波谷差值较大,那么可以使用云平台提供的弹性伸缩服务自动增加、减少云服务器数量 。按如下原则选购的性价比更高,也更能发挥出云计算的弹性的特点:
包年包月和按量计费的本质包年包月、按量计费适合的场景
云计算计费方式灵活,提供多种计费方式,分别适合不同的场景:

二  上云系列云计算的弹性——时间维度和空间维度

文章插图
最大化利用按量计费
先举两个按量计费的经典场景:
1、某手机厂商网站经常推出最新款手机抢购活动,有数百万甚至上千万用户同时抢购 。为支持此类电商秒杀活动,临时增加几百台云服务器,使用一个小时仅花费几百元 。与购买包年包月实例或者线下部署几百台物理服务器相比,节省了上百万元的开销 。
2、12306火车票网站的搜索业务的算力需求占整个网站80%左右 。刚推出12306后的那个春节,网站宕机很频繁,经常上新闻 。为了解决业务高峰期宕机问题,最终在阿里技术团队的建议下最终把搜索(查票)功能上云,和原有业务组成混合云架构 。业务高峰期,能自动迅速增加用于搜索功能云服务器数量 。
阿里云弹性伸缩
【二上云系列云计算的弹性——时间维度和空间维度】下面用一张思维导图总结下阿里云的弹性伸缩服务:
无状态应用架构设计
二  上云系列云计算的弹性——时间维度和空间维度

文章插图
上面思维导图有这样一条要特别注意:“伸缩组内ECS实例上的应用必须是无状态并且可横向扩展的” 。这句限制是说使用弹性伸缩服务是有条件的,即要求应用架构必须为无状态的 。
Web应用系统中的状态是什么?
这里的状态是用户状态,比如客户端的用户标识、服务器端的标识 。
状态相关数据包括会话状态信息、应用数据和日志等 。例如双11你在淘宝网购,浏览了十几个商品页面,并把五个商品加入购物车,同时有很多人都在这些页面购买,怎么才能确保每辆购物车里的商品不会加错呢?靠的就是众多状态信息做了记录和关联(用户ID、订单号、会话ID、商品ID、下单时间、收货地址等) 。
可以按如下原则设计无状态应用架构或改造传统有状态应用 。总之一句话:不要把状态信息保存到ECS云服务器:
把应用数据保存到云数据库RDS会话记录等状态信息保存在专门的云服务器或等数据库将日志存储到日志服务或者OSS对象存储
阿里云高扩展性Web架构图