“如果等会儿出问题,我就从这跳下去。”
阳振坤是支付宝背后自研分布式数据库的负责人。
2009 年,第一次双十一大促开始,当时谁都没想到电商大促会这么成功,正如也没多少人预见当年诞生的、等非关系型数据库能在业界掀起一场革命一样。加入阿里之后,阳振坤发现无论对淘宝还是支付宝,关系数据库都扮演着十分关键的角色,在使用上根本不可能摆脱。但已有的数据库,无论是商业数据库还是开源数据库,都有非常多的局限,远远无法满足如淘宝、支付宝这样的互联网和金融业务对高扩展、高并发、高可用和低成本的需求。
单机数据库已经走到了尽头,下一步只能走向分布式。2010 年,OceanBase 项目启动。
OceanBase 遇上了阿里巴巴集团去 IOE的天时地利,但人和却来得比较迟。直到 2013 年,支付宝也开始去 IOE 以后,阳振坤向鲁肃毛遂自荐了 OceanBase 的解决方案,得到了攻坚 2014 年双十一的机会。
大促开始前的凌晨,各个团队都在自己的作战室里热火朝天地准备。当时任蚂蚁金服董事长的彭蕾去了 OceanBase 团队的作战室,问大家:“有没有信心?”阳振坤跟彭蕾开了个玩笑说:“你看我们窗子都已经打开了,如果等会出问题,我们就准备从这跳下去。”
最终阳振坤并没有跳下去。
最初的计划里,OceanBase 只会承接双十一大促流量的 1%,剩下 99% 的流量由 Oracle 数据库负责。但因为当时的 Oracle 数据库支撑不了汹涌而来的巨大流量,最后 OceanBase 承接了 10% 的双十一流量,十倍于最初计划。
后来,OceanBase 团队获得了 2015 年蚂蚁金服的 CEO 大奖,这也是第一次由技术团队拿到这个奖。彭蕾希望借这个奖鼓励那些能够沉下心来、扎扎实实地把一项技术做好做扎实的技术人们。
后来发生的故事大家也都知道了,OceanBase 不仅走出了支付宝,走向了金融业界,也成了国产自研分布式数据库的佼佼者。可谁能知道,当初这个团队数度面临解散危机?如果不是双十一获得的巨大成功,也许 OceanBase 还在蛰伏中。
“这是我这么多年双十一过来最没有底气的一年。”
今年是四虎第十一次参加双十一。
2009 年,四虎第一次参加双十一,值班守交易的服务器。在此之后的每一年,他都深度参与了双十一大促。2017 年开始的三年间,他开始参与双十一的指挥层,作为负责双 11 的技术团队的业务研发线大队长。
作为根正苗红的双十一亲历者,四虎表示 2012 年之前,阿里巴巴的系统设计是没有考虑到能够支撑上百倍的流量压力的。所以系统如何做到高压情况下不宕机是他们前几年主要努力的方向。随着全链路压测技术的成熟,技术团队可以很快定位系统水位短板,提升高压下的突变应对能力。
2012 年以后,主要解决的就是业务问题:超卖、重复下单、优惠复杂性,这些严重影响消费者和商家体验的难题是技术团队需要逐个突破解决的。2016 年,开始做系统吞吐量的提升工作,让业务快速发展的时候,保证服务器数量,到了今年全面上云成了最重要的工作。
2017 年双十一,四虎遇到了一个难题。
当时双十一活动中,主互动发奖出现中奖用户和金额数据计算不一致的问题。如果把错误的金额发给了消费者,会让辛辛苦苦参与了 20 多天前序活动的消费者拿不到应有的红包,在双十一这种全民参与的购物狂欢节下,这个 Bug 对于用户体验的损害有多大不敢想象。
在当时的情况下,技术团队不仅需要紧急开发程序重新计算发奖,同时还需要修复系统故障确保下一次开奖能够保证准确不出错。
解决时间只有 2 个小时。
活动发奖系统是用写的,但四虎带领的技术团队主开发语言是。只能临时拉集团熟悉 Python 的项目组同学火线救援。
最终 2017 年双十一在前台层面风平浪静地度过了,但背后技术团队的惊心动魄却无人能知。
双十一已经做了十一年,各种组织保障和流程都已经很完善,同学们也大部分都比较熟练。四虎说,最怕的就是大家看起来做的井井有条,但是实际上有很多漏过的事项。
技术团队为此做了各种攻防和破坏性演练,在考验系统抗风险能力的同时,锻炼组织的协作能力,以及项目成员在高压力情况下的紧急处理故障的应变能力。在全链路验收的时候,加入了对云机房的攻击演练,通过这次演练还真发现了不少较严重的问题,可以针对性地做预案、解决。
四虎双十一筹备期间,每天早上 9 点到公司, 晚上回家时间不定,大部分是在 0 点前后。跟平时来比早上来晚了,晚上回去也更晚了。因为平时会在 8:00 左右到公司,晚上在 20:00 左右回家。
“从未想过放弃。无论 618 还是 11.11,都是工作的一部分。”
这是刘海锋在京东的第 7 个 11.11。参加工作十年后,刘海锋已是京东技术副总裁、零售基础架构负责人。
他曾先后带领团队负责分布式存储、商品图片服务、中间件平台、容器云平台、CDN、数据可视化、各种数据库系统、全链路压测、统一数据中心调度等一系列技术基础设施。
刘海锋说,这些年大促备战,技术准备时间的整体趋势是越来越短。这两年基本上在国庆节过后开始正式启动备战工作,持续大约一个月的时间。这背后,既是大促团队的业务熟练度达到了一个高的水平,同样也是技术上的基础设施等保障发展到了一个很高的水平,才能做到这样的游刃有余。
机器虽然比人力可靠,但也避免不了出错的时候。
从前线开发到带团队一起攻坚大促,刘海锋的心境发生了挺大的变化。
刘海锋:左起第五位
电商大促对于技术团队而言有多累,不言而喻。纵览业界,不乏因为太累、忽视了家人的感受而选择离职的电商技术团队同学。但刘海锋表示,自己从未想过放弃。
“空吼无益,实干维稳!”
如果说双十一对于技术人员来说是一场沉重的考验,那运维人员也许是最累的那些人之一。
普智,2015 年加入蘑菇街运维团队,到今年为止已经参加五次双十一。
2016 年,普智第二次参与双十一大促活动,就遇上了滑铁卢。
今年双十一是蘑菇街全面云化后的第一次大促,对服务的稳定和性能挑战非常大。为了应对本次双十一,普智的团队和业务同学一共组织了多达七次全链路压测。
在双十一的筹备期,普智所在团队的大部分人员作息时间仍旧根据公司日常上班时间走,只有在全链路压测的时候会全体轮流 参与值班。
双十一当天,对于很多技术团队而言都是一个不眠之夜。能睡几个小时通常不是由技术同学决定,而是看业务情况,系统负载情况,普智说双十一是团队作战,不是单兵攻坚,睡眠一般还能得到保证。
不同于其他技术团队在双十一前喊出的各种口号,普智觉得喊了狠话以后精神压力反而会更大,“空吼无益,实干维稳!”
“双十一,我家老二出生了。”
2014 年,乔新亮以顾问身份参与苏宁的双十一筹备。
当时的他还在 IBM,苏宁请他做顾问去带领双十一的技术团队。2014 年的双十一,是他最全面参与并下到一线组织、最没有经验的第一次双十一。
当时,苏宁在 818 过后的 8 月底就启动了 2014 年双十一的筹备。乔新亮一手组织,包括搭建准备双十一的项目团队,调集所有研发中心参与准备,分析双十一有什么风险,分析核心系统设计中影响高可用、影响业务连续性的设计,针对不能通过系统设计自动处理的部分,明确应急方案,响应机制。
2014 年双十一后,乔新亮就加入了苏宁,经历了历届双十一的大促活动,整体负责了 2015-2018 年的双十一大促,不过逐步从一线指挥转向了幕后指挥,值得自豪的是从 2014 年开始,每年都是一个稳定成功的双十一。
在乔新亮看来,历届双十一没有出现故障的原因除了运气好,更多是因为事情做在了前面,大促保障,工作在平时,检验在大促。2014 年,是乔新亮组织的第一次双十一,当成功度过以后,他长出了一口气。
乔新亮认为类似的大促场景,一定要把设计做到足够完善,才能应对高并发流量带来的冲击。技术负责人必须得有价值主张:第一,少出事故;第二,故障时间短;第三,故障影响小;第四,尽量用低的成本。与之对应的就是高可用、容量足、容错强、要做变更、可视化、全生产链路压测等等。
双十一未来只会越来越轻松。最终那些东西都会归到基础的云平台去,都是成熟了的技术。
一个企业这种大促的成功,绝对要靠体系化的管理,而不是仅仅只依赖一线员工的责任心或者能力。
乔新亮离开苏宁以后去了环球易购,仍旧在筹备双十一的主战场上。
写在最后:致敬技术人与这个时代
2009 年到 2019 年,双十一已经走到了十一年。中国互联网也从 Web 2.0 到移动互联网时代,再到 5G 时代。
对于身处其中的消费者而言,双十一、618 等大促意味着全年最实惠的价格,最狂欢的购物体验,屡创新高的消费金额。但对于背后的技术人员来说,这是一次技术实力的考验,也是一次超大压力的辛苦旅程。在这个过程中,哪怕稍有差池,系统故障,流量告警,宕机,影响到的都是以亿计的消费者,程序员们太不容易。
让我们致敬技术人默默做出的贡献,真正让技术普惠到了商业的发展。
让我们致敬这个时代,能让中国技术持续生根发芽,长成参天大树。
谨以此文,献给这个时代下,向阳生长的各位技术人们。