考拉上“云”的431天:经历了怎样的“脱胎换骨”?-天下网商-赋能网商,成就网商
天下网商记者 王安忆 黄天然
今年双11,是考拉海购加入“阿里动物园”的第二年,其成绩单备受外界关注。
加入阿里431天,考拉交出了一张漂亮的成绩单:会员规模增长104%,刷新过往双11纪录。
很多人不知道,增长来之不易——2019年9月,考拉被阿里正式收购后,经历了一场“脱胎换骨”:数据库应用架构重新设计、百万级节点的容器集群大规模迁移、数据中心从杭州机房迁移到上千公里之外的张北、从基础组件到中间件全面拥抱云原生……
2019年9月29日,阿里为考拉举办了入园仪式
在这一年里,黑卡会员们买买买的同时,考拉悄无声息完成了一场数字基础设施的彻底换血。
如今,全站业务全部平稳过渡到阿里云后,考拉已栖息在一棵长在“云端”的参天大树上。
一场大规模快速迁移
阿里收购史上,考拉体量不算最大,情况却很特殊。
网易只出售了考拉的业务,却没有出售原本支撑考拉的数字软硬件设施,比如物理机房、云端数据库等均不在其中。
因此,收购完成之后,考拉核心数据势必迎来一场大规模快速迁移。
根据阿里预定的计划,从2019年9月6日到2020年3月31日,为“考拉入园”后的半年整合期,考拉需要完成所有数据迁移,且业务不停服,一年之内,考拉需要完成云原生的战略升级。
焦灼的电商战中,业务发展等不起,但这样的速度,在阿里历史上前所未有。
“原本的历史数据和业务应用,就像是考拉的身体,现在我们需要给它换一个新的‘大脑’,重新连接起原本的数据,但不能影响它正常活动。”阿里云资深架构师吴明比喻道:“要以最快速度和最低成本完成这一任务,考拉上云是最佳方案。”
吴明(左三)和阿里工程师们
这是一场与时间赛跑的迁移,阿里和考拉都出动了最出色的工程师。
然而,第一个问题就成了难关。
考拉数据迁移的目的地远在河北省的张北数据中心,按照惯例,大规模数据迁移,都需要拉一根实体的网络专线传输数据,如果从杭州铺设专线到河北,施工成本以千万计,关键工程量还特别浩大,根本无法在半年里完成。
阿里工程师想到了一个好办法——过渡时期,可以先将阿里云杭州数据中心做接入口,然后在云上做内部链路,云端跳转之后,考拉只需从网易机房铺设一条通到阿里云杭州数据中心的专线,就可以把数据迁移去张北。
张北数据中心机房
“最后只拉了5公里专线光纤,工期一周,还把原本几千万的成本压缩到了几千元。”考拉上云架构师伏见说。
很快,工程师们又遇到了新问题。
数据迁移要求打通阿里与网易的内网,可是两家公司的防火墙都很结实,根本无法同时访问两家的内网账号。
阿里云为此孵化了一个新产品——为考拉量身定制了独立的虚拟私有云(VPC),既可以让两家公司的网络流畅互通,又能确保数据安全。
“这种全新的产品,原本开发周期需要一两个月,但是为了让考拉如期完成迁移,我们只花了一两周就完成了开发。”吴明说。
“如果是线下机房,涉及到两家公司的安全方案,很难实现这样的模式,解决这一问题,也是得益于阿里云可以快速灵活配置VPC的能力。”伏见说。
2019年11月12日,阿里巴巴集团董事局主席兼CEO张勇来到宁波保税区的考拉1号仓
网上协同挺过最关键时刻
今年1月底,考拉进入了紧张的数据迁移内测环节。
数据迁移一旦正式启动,顺利的话只需三四个小时,但要确保过程万无一失,前期需要花几个月测试和演练,从虚拟流量到真实流量,确保规避所有问题,才能正式启动。
紧要关头,疫情来了,600多位参与数据迁移的考拉工程师,春节之后被迫开始“云办公”。
“年初五就有同事打电话问我,年后大家不能去公司怎么办,要不要延迟数据迁移的时间?”伏见回忆。
伏见明白,一旦迁移推迟,考拉就会错过今年第一波的3.8女神节大促,还要延长与网易机房的合约期限,导致成本上升。
大家在“云办公”时,还不忘加油打气
“‘云上协同’有困难,但迁移不能延迟,无论如何也要顶着压力扛过去。”伏见说。
云办公的时间里,伏见成了最忙碌的“电话接线员”,有时候同时要开三个会议,手机开一个,电脑同时开两个。
其他工程师大抵如此,都是接入多个会议持续通话,以保持“云办公”时集体操作的协调统一。
数百名工程师在云上协同,哪怕一个环节没确认好或是信息理解不一致,就可能发生误操作,导致迁移后的应用功能出现差错。
2月29日晚,所有测试完毕,考拉全站迁移阿里数据中心进入最后的关键时刻。
当时尚未全面复工,原本灯火通明的阿里西溪园区,大楼内空无一人。
将近凌晨12点,伏见与数据库团队和阿里云的两位工程师来到园区,在漆黑的夜里点亮了大楼里唯一一间办公室。
他们负责在一线第一时间确认考拉数据迁移的执行进度,而考拉其他工程师们,则分散在全国各地,同时加入这场大规模迁移操作,每个人都凝神屏息,默默等待着关键时刻的到来。
大家制作了自己表情包,在群里相互打气
“当时非常紧张,迁移的操作列表,每一个都非常长,每一个操作步骤后的验证步骤也非常长,需要很多同学配合做出精细化操作。一旦切到阿里云时出现差池,会对用户体验产生直接影响,我们的目标就是零故障,因此必须非常谨慎。”考拉测试质量团队负责人林兮说。
办公室里,伏见盯着大屏上的进度条一点点向前挪动,就像瞭望着一艘夜航巨轮,正在航道灯的引导下驶过暗礁险滩。
“其实演练过很多次,基本上不会出现问题。”伏见相信。3月1日凌晨3点40多分,进度条顺利走完,数据迁移大功告成。
考拉团队从阿里滨江园区搬到西溪园区前的留念
全站切换至阿里云后,考拉立刻进入验证阶段,一有问题,工程师们迅速跟进解决,1日当天,成功闭环98%以上的问题。
“那天,这个数据在群里同步时,大家都很嗨,这可以算是一次‘零故障’迁移了。”林兮说。
数据搬完家后,考拉立刻开始备战3.8女神节大促,迎接考拉迁移上云后的首个流量洪峰。
考拉团队总结会后的留影
经过连续几天的压测和紧急扩容,3.8女神节当天,考拉的流量峰值,较2019年双12增长了72%,而运行在云上的考拉如磐石般稳稳地扛住了流量峰值,而且成本比之前大幅度降低。
考拉各业务线也在当天被证明已100%打通,形成闭环。
直到大促结束,吴明团队没有接到伏见的紧急电话,没有消息,就是最好的消息。
每年节省2000万元成本
3月31日,考拉如期从网易机房下线,铺设在网易和阿里之间的5公里光纤专线,在完成历史使命后也顺利拆除。
至此,考拉全面上云、快速入园的任务,获得了里程碑式的成功。
圆满完成第一阶段目标后,考拉开始了全面的云原生之路。
过去,每到大促前夕,考拉都要提前几个月打申请,临时购买服务器扩容。
如今,借助阿里云的弹性计算,考拉可实现单日内的弹性收缩。
还有同城双活数据中心,考拉过去一直想做。
在同个城市部署两个数据中心的好处在于,可以在一个数据中心发生故障或灾难的情况下,实现用户的“故障无感知”。
考拉曾在2019年做过一套方案,发现建设这个能力需要8个月,成本高达上千万元。
阿里早已尝试过“同城双活”、“异地双活”、甚至“异地多活”,在阿里云原生产品天然多AZ容灾能力下,考拉在一个月内就完成了“同城双活”的能力建设,具备了多AZ容灾能力。
“工作被‘抢’走了,我还挺高兴的。”这是考拉运维工程师李斌的肺腑之言。
3.8女神节后,考拉用户量大增,却苦了运维的同学。
一直以来,考拉使用自建的ZooKeeper(分布式协调服务),一旦负载增大,某台服务器宕机后,就会自动选举新的服务器,这个过程中无法对外提供服务。
宕机伴随的警报声,可能发生在任何时间节点,李彬不止一次在凌晨恢复数据,而且钉钉群里还有一线业务员“刷屏”式的催促。
伏见(左)
伏见发现阿里云有一套MSE(微服务引擎),相当一个全托管平台,找阿里云问了两句,对方工程师就拍着胸脯说,“没问题的,以后的运维工作我们都包了。”
阿里云的资源弹性能力和自动化运维技术,预计为考拉每年节省成本近2000万元,同时计算性能提升20%。考拉也不再设立专门的运维团队。
“开箱即用”的云上产品,更像是一种共享经济,而且阿里云这些云产品经过历年双11的打磨,解决过业界最难的问题场景和复杂度。
和阿里云一起吃第一个螃蟹
2019年9月到2020年3月31日,归功于阿里云的成熟产品,“考拉迁云”顺利完成,考拉基础产品负责人玄圈对这一过程的评价是“稳定”,但到了“考拉换树”全面拥抱云原生时,阿里云一些“半定制”产品,却带来了一些新的挑战。
吴明(左)和玄圈(右前)
在阿里云的PaaS层系统中,有一个名为ARMS(业务实时监控服务)的中间件,可以通过实时监控系统运行指标,评估系统健康状态。
AMRS最大的优点是改造成本低,一行代码就能接入,原本的多数业务也不需要修改。但是ARMS也是个“考拉定制版”的产品,支持全链路压测,上万级节点体量的考拉,是第一个吃螃蟹的“自己人”。
第一次为伏见做ARMS介绍的人,是阿里云架构师涯海,两人一见如故。
考拉第一次接入ARMS时,也没出任何问题。
考拉团队给涯海(左)送花以表感谢
然而,恰逢考拉“55大促”临近,考拉将100多个应用上线ARMS,没想到却发生意外,顾客购物时偶发无法下单,反复出现“请重试”的提示。
伏见紧急回滚了百余个应用的版本后恢复。
5月,考拉团队进行压测
发生故障后,涯海立刻从西溪园区赶往滨江园区,亲自给考拉团队道歉。没想到考拉技术负责人朱静波走过来安慰他,“这个主责算我们项目组的,归伏见。”
没想到,涯海后来赶去滨江的次数越来越多,尤其是“99大促”压测,小问题聚集爆发。
压测,就是把大促最高水位的压力,持续不断地在线上系统模拟。
好比一个人平时走200米没有感觉,突然暴走2万米,肾、肝、肺的问题都会在高压下暴露出来。
涯海(右二)和考拉样板间的同学们
在涯海和伏见看来,早点发现故障是好事。
双方制定了作战方案,例如从灰度环境再到线上环境,分多个批次上线等等。5个月,双方共同解决了200多个问题,ARMS迭代升级50多个版本,终于走到了“老夫老妻”的状态。
5月28日,考拉海购全面上云
10月,考拉在ARMS上的业务一切稳定,“边开飞机边造引擎”的日子终于告一段落。
考拉也经受了双11大考
很快,考拉又迎来了今年天猫双11的压测,玄圈专门带了几个组长,跑去西溪园区1号楼7层备战双11的“光明顶”,听着双11技术大队长霜波站在台上指挥,“第一轮压测的目标是什么,加多少流量……”
天猫双11期间,考拉团队的会议
考拉过去也做过双11压测,但玄圈发现,阿里在压测中的功能预演、时光机(双11零点的流量)等功能从前都没用过,“阿里是把双11零点所有的可能性,都压上来了,没有十多年的实战经验,不可能做到。”
10月21日,天猫双11正式开启,考拉也走进了李佳琦直播间,1秒卖出10万张考拉黑卡。
紧接着是参与11月11日的大促,这也是考拉换树后,第一次以会员电商的身份,参与阿里最大的项目。
11月11日零点刚过,天猫双11的订单峰值就达到58.3万笔/秒,阿里云再次扛住全球最大规模流量洪峰。
阿里巴巴CTO程立表示,继去年核心系统上云后,阿里巴巴进一步云原生化,将每万笔峰值交易的IT成本降低了80%,这些核心技术也正通过阿里云向全社会开放。
今年双11,云原生帮考拉减少了250台服务器,节约成本约100万/月,沉淀出一套落地实践方案。
考拉在云上的研发效率也大幅提升,例如使用阿里云直播中心服务,考拉快速完成了海外直播服务从0到1的搭建。此外,“爬树TV”、“Like社区”等新功能也相继上线。
“阿里云能把集团内部的业务完全上云,本身就显示出一种自信。”考拉技术负责人朱静波认为,考拉虽是以样板间身份在做尝试,但云服务能力越来越完善,对考拉和外部企业的技术支持就会越好,“这本身就是一个相互成就的过程。”