京东双11百亿海量交易的维运关键大公开
2017-11-08 18:15:53 | 来源:ithome | 投稿:小唯 | 编辑:dations

原标题:京东双11百亿海量交易的维运关键大公开

京东金融MySQL维运资深资料库管理员潘娟表示,京东尽可能将维运工作分散到日常工作,借由平时的检测发现潜在问题,降低服务出问题的风险。(摄影/何维涓)

电商平台年度最大的购物促销活动双11即将开打,去年的双11活动京东单日创下人民币111亿元的营业额,能够撑起庞大的交易流量而保持服务稳定不中断,并非偶然,而是需要靠平时分散维运的工作,不仅如此,京东还定期演练服务中断的应变工作。

京东一年度会有两次大型的促销活动,年中的618和双11活动开跑时,用户会非常集中在单日产生爆量的流量,平台的I/O流量会暴增,若是支付服务停摆1分钟,就会造成业务非常大的损失,且业务繁忙时,每个工程师都会非常紧张,当下才要找问题试图去解决,会需要花费很多时间。

“稳中求进是我们维运的原则,”京东内部多达3万个伺服器,超过2,000个资料库,光是为运团队就超过180人,京东金融MySQL维运资深资料库管理员潘娟表示,由于交易平台涉及支付且提供24小时不中断的服务,京东对资料库稳定性和一致性的要求特别高,京东相信预防胜于治疗,因此,将维运的基本功分散到日常的工作,将交易平台服务出状况的风险降到最低。

为了能够打造出高达99.99%的高可用率的系统稳定性,将许多维运的工作,像是业务的评测、监控与预警、压力测试与服务中断预演,以及相关的业务演练等都分散在平时日常的工作来进行,潘娟认为,等到出现问题后,才开始找原因和试图解决问题,需要花费的力气远超过平时维运工作所付出的代价。

新服务上线流程标准化,自动部署不出错

公司内部的研发或是业务团队,若有新的服务或是应用要上线,则需要申请伺服器和资料库,京东的规矩是,业务申请人必须填写一张应用服务的记录表格,包含应用需要的资料库容量、业务增长量、I/O流量等资讯,资料库管理人员根据记录表的资讯,会对该服务的规模有初步的了解,接着再与线上正在执行的应用比对,评估新服务所需的伺服器规格和资料库架构。?

潘娟举例,若新上线的应用规模较小,停机半天也都不会对公司营运有太大影响的应用,像是后台的管理系统,则资料库管理员会选择最简单的架构HDB,可以实现单机多应用,若是非常重要的业务,I/O流量也有一定的要求,就会选择MHA(Master△HA)的架构,来确保高可用性,MHA如果监控到Master节点异常,将会把Slave转换成Master,而若是业务量非常大的应用,京东则是另外开发一套CDS的架构。

选定好伺服器和部署应用的架构后,资料库管理人员就要负责设置监控和预警的机制,需要保证应用服务24小时都能够正常运行,包括检测应用的存活率、资料库的主从一致性,以及硬盘容量和延迟等讯息。

最后,在服务正式上线前,免不了还需要做压力测试,潘娟表示,京东通常会用该服务平时2~5倍的业务流量来测试,查看伺服器和应用会不会出问题,也能检视选择的架构是否满足业务需求,此外,“若该服务与其他服务共存,则要特别小心!”她提醒,测试的过程中也要留意该服务的运行是否会影响到其他原有的服务。

这些检测的工作,都是需要在服务上线前确实落实,她认为,在服务上线前的检测工作,不但可以先找到潜在问题,还能让业务人员和资料库管理人员,对该服务的现况有所了解,即使服务上线后出差错,对资料库管理人员来说,也能够较快地找到问题并解决,而不用从头开始找问题。

服务上线后也不能松懈,灾难演练确保服务中断能迅速恢复

服务上线前,京东不放过每一个细节的检测工作,为的就是确保服务上线后不会有任何问题,但是服务正式上线后,因应业务,资料库会有不少变更,需要扩充容量或是升级等,“通常90%以上的服务,只要变更过,一定会存在许多潜在问题!”潘娟表示,资料库每一次的变更,都是风险,潜在的问题就像定时炸弹一样,早晚都会爆发。

为了不让这些潜在的问题突然爆发,而且突然出现问题时,维运人员也往往会措手不及,于是,京东在服务运行的日常中,就安排了服务的离峰时段,大约是凌晨3~5点的时间,在不影响服务的原则下,将主服务停掉,切换到异地防灾备援的伺服器上运行,确保主服务停机时,服务可以顺畅且快速地恢复,确认没有问题,才又将主服务切换回来。

“刚开始这样做时,业务人员很不能理解,”她表示,业务人员质疑为何服务明明能够正常运行,却要三更半夜做服务中断的演练,也会影响到原本的服务,但是,京东的维运部门坚持,只要变更过的资料库,没有办法百分之百确认资料库没有异常,如果服务真的中断了,需要恢复却发现无法恢复时,代价就更大了。

因此,京东坚持在线的服务,都必须定期安排灾难演练,模拟服务不可用的情况下,能不能及时恢复服务,以及恢复服务需要花多久的时间,京东是由系统分析师、资料库管理员,以及研发服务相关的工程师组成一个团队,来负责灾难演练的工作。

况且,潘娟表示,若服务平时没有经过演练,业务人员和维运部门团队人员的流动,也很容易造成服务中断时,没有一套标准的流程可以依循,“我们希望将一切未知变得可知。”她说。

如何打造一套维运标准化流程?以灾难演练为例

过去京东的维运工作没有标准化的流程,导致难以管理,出现问题也不容易快速找到问题的根源,潘娟表示,京东从2016年7月到今年5月这段期间,开始重整维运架构,建立出一套维运的标准化流程,尽可能在问题发生前先预防。

京东的灾难演练分为两类,一个是同机房的演练,也就是假设在北京的机房有主和从资料库,主资料库当机了,要马上切换到同机房的从资料库,另一种则是异地机房的演练,如果北京机房的资料库都不可用了,维运部门能不能迅速地切换到上海,或是其他地方的机房,来提供相关的服务。

为了做防灾演练,资料库管理员必须先做许多事先的准备工作,包括整理资料库的分类、每个应用和服务的相对应关系,也要确认好每次测试的应用演练范围,以及将所有的应用都建立异地备援的机制,最后因为京东的服务和应用非常多,不可能用手动的方式完成部署,资料库管理员还需要撰写自动化的程式来执行相关任务。

将基础的工作准备好之后,维运团队要一起讨论并制定出灾难演练的计划,将所有的流程标准化,如此一来,新进的维运团队人员也可以依循着既定的工作流程执行任务,最后还需要跟业务部门的人员协调,在服务流量最低的时间点来执行演练,演练过程需要确认的内容包括,确认资料库、系统配置讯息、主从资料库一致性、防火墙的权限,潘娟表示,所有的服务的相关讯息都会检查一遍,经过灾难演练后就会发现一些隐藏的问题,像是服务的一些功能模组没有升级、权限设置有问题,或是程式码有问题等。

她也提醒,应用在一开始就需要考虑用自动化来维护服务正常运行,有些企业习惯到服务业务量增加到一定的量才来考虑,但是,业务量高速发展时,工程师需要花较多的心力在应用服务当前的问题,没有足够的时间来处理自动化维运的工作,因此,她建议,成长型的业务需要更早是先做好自动化维运的工作,况且,自动化的程式需要真正应用在服务上,经过反复的修改才能完成,并不是短时间一次就能完成的工作。

打造DBA自动化维运和万用流程平台,维运资讯透明化更快找到问题

除了上述的维运基础工和灾难演练之外,潘娟认为,“所有的维运资讯都必须透明化!”京东维运团队打造了DBA自动化维运平台Mega,将资源管控、慢查询、效能优化,伺服器负载情形、效能热力图等功能都包含在内,并且每个伺服器也会显示维运的负责人、业务类型等相关资讯,方便维运和业务人员有状况时,即时联系到负责人。

除此之外,平台还能显示服务30天内上线的情形,像是资料库的负载,若想查询某个伺服器负责哪些应用、负责人等资讯,也只需要输入伺服器的编号,就能查询相关的讯息,例如,网域名、主从架构,以及在伺服器存放在哪个机房,她认为,将所有的资讯透明化并且方便查询资讯的功能,让维运团队在应用出问题时,可以更方便地查询问题的原因。

有了维运所需的资料之外,京东还发现一个问题,也就是业务研发人员上线新服务时,往往需要找维运部门负责不同工作的工程师协调,不过,研发人员不了解维运的工作,也常常漏掉某些环节,导致应用上线时出现问题。

因此,“京东将维运部门所有业务都统整到单一平台,”潘娟表示,京东为了不让业务人员在协调时造成混乱,建立了万用流程系统MagicFlow,目标就是让维运团队对外是一个单位,研发部和业务部需要协助时,不需要了解维运内部如何协调,只需要按照MagicFlow系统的流程申请,对维运人员来说,也不需要担心自己的任务从谁的手上承接,完成后又要移交给谁负责。

设计MagicFlow系统的过程即是将维运和业务团队的组别负责人找来一同讨论,先收集大家的需求,再将一些大家都会需要使用的功能整理出来,一同协调出共同的标准和流程,并建立模组,如此一来,所有人都能遵循一定的标准化流程申请服务。

最后,经过过去近一年的努力,京东发现应用、资料库和域名等问题并且已完成修复,也开发跨机房切换资料库的程式,总共新建置了206个内部系统灾难备援机制,共完成 284套分批23次的资料库切换演练,“尽可能将维运的基础工作在平时做好,”潘娟强调。

京东资料库防灾演练9大事前准备工作

?1? 确认主备机房的资料库分级标准

?2? 梳理资料库分类、主从关系,确认可演练范围

?3? 建置异地机房备援

?4? 梳理应用与资料库对应关系和权限验证

?5? 开发域名切换操作介面

?6? 编写演练执行程式

?7? 确定演练方案

?8? 制定切换演练标准

?9? 制定演练计划表

资料来源:iThome整理,2017年11月

tags:

上一篇  下一篇

相关:

YouTube视频推荐怎么知道你想看什么?关键就在机器学习

不少人观赏YouTube上的视频内容,会发现YouTube会推荐许多你可能感兴趣的内容,Google今天揭露这项服务背后的关键技术为机器学习,通过机器学习过滤出使用者可能感兴趣的内容,以提供用户个人化的体验。全球每分钟约

Walmart靠机器人盘点50家分店背后的秘密,关键技术是电脑视觉

图片来源: Walmart 全球零售商龙头沃尔玛(Walmart)于上周四(10/26)宣布,在美国的沃尔玛超市将使用机器人和人工智能(AI)技术,来处理具重复性、可预测性的人工任务,如扫描货架上缺货的物品、替换不正确的价格

新加坡国家级区块链在台大公开

新加坡金管局创新加速办公室主席Stanley△Yong在10月23日举行的“金融科技、创新创业暨区块链最新发展研讨会”上,公开了区块链技术的研究成果。(图片来源/新加坡金管局) 各国央行卯足全力冲刺金融科技、区块链

AI趋势双周报第19期:9万种人体动作大公开!为加速AI影像识别技术进展,Google释出人类行为资料集AVA

图片来源: Google 重点新闻(1014~1027)动作识别 电脑视觉9万种人体动作大公开!为加速AI影像识别技术进展,Google释出人类行为资料集AVA为了加速影像动作识别的研究,Google近日推出人类动作理解资料集AVA(Atomic△

9万种人体动作大公开!为加速AI影像识别技术进展,Google释出人类行为资料集AVA

图片来源: Google 为了加速影像动作识别的研究,Google近日推出人类动作理解资料集AVA(Atomic△Visual△Actions),提供视频中针对每个人多种动作的标签,AVA收集YouTube公开的视频,将80个动作标注标签,包含走、踢

站长推荐: