阿里云CDN技术掌舵人文景:相爱相杀一路狂奔的这十年
导读:提到阿里云CDN,不得不提技术掌舵人姚伟斌(文景),虽然他不是团队中最“老”的同学,但他却历经了淘宝业务发展最为飞速的几年,见证了从最初服务淘宝和集团内部的CDN,到如今国内服务客户最多的云CDN的每一步技术蜕变。在他看来是业务在推动着技术的发展,技术带动了人的成长,过程中不乏迷茫和低谷,但最终确实是一次次的业务洪峰把CDN技术推向了顶端。
文景,阿里云CDN技术掌舵人
缘起开源 怀着赤子之心加入阿里
读书时期的文景是个非常“爱折腾“的学生,经常去女生宿舍帮忙调通网络,也接了很多系统开发的私活项目。在研究生阶段接触到了嵌入式开发、无线传感网络、Linux,底层网络,向服务端开发转型。
当时比较火的是金融和通信专业,但是文景对开发就是如痴如醉的喜爱,虽然他的学习成绩不算拔尖,但是因为项目的实操历练经验丰富,他在毕业时候顺利的进入了一家互联网大厂。也就是在这份工作中,他接触到了很多服务端开源软件,如Nginx、Squid、Varnish、Lighthttpd等,也为后续进入阿里奠定了基础。始终认为开源对拓宽程序员的视野和提升代码水平非常重要,所以他开发了很多Nginx开源模块,因为不断的打磨,有一些项目在Github上有上千的星了。回忆当初,技术人员需要一定的价值认同,要么在业务上厉害,有上千万的用户,要么就是技术价值的认可,你做的东西不仅自己在用,成千上万的开发者也在用,甚至有国外的开发者会给你写感谢信,这是非常好的技术认可。
“后来当时的公司业务发展比较慢,遇到了发展瓶颈,而因为自己在开源领域的一些成就,被阿里看中。当时阿里属于业务早期,我心里怀疑这公司到底行不行,没想到面试官竟然是开源领域非常有号召力的“大神”,我当时立刻就决定加入阿里了。有时候程序员选择一份工作不是看业务多强大,而是身为程序员的梦想使然。“文景说。
来到阿里后,文景负责Tengine的研发,从一个人单干,逐渐发展到小团队,Tengine也成为集团95%以上业务的入口。在阿里节奏很快,业务每年的增长几倍甚至几十倍,这十年来有三千倍的增长,这过程中也深刻体会到人和公司的成长是同步的。Tengine业务复杂度非常高,支持整个阿里集团的业务。作为一个支撑性的部门,更需要自驱力,主动做好,主动邀请别人来使用,并且在期间主动解决问题让业务变得更好。
在阿里这么快节奏的工作环境之下,文景还坚持付出额外的时间来做开源,有一段时间Tengine曾跻身全球前十的WebServer,这也是团队成员至今都非常自豪的事情。
这十年,双11和这些程序员“相爱相杀”
文景很幸运,加入阿里的第一年他就赶上了双11。对于当时的淘宝技术人来说,双11是每年最最重要的事情。“对我们来说,最关键的就是在零点那一刻,系统要扛住,降级的措施越少越好“。文景回忆到,当时的技术原则:第一是要对业务有预估,几千万人同时并发的QPS是多少,系统能不能支持;第二,要做技术预案,所有依赖系统的容量是多少,一旦出了问题后的应对方案。”经过头几年双11考验后,系统逐渐具备了在极限的情况下也能正常运行的能力,在高性能、稳定方面有很大提升。到后来,我们技术能力和资源储备,已经远超当年秒杀的规模,当前的技术架构已经足以支撑,所有的技术人这才安心了。“
当然,技术的积淀并不是一蹴而就。在这种高强度的业务压力下,基本上所有的瓶颈都会被文景团队遇到,内存、CPU、IO、网络,来来回回做了很多轮软件优化和节点架构升级。为了应对峰值压力,团队也提前准备业务锁量、节点压测、降级预案、采购临时带宽等多种措施。在我们的监控和数据还不完善的那个年代,双11就靠每个人打开多个终端,盯着一批节点,一旦发现机器负载过高,立马进行人工干预。
转眼来到了2012年,文景认为这一年对CDN非常关键:“第一,我们决定不再采用外部的商用CDN,因为我们发现淘宝的流量,商用CDN是不足以支撑的。原因是淘宝是中国第一个图片这么多的网站,当时的SSD机器还没有这么流行,大部分的CDN厂商还在用SATA的机器,遇到数据量激增的时候,它的IOPS跑不起来,节点立刻会挂掉。第二,当大部分CDN厂商都在用千兆机器,淘宝CDN已经在用万兆机器,我们是中国第一个使用全SSD机器的厂商,并且完成了40G能力的节点上线。当时的技术架构是非常领先的。”
随后的几年,随着CDN能力的增强,双11扛住了数十倍的业务峰值流量,而且很多业务已经开始使用CDN,比如秒杀、红包、详情页等。后来CDN不仅支持集团内部双11,也开始服务外部客户。那几年的发展可以用一路狂奔来形容,每年都有新的业务产生,比如HTTPS、直播、短视频等,文景带领着团队不仅要做产品商业化、要贴身服务客户,还要去快速适应并调整面向新业务的技术方案、优化用户体验、技术攻坚、节点建设,同时也要对集团和客户的双11做全链路的保障方案,双11每年带宽增速在50%-100%,文景的脚步从未停歇。
跌倒了,爬起来继续上路狂奔
这一路,文景经历过高峰,当然也有跌落低谷,他认为2015年对团队来说意义非凡,因为那一年他们险些背了3.25。当时淘宝上了全站HTTPS,而由于前期压测、对新业务的评估没有做到位,全站HTTPS带来的计算开销导致CPU、内存都开始成为瓶颈。“当双11开始后,别人都在为数据再创新高而欢呼,我们团队的工程师却眼睁睁的看着线上一些节点内存被打爆,不停重启,当时我在客户现场驻场,真的连死的心都有了。”文景回忆到。
当时的CDN团队已经到了阿里云,经常全中国到处跑,深入客户现场,贴身服务,整个团队的工作重心不再仅仅是为双11做方案和保障。“我们从纯碎的技术人,变成了需要有商业思维的架构师,用CDN这个产品帮助客户去解决问题。也正是因为如此,这次的经历给我们敲响了警钟,后面每当新业务诞生的时候,我们都做足了充分的预案,坚决避免再次重现,更绝不容许这种情况出现在客户身上。”
在此之前,文景带领的CDN团队已经进入阿里云,完成了从“甲方”到“乙方”的转型。“我们还是很偏技术思维的,我们认为只要把自己这块的技术做好做透,一切就顺理成章了。最开始我们在Tengine团队才不到10个人,是纯技术团队,负责软件开发。在转做CDN后,我们要去owner整个系统,考虑的东西更多,系统稳定性是第一优先级。如今,到了阿里云,我们需要吃透业务,所有技术人员都要去跑客户,去了解客户的需求,研究如何更好的服务他。这对我们来说其实是一个角色的转变,技术与商业结合的思维转变。”文景说到。
转型所带来的彷徨并不是所有人都能顺利度过,一度有很多技术人员抱怨业务做太多了,甚至有人离开。文景做为团队负责人,责无旁贷要帮助大家去适应。他当时鼓励工程师们“荤素搭配”自己的工作,要肩负起偏业务性的工作,当然也留出精力去做系统性的纯粹开发,这对工程师的发展是非常有好处的。他也不断地用自己的亲身经历告诉大家,业务,能让技术人员更好地了解产品的设计、提升去场景的理解。阿里全员一直崇尚着“客户第一”,在文景看来,客户第一就是真正地了解客户的需求,再把它变成产品,解决更多客户的问题,而不是你觉得这个产品牛,硬塞给客户去用。总之,技术牛不牛,要拿商业来证明。
到如今,文景所在的阿里云CDN团队已经拥有遍布全球的2500+节点和120T带宽能力储备,同时凭借全球服务能力和产品技术优势被评为全球级(Global)服务商,即面向全球五大洲提供围绕密集商业和消费城市的接入服务。
给年轻技术人一些建议
最后,对于想了解或者想踏入CDN这一领域的技术人员,文景也给出了一些建议。
了解行业
CDN这个产品的历史,比云计算还要久,因为互联网的发展而应运而生的产品。现在,这行业是充分竞争的行业,它已经有成熟的解决方案和开源的软件,最终决定性产品的核心竞争力就是:稳定性、成本和质量,厂商们都在寻求更好地突破。阿里云CDN通过历年双11沉淀下来的技术和快速响应能力,已经在四年时间内,从零做到了中国最大的云CDN。未来的CDN行业,会更注重客户价值,面对客户关于低成本、服务质量、安全性、高清视频等不同价值需求点,需要不同场景和技术来满足。
研究开源,专注,不断学习
首先,文景认为去选择优秀的开源软件是一种好的方式,Github是程序员非常好的名片,开源软件写的好的人,代码、沟通能力、落地能力都不会差。第二,一定要专注,决定了方向后,至少要沉淀3年左右的时间,当你成为这个行业的专家,去任何公司都会发挥很大的价值。第三,要不断学习,计算机行业日新月异,对于技术人最大的挑战就是不能停止,要不停去接触新的东西。每年的业务都是两三倍的增长,你会发现你原来的技能已经跟不上业务增长的步伐,在互联网这么快速发展的环境和阿里发展这么迅速的公司,不学习就会被淘汰,绝对不能固步自封。
最后,欢迎加入我们! 阿里云CDN团队诚招技术人才啦!点此查看最新职位!
本文作者:山哥在这里
本文为云栖社区原创内容,未经允许不得转载。