导读:提到阿里云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年左右的时间,当你成为这个行业的专家,去任何公司都会发挥很大的价值。第三,要不断学习,计算机行业突飞猛进,对于技术人最大的挑战就是不能中止,要不停去接触新的东西。每一年的业务都是两三倍的增加,你会发现你原来的技能已经跟不上业务增加的步伐,在互联网这么快速发展的环境和阿里发展这么迅速的公司,不学习就会被淘汰,绝对不能固步自封。