对于各个电商平台来说,由于电子商务、互联网+、O2O 等各种概念的冲击,电商的业务形态及用户规模都不尽相同,各大电商公司也都在摸索适合自己业务高速发展的技术和业务架构。其中最关键的一点就是,如何才能让自身的基础设施满足企业业务不断发展的需求?如何才能在业务爆发式增长的前提下保证 IT 系统的性能、可靠性?今天的内容主要集中在如何保证业务爆发式增长背后的电商 IT 系统高可用。
什么是电商平台的高可用?
1、核心业务的"永动机"
由于电商业务系统承载着商品展示、线上支付、物流跟踪、抢购秒杀等活动,随着互联网技术的普及和深入,LBS 应用、直播业务也相继出现在传统电商领域,这些系统并非单一孤立,电商 IT 系统必须保证 7×24 小时持续稳定运行。
因此,电商平台必须具备高度的可用性,确保在单点、单机故障、自然灾害等意外事故发生时,能够尽快恢复应用的正常运行,只有这样才能满足广大群众"买买买"的激动心情。
2、让关键数据存放更放心
电商业务往往伴随大量的支付数据产生,用户信息安全显得格外关键。一个高可用的电商平台既要保障自身业务数据完整精确,更要严格保证用户数据安全。在数据高可用性上,电商 IT 系统承担着双重压力。
3、全面监控,尽收眼底
电商业务往往是一个 7×24x365 的"永动系统",只有每一个监控指标都正常,才保证系统的健康运行,所以自动化监控尤为关键,通过系统监控手段及时发现问题,甚至在问题出现之前就能预测出来,从而尽早介入处理,可以避免或减少对业务的影响。
应对策略
1、业务 HA 部署,主备角色明确
HA(High Available)高可用性集群,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点。通常把正在执行业务的称为活动节点,而作为活动节点的一个备份的则称为备用节点。
当活动节点出现问题,导致正在运行的业务(任务)不能正常运行时,备用节点此时就会侦测到,并立即接续活动节点来执行业务。从而实现业务的不中断或短暂中断。
2、保证业务多地多点部署
我们常说"不要把所有的鸡蛋放进一个篮子",这句话对于电商 IT 建设同样适用。
在做电商系统业务架构的时候,我们建议用户采用"异地多活"部署方案。但异地多活系统受到网络延迟、运维成本、部署规模等因素限制,而青云QingCloud 公有云在国内有多个区域机房,让用户在选择"第二机房"问题上能更从容部署"多点异地"方案。
3、保证确保数据一致性
数据一致性问题,这是比较大的挑战,多中心电商方案从本质上是一个分布式系统,天然地存在数据分区,也就有数据分区问题,在解决个问题时,采用了场景化数据分类处理的策略。
在正常场景下,交易数据只能从分中心产生,同步到主中心;而交易所需要的主数据则从主中心同步到分中心,在分中心故障场景下交易数据才可以在主中心产生。一个良好的数据库方案,是数据一致性的重要保障。
青云上的高可用架构
1、电商业务高可用性架构
2、青云QingCloud 关键实现技术
VPC 隔离和隧道技术
用户可以在 QingCloud 环境内预配置出一个专属的大型 VPC 网络。在 VPC 网络内,可以自定义 IP 地址范围、创建子网,并在子网内创建主机/数据库/大数据等各种云资源。一个 VPC 网络可以连接 254 个 子网(Vxnet),且最多可以容纳 60,000 台虚拟主机。在 VPC 里,每个用户的资源都是隔离和独立的。
通过隧道技术,可以把用户部署在青云上的不同 VPC 联通起来,不论是通过 GRE 还是 IPsec 的隧道封装,用户可跨 VPC 的资源访问,让用户轻松实现了多点部署需求,安全,便捷。
负载均衡均衡和反向代理
传统的负载均衡一般基于商用的硬件 F5、NetScaler 在 4 层做分发,或者通过 NginxHAProxy 在 7 层做负载均衡或者反向代理分发到集群中的应用节点。QingCloud同时提供基于 4 层到 7 层的负载均衡服务,分别是负载均衡器和负载均衡器集群。
负载均衡器(Load Balancer)负载均衡器支持灵活配置多种转发策略,实现高级的自定义转发控制功能;支持 HTTP/HTTPS/TCP 三种监听模式,并支持透明代理,可以让后端主机不做任何更改,直接获取客户端真实 IP。
负载均衡器集群(Load Balancer Cluster)可以将一个公网 IP 的流量,分散到多个负载均衡器节点做并发处理,突破单负载均衡器节点的能力瓶颈,提供可扩展的转发带宽和 HTTPS 卸载能力。4 层分发到业务集群上后,会经过 WEB 服务器如 Nginx 或者 HAProxy 在 7 层做负载均衡或者反向代理分发到集群中的应用节点。
选择哪种负载,需要综合考虑各种因素如是否满足高并发高性能,如 Session 保持如何解决,负载均衡的算法如何,支持压缩,缓存的内存消耗等众多因素,如何选择,得视具体业务而定。
RDS数据库服务
- MySQL 存储引擎:基于性能和数据安全的考量,青云专门针对 InnoDB 存储引擎做了配置优化和调整,建议始使用 InnoDB 存储引擎。
- 主从架构:青云 RDS 服务采用了主从架构,主从节点部署在不同的服务器上,数据自动实现同步。
- 高可用:青云 RDS 服务的 MySQL 5.6 版本默认开启了读写的高可用功能。新增了两个高可用的读写 IP,分别对应于数据的读和写。读 IP 可将请求在多个从节点之间进行负载分担,提高读取性能,消除单点故障。写 IP 可以在主库发生故障时自动切换到新的备选主库上,减少故障时间。
在故障切换时,主从节点的 IP 地址会变化,高可用的读写 IP 地址不会变化。
监控告警服务
监控告警功能是基于资源层面的监控数据,设置告警条件和通知列表, 有助于及时了解资源使用情况和处理突发事件。目前支持主机、公网 IP、路由器、负载均衡器、关系型数据库及大数据产品的监控告警服务。用户可以轻松创建告警策略,运维人员通过手机客户端(支持 iOS|Android),可以随时监控平台运维数据,接收预制告警。
总结
认识高可用架构,部署实现实现高可用架构,每一家互联网企业可能摸索出数千种探索道路并给出数万种答案,但符合自身企业技术环境发展的答案可能有且只有一种,帮助用户用最快速度安全便捷方式实电商高可用系统,是青云QingCloud 一直在努力实现的目标。
原文发布时间为:2016年11月10日
本文来自合作伙伴至顶网,了解相关信息可以关注至顶网。