随着众多企业客户对于业务延续性需求的增加,传统业务中的停机维护窗口越来越小,甚至在很多互联网类型的应用中要求 7×24 小时不间断服务,导致系统对业务 IT 的运维能力、持续服务能力、高可用能力以及灾难恢复能力都有着新的需求。

如何通过技术实现更好的业务可靠性保障?在特殊情况下如何实现业务、数据的恢复、容灾和多活?如何在实现多活业务架构中降低系统架构的复杂性及 IT 成本?

本次,青小云从技术角度出发,推出「真正多活,不惧宕机」系列专题文章,为大家解密高可用的企业 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 的资源访问,让用户轻松实现了多点部署需求,安全,便捷。

Region 服务

● 为帮助用户便捷地构建高可用的业务架构,青云QingCloud 推出 Region 级别服务,通过对基础网络架构进行升级,实现区域( Region )内的可用区( Availability Zone )之间高速互联,全面提升整体服务能力。用户可通过支持多可用区部署( Multi-AZ deployment,简称 MZ )的网络与应用服务,快速实现系统架构的多可用区部署,轻松构建多活及灾备业务架构。

负载均衡均衡和反向代理

● 传统的负载均衡一般基于商用的硬件 F5、NetScaler 在 4 层做分发,或者通过 NginxHAProxy 在 7 层做负载均衡或者反向代理分发到集群中的应用节点。QingCloud同时提供基于 4 层到 7 层的负载均衡服务,分别是负载均衡器和负载均衡器集群。

● 负载均衡器(Load Balancer)负载均衡器支持灵活配置多种转发策略,实现高级的自定义转发控制功能;支持 HTTPHTTPSTCP 三种监听模式,并支持透明代理,可以让后端主机不做任何更改,直接获取客户端真实 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 一直在努力实现的目标。