自从互联网电商兴起以来,每年的双十一都是各大网购平台的高光时刻。各种玩法,各种优惠,各种商品玩的用户是应接不暇不予乐乎。更别说今年加入了直播,各大直播平台网红大V抢夺流量,大家剁的痛并快乐着。全中国甚至全球那么多人,那么多数据,淘宝有阿里云支撑,那么其他电商平台呢?海量的数据背后依靠的必然是多个数据中心的一直配合,互联先锋小编今天就来说说,针对这些个流量庞大的各种网购节,多数据中心多活究竟有多牛。
拿苏宁为例,,单个数据中心的容量有限,已经无法支撑苏宁业务的快速发展。同时,单数据中心在高可用上存在不足,一旦数据中心发生故障,会导致业务受损,用户访问中断,带来严重的影响。因此数据中心建设方案迫在眉睫。一般有3种方式,主备模式、同城双活、多活模式。
主备模式:主机房提供服务,备用机房不提供服务,当主机房故障,服务可切换到备用机房接管。
同城双活:同一个集群横跨同城两个不同的 AZ,两个 AZ 同时对外提供服务,同时允许跨机房访问不同服务以及数据库。
多活模式:多个机房同时提供服务,业务请求尽量收敛在同一个机房,当某个机房故障时,可以切换其它接管机房。
三者比较
鉴于苏宁线上 / 线下交易业务和支付业务特性,以及异地数据中心的要求,通过技术评估和决策,最终选择多活模式。
多活方案策划
1、目标
机房水平扩展:单机房容量有限,业务高增长带来大量的资源需求,多活需要具备机房水平扩展能力,为资源扩容提供保障。
机房之间同城和异地高可用:单机房存在单点故障风险,多活需要具备机房级别的高可用能力,在一个机房出现故障时,能够将流量快速切到其他正常的机房,对业务的影响降低到最小。
2、价值
支持业务的快速发展:苏宁每年的业务规模成倍数级增长,所依赖的 IT 资源也快速增长,通过机房的水平扩展,解决单机房容量不足问题,以支持业务的发展。
同城与异地容灾:当机房出现电源或网络以及地震等机房级别故障,通过机房级别的流量切换实现同城与异地容灾,将对业务的影响降低到可控水平。
混合云降低持有成本:由于电商业务的特殊性,大促流量与平时流量相差上百倍,大促期间将流量划拨到公有云,在多活能力的基础上,实现私有云与公有云混部,降低私有云长期持有成本。
灰度发布:实现按机房级别流量逐步灰度发布,降低业务版本故障影响面,提升版本发布质量。
3、原则
同一用户的交易尽量在一个数据中心内部完成。苏宁对于交易业务按照用户纬度对数据分片,特定的用户路由到特定的数据中心,保证一个用户的交易在一个数据中心完成。
业务无需感知多数据中心。核心业务在多个数据中心部署,提供服务,业务无需感知自己在哪个机房,即便数据中心发生切换,业务也无需感知。
尽量节省资源。由于多机房部署导致成本上升,需要通过调整高可用部署方案降低多机房部署成本。
方案技术难点
按照多活的架构设计,并结合苏宁的业务特点和 IT 技术现状,需要优先解决相关的技术难点。
高可用实现原则
数据中心高可用分成两部分:
(1)单数据中心内高可用
集群内部高可用
无状态服务 (比如应用服务器):采用 N+1 方式部署,任何一台故障,流量都可被其它机器所接管。
有状态服务 (比如数据库):采用 2N(一主一从)或 3N(一主两从)方式部署,任何一台故障,在秒级切换到另外一台机器。
(2)多数据中心间高可用
单系统同城高可用:任何一个系统有计划维修或非计划性故障,都可切换到另外一个数据中心
全链路同城高可用:当机房级别故障或维修时,可切换到另外一个机房接管。
全链路异地高可用:当出现地震等特殊场景,异地机房可进行接管,避免同城两个数据中心同时故障等异常场景。
其中机房级别故障切换时间一般在分钟级别。
高可用实现指标
RPO(Recovery Point Object):表示机房级别故障时,未被同步的数据时长。考虑到 MySQL 在特殊情况下复制延迟较大情况下,RPO 设置为分钟级别,正常情况下 RPO 为秒级
RTO(Recovery Target Object):表示机房故障情况下,关键流程或系统切换恢复时间,一般为分钟级别
WRT(Work Recovery Time):表示故障时,由于 RPO 导致的未同步异常数据修复完成时长,一般为小时级别。
关注“互联先锋”获取更多IDC资讯。