导读: 提到阿里云 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 团队诚招技术人才啦! 点此查看最新职位!
来源: http://www.jianshu.com/p/48798e9eec3e