热门标签 | 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



推荐阅读
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 全面解析运维监控:白盒与黑盒监控及四大黄金指标
    本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 本文主要从TLS1.3的优势、部署和时间发展线介绍了这上篇文章回顾:浅谈DHCP协议 ... [详细]
  • 前言微服务架构(MicroserviceArchitecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务 ... [详细]
  • 作者:xinxin随着GIS行业的发展,越来越大的数据应用于移动端,但相比PC端,同一份大小的数据在移动端显示要比在PC端慢 ... [详细]
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社区 版权所有