财新传媒

[Fintech]不可能的网联之二:系统可靠吗?

2017年10月12日 21:23 来源于 财新网
可以听文章啦!
高可用性意味着网联全年没有停机维护时间、不能发布停机计划,这,怎么做得到?
随着网络支付行业渗透到我国社会经济的方方面面,发红包、扫码支付等已不再是“90后”群体的专属,而成为老百姓吃穿住用行的常见支付方式。图/视觉中国

  文 | 财新特约作者 张楠

  随着网络支付行业渗透到我国社会经济的方方面面,发红包、扫码支付等已不再是“90后”群体的专属,而成为老百姓吃穿住用行的常见支付方式。随着支付方式的便捷化,老百姓也更加关注各种支付场景下的体验和效率,如果“双11”你的女朋友让你帮助清空购物车,你难道能告诉他现在系统故障无法支付吗?你在吃完夜宵告诉老板手机支付故障了,会不会被老板当做吃霸王餐的?在你抢红包的时候能接受系统延时和中断吗?答案当然是不能!!!

  对,网联也不允许这样的事情发生。老百姓的支付需求不可辜负,网联平台的可用性要求几乎是分分钟都不能中断。初期设计要求可用性必须达到 99.99%,即全年故障时间控制在52.6分钟以内。网联的特殊性要求提供服务的时间是7*24小时,这就是说网联全年没有停机维护时间、不能发布停机计划。同时在支付、红包等高峰期的“双11”、“情人节”“过新年”等等业务量可能将达到18w笔/秒。在这种高并发的业务量、这种全年无停机时间的要求下,面对各种可能出现的故障,网联是如何做到99.99%可用性?

  万丈高楼平地起,首先,我们要给网联系统找一个家,这个家就是数据中心。数据中心是IT系统的地基,是为网联提供一个“恒温、恒湿、不间断用电”的运行环境,数据中心的好坏直接决定了网联平台是否可以一直健健康康提供服务。双回路市电供电、2N UPS系统、N+1制冷系统、门禁视频及入侵检测系统、消防系统、环境监控系统等都是基本的要求,确保了每一个家的可用性达到99.99%。然而这样就够了吗?

  2011年3月11日,日本遭受了9级大地震,日本东京的IBM数据中心严重受损;

  2015年5月27日,支付宝因光纤被挖断导致业务大面积瘫痪;

  2016年1月14日,Verizon公司运营的数据中心电力中断,导致美国廉价航空捷蓝航空公司的客户旅行延误了几个小时,大量旅客滞留;

  2016.7.22,支付宝华南一处机房出现故障,部分用户无法在线上或线下通过支付宝进行支付购买,持续2小时;

  ......

  近些年此类消息层出不穷,电力、火灾、台风、地震等天灾人祸随时可以让一个数据中心、甚至整个城市的数据中心瘫痪。

  传统银行提出的“两地三中心”模式,同城主备+异地灾备的模式是否可以解决这个问题呢?当发生主中心故障必然需要切换而无法7*24小时提供服务,而网联必须满足7*24小时的高可用。

  这就要求网联平台不仅要有多个数据中心,还必须部署在多个城市,且各个数据中心都必须能独立提供完整的服务,网联提出“多地多活”的分布式数据中心部署方案,让网联各个数据中心独立对外提供服务,任何数据中心的故障均不影响网联平台的服务。最终网联平台按此方案安家于北京、上海、深圳,建成“三地六中心”。此三个城市分别位于我国北部、东部和南部,有效隔离台风、地震、洪水等自然灾害。每个城市设立两个数据中心,距离约40~50公里,有效隔离区域电力故障或其他城市级故障。同时此三个城市也是我国各区域人口及经济中心城市,其空间布局的合理性、可靠性不言而喻。

  那么网联的三地六中心是如何实现多活对外提供服务的呢?

  网联要求机构和银行采用多专线链路方式接入网联平台。对于大型支付机构和银行,网联平台提供全部六中心专线接入能力;对于区域性机构和银行,网联平台也会提供多条线路接入能力。这样的专线接入模式可以有效降低因线路故障而导致的服务不可用。

  其次,这些多城市、多数据中心、多线路接入的多活方式如何协调和运转呢?网联平台独特的多数据中心渠道接入“秘笈”闪亮登场了。

  支付业务一般由第三方支付机构发起,机构多条线路分别对接网联的多个数据中心,网联实时推送各数据中心健康情况,由机构自由选择进入网联哪个数据中心处理业务。当网联平台某个数据中心不提供服务时,可以通过其他数据中心更新控制代码剔除当前不可用数据中心。机构接受到指定错误代码时,重新拉取最新的控制代码,将交易平滑切流至网联其他数据中心,不影响交易的正常处理。然后网联负责选择通过哪个路由进入银行的数据中心,当银行某个数据中心发生故障无法提供服务时,网联平台根据交易健康度规则判断,可以将流量自动切换至银行的其他数据中心。做到多数据中心、多链路负载冗余。

  从上面我们可以看到,网联通过多数据中心、多链路冗余等方式实现了“三地六中心”的多活架构,然而最终对外提供服务的是网联的应用系统以及后台的数据库系统,那么他们是如何设计和运行的呢?应用系统如何实现故障自动切换?数据库如何实现故障自动切换?

  网联核心的转接清算业务采用分布式。分布式应用无状态特性使得单个数据中心部署的应用无单点风险。推广到多个数据中心时,各数据中心的应用集群互为备份。当发生数据中心级甚至城市级故障时,网联平台的业务均可被其他数据中心接管。并且,网联平台在处理性能上保有足够冗余,当一个城市发生灾难时,其余两地的数据中心可以接管和支撑全部流量。

  网联平台采用集群方式部署数据库,且最大程度提高库级冗余。网联平台采用“一主三从”模式部署数据库集群,即同机房一主一备。同机房数据库出现故障时,集群自动切换,防止出现因主库故障而导致不可用和数据丢失的问题。同时,在同城和异地分别再备份一份增加可靠性。再结合应用路由设置,任何一个数据库节点故障时,应用均可以切换到其他可用数据库节点继续处理。数据库集群各节点之间无影响。

  此时网联的三地六中心多活高可用方案已具备外形,让我们一起进入一个数据中心内部,看看各个硬件模块的性能,会不会成为故障点而降低整个平台的可用性。

  进入数据中心后,我们看到了一排一排整齐机柜,大量的服务器、网络设备疯狂闪烁着的指示灯标志着他们在全力处理业务,所有设备均是双电源、双引擎的冗余模式,冗余模式可保障单台设备99.99%的可用性,然而当网联成规模的几千台服务器在线运行,设备故障则不是小概率事件了。那么网联是如何在这种情况下提升服务可用性的呢?

  网联平台采用虚拟化技术构建应用服务器资源池,采用KVM虚拟化技术实现了x86服务器CPU、内存和硬盘等硬件资源的虚拟化,并以开源的Openstack为框架建设各个数据中心。各个数据中心独立成云,在每朵云里,应用采用随机策略分别部署到资源池的不同的逻辑区域内(称之为“可用域”)。同时在网络层面,虚拟化内核支持标准VxLAN封装的分布式虚拟交换机,实现了虚拟网络与物理网络的解耦。使得虚机可以自由的运行在资源池中的任意服务器上。加之负载均衡等高可用设计,当一台或是多台服务器、一个或多个机柜模块、甚至是一个或多个可用域故障时,应用仅会损失部分计算能力,整个服务的可用性不受影响,即单台设备的故障不会对应用可用性造成影响。

  自此,网联平台自上而下的高可用设计就介绍清楚了,让我们回顾一下看看网联是不是有遗漏的地方。

  服务器故障了?

  我们通过虚拟机化、资源池化提升了资源池的可用性,单台物理机故障不会影响资源池的可用性。

  网络设备故障了?

  我们所有网络设备均是多机热备、自动切换流量。

  应用系统故障了?

  我们所有应用采用负载均衡+分布式部署,业务流量自动由其他健康的应用支持;

  数据库故障了?

  我们的数据库集群自动故障转移,“一主三从”,应对各种故障场景。

  光缆被挖断了?

  路由自动切换到冗余链路,机构和银行都是多条链路接入的哦。

  啥?整个机房掉电了?火灾了?整个数据中心没了?

  我们渠道业务自动通知机构选择其他数据中心处理业务。引流到健康的数据中心。别说是单个机房故障了,就是某个城市发生地震、洪水等自然灾害摧毁一个城市的两个数据中心,我们也能自动把流量转移到其他可用的数据中心。

  网联的可用性设计都敢和大自然抗衡了,你还害怕抢不到红包吗?你还害怕不能清空女朋友的购物车吗?宵夜随便吃,随便几点都能手机支付,别把手机丢了就行。

  最后,我们用专业的说法再总结一些吧。我们用下图金字塔模型把各层设计要点归纳起来:

1
图:网联平台高可用金字塔模型

  高可用金字塔是分层解耦的,也就是说,每一层故障概率是独立的。自下而上,故障等级越来越高,但是故障概率越来越低。这种设计确保了整个网联平台的“不可用”取决于金字塔的最顶层故障概率。很显然,城市级(乃至全国性)灾难的概率和中彩票的概率差不多。因此,从理论上讲,网联平台是不会垮的(RTO=0);平台应用“多点多活”,数据跨城市冗余,业务数据接近零损失(RPO≈0);可用性可以达到99.99%甚至更高。当然,实证情况下,再完美的系统执行业务切换和流量分流也需要复杂的路由判断和必要的操作时间。因此,网联平台重点建设的,就是更稳定可靠的云化数据中心,更灵活弹性的专线接入,更智能敏捷的路由切换系统。

  网联平台建设的每一个参与者都在提高平台的整体可用性,切实履行国家级金融基础设施重要职能而努力奋斗。

  更多高品质报道抢先看,请订阅财新出品的微信公众号“金融混业观察”。

责任编辑:凌华薇 | 版面编辑:李丽莎
文章很值,赞赏激励一下
赞 赏
1人已赞赏
赞赏是一种态度
  • 1
  • 3
  • 6
  • 12
  • 50
  • 108
其他金额
其他金额(元):
赞 赏
财新传媒版权所有。
如需刊登转载请点击右侧按钮,提交相关信息。经确认即可刊登转载。
推广

财新私房课
好课推荐

2017年10月18日    16:42
【雪峰科技:自然人股东李长青拟减持不超200万股】雪峰科技(603227.SH)10月18日晚间公告,因个人资金需求,公司股东李长青计划15个交易日后的6个月内,以集中竞价或大宗交易等减持公司股份不超200万股,占总股本的0.3%,减持价格根据市场价格及交易方式确定。截至目前,李长青持有公司股份400万股,占总股份的0.61%。
2017年10月18日    16:30
山鹰纸业:前三季度实现净利润14.3亿元,同比增长591.15%;实现营业收入123.84亿元,同比增长46.26%。
2017年10月18日    16:16
【科达洁能:5.49亿受让蓝科锂业16.65%股份】科达洁能(600499.SH)18日晚公告,全资子公司科达锂业以自有资金5.49亿元受让蓝科锂业16.65%股份。完成后,科达锂业将持有蓝科锂业37.8%的股份。蓝科锂业是我国卤水提锂领域的领军企业,主营业务为从青海省察尔汗盐湖卤水中提取碳酸锂并销售,拥有独特的锂镁分离技术。公告称,此次交易符合公司积极加大锂电材料业务投入的发展战略,有助于增加公司利润增长点。
2017年10月18日    16:04
福田汽车在互动平台表示,公司的氢燃料客车已经获得全球最大的氢燃料客车商业订单,是第一个全球范围内真正实现氢燃料电池电动客车产业化、批量商业化开发运营的企业。(上证e互动)
2017年10月18日    15:58
【易联众:与腾讯共同推进互联网+医保等行业支付的发展】易联众公告,近日,公司与腾讯均已完成《战略合作框架协议》的签字盖章程序,协议已正式生效共同推进互联网+人社、互联网+医疗、互联网+医保行业支付的发展,同时与易联众在全国展开微信医保移动支付业务合作。
2017年10月18日    15:52
【中国自主研发ARJ21飞机高(高)原航线试飞成功】青海机场有限公司18日对外公布,经过为期5天8架次的高(高)原科研验证飞行,中国自主研发的ARJ21-700飞机成功完成青海辖区内的西宁-德令哈-花土沟-德令哈-西宁航线和西宁-格尔木-西宁航线试飞任务,标志着中国自主研发的ARJ21-700飞机已具备在高(高)原环境安全进行航线飞行的能力。(中新网)
2017年10月18日    15:01
#今日收盘# 【食品饮料领涨 沪指涨幅 0.29%】截至收盘,沪指报3381.79点,涨幅 0.29%;深成指报11282.75点,涨幅 0.07%;创业板指报1868.16点,跌幅 0.47%;中小板指报7756.07点,涨幅 0.38%。(本文由财新智能写稿机器人财小智基于财新数据内容发布)
2017年10月18日    14:54
【央行发布2017人民币国际化报告:人民币国际使用稳步推进,人民币在全球货币体系中保持稳定地位】报告称,据环球银行金融电信协会(SWIFT)统计,2016年12月,人民币成为全球第6大支付货币,市场占有率为1.68%。2016年10月1日,人民币正式纳入国际货币基金组织特别提款权(SDR)货币篮子,这是人民币国际化的重要里程碑。
2017年10月18日    14:34
【银行股尾盘拉升】工商银行、平安银行、建设银行、农业银行领涨,浦发银行、光大银行、兴业银行跟涨。
2017年10月18日    14:25
【山东地区涉及电解铝企业的限产细则已经全部落地】10月17日山东省聊城市发布2017年冬季供暖季工业企业错峰生产方案。信发集团将停槽564台,对应产能38.19万吨,占其总电解槽1880台的30%,信发集团合规总产能158万吨。据了解,截至目前,山东地区涉及电解铝企业的限产细则已经全部落地。(上海有色网)
财新微信

热词推荐
秦晖 陈小鲁 二胎政策 陈有西 洋务运动 王晓东 易乾财富 资本充足率 通货紧缩 曾荫权 中央军委 法国国旗 掮客 龚正 楼继伟