2019独角兽企业重金招聘Python工程师标准>>>
摘要: 一路走来,文景也曾疑惑过:为什么我们不能把活动的时间跨度拉长到3天,或者1周呢?那样我们或许就不必冒着如此大的风险,承受日常峰值是10倍以上的压力啊!然而当他走到现在才深刻的体会到,正是因为这集中爆发的、一次又一次的业务洪峰,在拉着技术往前狂奔,这才铸就了今天这支能战能胜的技术团队,技术应该感谢业务...
情不知如何而起,竟一往情深。
恰如我们。
十年前,因为相信,所以看见。
十年后,就在眼前,看见一切。
当2018天猫双11成交额2135亿元的大屏上,打出这么一段字的时候,参与双11护航的阿里云CDN技术掌舵人姚伟斌(文景),心中涌起一丝莫名的触动。
CDN是最早参与天猫双11的技术之一,伴随双11走了十年,回首十载春秋,无论是业务规模、技术架构,还是这些幕后的工程师们,都发生了翻天覆地的变化。他们的故事虽不如《阿里云这群疯子》一文中那般精彩,但也值得铭记!
技术掌舵人文景:双11是技术小二最重要的事!
11月11日00:19分,文景看到作战室的小伙伴们在轻松地交谈后,他知道双11的流量洪峰已经平稳地渡过了,他开始刷起了淘宝,他在为24小时后的结束仪式采购龙虾。
不同于往年在光明顶(双11作战总指挥室)的忐忑和亢奋,今年文景团队100多名作战成员多了一份从容和镇定,他们分布在不同的办公地,五地在线协同作战。在文景看来,这些年,业务倒逼了技术发展,推动了个人成长。十年双11磨出来的稳定的系统、成熟的作战方案、默契的团队配合,都是这个团队一路走来,身上的不可磨灭烙印。
(文景在双11会场选购宝贝)
作为CDN技术掌舵人,虽然文景不是团队中最“老”的同学,但他却历经了淘宝业务飞速发展的几年,见证了从最初服务淘宝和集团内部的CDN,到如今国内服务客户最多的云CDN的每一步技术蜕变。
读书时期的文景是个非常“爱折腾“的学生,去女生宿舍帮忙调通网络,跟着导师接系统开发的“私活”,相对于从书本上汲取营养,他更偏爱从项目锤炼中获取知识。慢慢地,他接触到了嵌入式开发、无线传感网络、Linux、Nginx、Squid,向服务端开发转型。而真正让他感受到作为一个工程师的技术价值感的,是在做开源以后。“当时写了很多开源模块,有一些在Github上有了上千的STAR,我写的代码能帮到成千上万的开发者,甚至有国外的开发者会给我写感谢信,这不仅让技术得到提升,也给了我十分强烈的认同感,也是因为开源,让阿里看到了我。”在加入阿里后,文景负责的Tengine,曾一度跻身全球第十的WebServer。
很幸运,加入阿里的第一年他就赶上了双11。对于当时的淘宝技术人来说,双11是每年最最重要的事情。“对我们来说,最关键的就是在零点那一刻,系统要扛住,降级的措施越少越好“。文景回忆到,当时的技术原则:第一是要对业务有预估,几千万人同时并发的QPS是多少,系统能不能支持;第二,要做技术预案,所有依赖系统的容量是多少,一旦出了问题后的应对方案。”经过头几年双11考验后,系统逐渐具备了在极限的情况下也能正常运行的能力,在高性能、稳定方面有很大提升。到后来,我们技术能力已经远超当年秒杀的规模,当前的技术架构已经足以支撑,所有的技术人这才安心了。“
启航:从新手上路到一路狂奔
高级技术专家李克(空见)参与了整整十年的双11,现在谈起2009年的那个冬天,恍如昨日。“大家都是新手,该怎么准备、怎么配合,基本都是摸着石头过河,CDN当时采用的是硬件方案,性能和灵活性还有很大的限制。谁也没想到电商的业务发展的速度如此惊人,我们的一部分节点水位基本都跑在崩溃的边缘,当时真的是靠几个运维值班同学人工处理的方式撑了过来。”也就是在那年双11之后,淘宝核心系统部门宣布成立,将自研CDN提上了日程。
(空见在双11护航现场与“战友们”讨论)
当然,技术的积淀并不是一蹴而就。空见回忆道:每年我们都会预测第二年的峰值,但是每次都低估了电商的爆炸式增长。在这种高强度的业务压力下,基本上所有的瓶颈都会被我们遇到,内存、CPU、IO、网络,来来回回做了很多轮软件优化和节点架构升级。比如针对负载过高,增加前后端长连接机制,使得每个连接可以服务多个请求。为了降低IO开销,使用一致性HASH策略,将多个机器的磁盘统一使用。在单机上采取内存->SSD->SATA的多层存储策略,动态进行冷热资源的迁移,提升磁盘效率。为了应对峰值压力,我们会提前准备业务锁量、节点压测、降级预案、采购临时带宽等多种措施。在我们的监控和数据还不完善的那个年代,双十一就靠每个人打开多个终端,盯着一批节点,一旦发现机器负载过高,立马进行人工干预。
就是这样,团队靠着盯屏+人工操作,艰难撑过前几年,CDN架构不断定制、优化,团队的技术实力一直在重重挑战之中不断攀升。
转眼来到了2012年,文景认为这一年对CDN非常关键:“第一,我们决定不再采用外部的商用CDN,因为我们发现淘宝的流量,商用CDN是不足以支撑的。原因是淘宝是中国第一个图片这么多的网站,当时的SSD机器还没有这么流行,大部分的CDN厂商还在用SATA的机器,遇到数据量激增的时候,它的IOPS跑不起来,节点立刻会IOB挂掉。第二,当大部分CDN厂商都在用千兆机器,淘宝CDN已经在用万兆机器,我们是中国第一个使用全SSD机器的厂商,并且完成了40G的节点。当时的技术架构是非常领先的。”
演进:机遇和挑战并存的日子里
2013年,随着CDN能力的增强,很多业务已经开始使用CDN,比如秒杀、红包、详情页等,CDN能够offload大量的请求和带宽,避免源站能力不足带来的服务不可用。空见说到:这一年我们在技术上实现静态化和数据化,通过动静分离,抽象出来静态内容,缓存在CDN上,动态部分通过ESI回源异步获取。静态化改造之后,双11扛住了数十倍的业务峰值流量。
在内部业务越来越丰富的同时,CDN的数据化也开始有了产出,第一版的数据平台能够针对每个域名进行统计,提供节点、区域、运营商维度的五分钟粒度数据,包含业务数据,如命中率、带宽、QPS等,监控数据,如RTT、丢包率等。CDN告别了大锅饭时代,开始了精细化的运营,这也为后面CDN商业化提供了基础。
直到2014年,CDN不仅支持集团内部双11,也开始服务外部客户。空见很清楚地记得,在这年双11,团队内部搞起了流量竞猜,工程师们为此设计了一个预测系统,通过每年双十一的历史数据,以及各业务线的预估和实际情况,实时预测晚高峰流量,用来及时调整资源,比如当天上午11点就准确出来晚上高峰在多少T。
2015年对CDN团队来说也同样意义非凡,因为那一年他们险些背了3.25。
当时淘宝上了全站HTTPS,而由于前期压测、对新业务的评估没有做到位,全站HTTPS带来的计算开销导致CPU、内存都开始成为瓶颈。“当双11开始后,别人都在为数据再创新高而欢呼,我们团队的工程师却眼睁睁的看着线上节点内存被打爆,不停重启,当时我在客户现场驻场,真的连死的心都有了。”文景回忆到。
当时的CDN团队已经到了阿里云,经常全中国到处跑,深入客户现场,贴身服务,整个团队的工作重心不再仅仅是为双11做方案和保障。“我们从纯碎的技术人,变成了需要有商业思维的架构师,用CDN这个产品帮助客户去解决问题。也正是因为如此,这次的经历给我们敲响了警钟,后面每当新业务诞生的时候,我们都做足了充分的预案,坚决避免再次重现,更绝不容许这种情况出现在客户身上。”
(CDN团队2017双11合影 左三空见 右三士豪 右六文景 )
在2016年,新兴的直播、短视频业务发展迅速,带宽增速非常快,高级技术专家周哲(士豪)认为,团队在经历过数年双11的大考之后,已经开发出高性能、低延时、稳定的缓存系统,我们有能力服务好这么大规模的图片业务,视频业务当然也不再话下。
“但是真正当有大规模的视频点播业务上来之后,我才认识到对视频点播场景理解不足。视频点播对首屏、卡顿体验,以及对整体命中率和回源保护有更高的要求。于是,我们就通过对整个系统完善全链路监控、基于用户体验的调度、提高整体缓存命中率、TCP协议栈优化,来提高视频播放体验。”
原本专注网络的CDN团队,拉上了兄弟团队,搞了小半年的技术攻坚,打磨出了直播全链路保障的方案。这套方案也成功应用在了天猫双11晚会上,空见还记得在2016年团队在护航天猫双11晚会时,当TFBoy出现在屏幕上,带宽直接飙升好几倍,“这也是我第一次见识到了小鲜肉的威力!”
与此同时,优酷加入了阿里大家庭,这给CDN带来了很多大文件加速、视频加速的业务场景,让整个团队的资源建设和技术水平得到了补充。在技术层面,也加强了CDN团队对视频业务场景的理解,完善视频格式实时转封装、全网防盗链、内容版权保护、P2P等相关技术。
从2017年开始,阿里云CDN走上国际化之路,进行大规模海外节点的建设,以满足国内用户出海加速和海外用户加速的需求。与此同时,在经过了2018俄罗斯世界杯、春晚等多次重大活动的洗礼,CDN的团队规模、客户规模、技术实力一齐进阶,整个系统的自动化、智能化、精细化程度与服务能力全面加码,这支能战能胜的团队再次面对双11的时候,已然非常自信从容。
如今:程序员们一起“剁手”度过双11
有了十年的积累沉淀,文景觉得今年双11可以说是丰收的一年。
CDN团队主要支撑了电商和猫晚,整个过程可以说是如丝般顺滑,零故障零卡顿。同时,猫晚直播提供了超高清、高帧率的4K视频,通过频实时处理、转码向全网直播,窄带高清技术能够进一步提升画质,让网友们过足了眼瘾。
CDN为优酷2500万用户提供的视频分发,整个平台的QPS也突破历史峰值。整个服务过程中依赖全链路质量监控、智能自动化调度,值班人员只需要关注数据大盘就能掌控全局了。
在今年双11期间,文景所在的团队也为Lazada提供电商CDN加速保障,同时结合直播解决方案帮助Lazada把双11晚会推送到泰国、马来西亚,和东南亚人一起狂欢双11。
空见半玩笑半自豪地说:“以前奢望地喝喝茶、购购物过双11的梦想在今年终于实现了,2135亿里也有我们值班人员的一份贡献。”
(零点洪峰平稳渡过后,程序员们终于有心思买买买了)
一路走来,文景也曾疑惑过:为什么我们不能把活动的时间跨度拉长到3天,或者1周呢?那样我们或许就不必冒着如此大的风险,承受日常峰值是10倍以上的压力啊!然而当他走到现在才深刻的体会到,正是因为这集中爆发的、一次又一次的业务洪峰,在拉着技术往前狂奔,这才铸就了今天这支能战能胜的技术团队,技术应该感谢业务!
十年双11,就如同一部浩浩荡荡的阿里技术发展史。CDN就这样用它独有的起伏,添上了浓墨重彩的一笔。期待下一个十年,我们继续一路相随。
(空见第十次在双11护航现场:人生有几个十年)
原文链接