热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我们知道CDN护航了双11十年,却不知道背后有那么多故事

2019独角兽企业重金招聘Python工程师标准摘要:一路走来,文景也曾疑惑过:为什么我们不能把活动的时间跨度拉长到3天࿰

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

摘要: 一路走来,文景也曾疑惑过:为什么我们不能把活动的时间跨度拉长到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护航现场:人生有几个十年)

原文链接


转:https://my.oschina.net/u/1464083/blog/2877155



推荐阅读
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
author-avatar
机加工N_918
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有