本文转自:https://news.cnblogs.com/n/558954/
尧飘海:网易蜂巢首席架构师,负责容器云计算平台建设。曾负责过网易博客、游戏、易信,开源项目 Pomelo 研发工作,热爱开源和技术交流。
到 2016 年,云计算发展已有十个年头。
十年前,亚马逊点燃了一场颠覆传统软件服务业的云计算革命。而后的十年间,中外互联网巨头倾巢出动,大大小小的新兴云服务商合纵连横,传统 IT 系、电信运营商系也迅速向云计算市场转型。等到 2015 年底网易蜂巢正式推出时,国内云服务市场已是一副比肩继踵、人头攒动的景象。
面对竞争,网易蜂巢选择了一个新的起点,基于 Kubernetes 和 Docker 技术打造了容器云,用不到一年的时间,凭借其开发效率高、迭代快、持续集成等优势,在云服务红海中杀出一条“血路”。
近日,开源中国有幸采访了网易蜂巢的首席架构师尧飘海,听他分享容器云对整个云服务现状带来的变化,以及从普通程序员到架构师的成长之路。
基于 Kubernetes + Docker 是“云时代”对效率的极致追求
常言道,“唯快不破”是互联网业务崛起的法门,这就要求产品能够跟上业务爆发的节奏,故而对于支持互联网业务的云计算平台而言,保证产品快速迭代落地和永远在线是其基本特性之一。
但事实上,传统云计算的开发和线上环境不一致,导致开发和运维之间的矛盾,并直接放慢了产品的迭代效率。在这样的行业大背景下,容器云服务于 2013 年兴起,是以容器为资源分割和调度的基本单位,封装整个软件运行时环境,为开发者和系统管理员提供用于构建、发布和运行的分布式应用平台。
在被问及 Docker 对整个云环境的变化时,尧飘海认为,从传统的私有云,到公有云、再到容器化的云,容器对于云计算的改变主要表现在效率的提升上,可以说容器云体现了“云时代”对效率的极致追求。
Docker 出现之前,大多是静态环境的配置管理, 而 Docker 是一个完整的软件运行环境,打包了操作系统、库、运行时环境、业务代码,这使得容器作为一个整体一旦构建完成后可随处运行,这意味着运行环境也可以做到版本化,开发效率、迭代速度和扩展性得到了很大的提高。
当然,容器只能保证环境的一致性,跨云部署是其基本的能力,随着业务和架构的发展,更多的工作在于如何保证很好地协调大规模容器来满足业务的架构需求,也就是容器的编排服务,这是真正考验和体现应用弹性、DevOps 能力的关键所在,也是提高生产效率的关键依赖路径。而 Google 基于自身生产经验和社区实践打造的 Kubernetes,针对容器编排服务做了很好的框架性设计,能够与 Docker 组成先进的容器云平台,实现对极致效率的承诺。
云端之战的一匹黑马
也许正是因为解决了传统云计算效率上存在的问题,以 Docker、Kubernetes 为代表的容器技术很快形成一股新的热浪,并在 IaaS、PaaS、SaaS 之外衍生出的新型云服务类型 CaaS (Container as a Service),席卷了整个云计算行业。包括亚马逊、红帽、IBM 和 VMware 在内的云计算巨头无不加入了容器的行列,也掀开了容器云服务的序幕。
与之同时,国内也出现了大批容器云服务商。作为网易云云计算基础服务能力的对外输出,网易蜂巢另辟蹊径,设计了很多差异化的功能。以一匹“黑马”的姿态,杀出重围。
据尧飘海介绍,网易蜂巢提出了自助运维的概念,通过快速故障诊断和弹性伸缩等服务,来提高开发效率。
举个例子来说, 在容器云的开发环境下,开发人员可以通过编写程序控制镜像构建,开发、测试及运行都基于相同的 Docker 容器镜像,从而不再局限于 Web 应用类程序,也避免了环境不一致带来的各种折腾,开发效率可以带来极大的提高。
和亚马逊、阿里云这些云服务巨头一样,网易蜂巢容器云平台并非一开始就对外输出,而是先通过了很长时间的内部考验。
据尧飘海回忆,网易正式推出基于 Node.js 架构的 Pomelo 之前,2013 年 12 月份的时候,就开始将一些容器技术运用在公司内部的一个千万级消息推送的平台。而到 2014 年 12 月份的时候,网易 95% 以上的互联网产品都已经运行在容器云上。
尧飘海认为,网易是网易蜂巢的第一个客户。在内部两年多的生产实践中走过的弯路是一笔丰富的宝藏,“规避掉我们曾经踩过的那些坑,在试错的过程后提供一个好的产品”。
从程序员到架构师:交流和分享最能让技术人进步
一路走来,从程序员到架构师,尧飘海感受着两个方面的转变:当程序员的时候,就是两耳不闻窗外事地完成任务,成为架构师后,要开始关注产品对于用户的价值;当程序员会因为写出完美的代码而产生满足感,成为架构师,就会因为产品为用户解决问题而带来满足感。
这个转变过程中,让他感受最深、帮助最大的就是交流和分享,无论是与客户,还是和同行。这种交流和分享是最能让技术人进步的。
在“分享”这件事情上,网易的技术团队已明确为其工作的部分职责,内部还设定了三个阶段:第一阶段是每周的内部分享、团队分享;第二个阶段是公司层面,有些人会成为讲师,在整个公司范围为大家做分享;第三个是参加外部会议。他鼓励团队成员循序渐进的分享,从第一阶段到第三阶段。
尧飘海认为,“交流和分享对于技术人员的改变和提升是很大的,它提供了一种‘社交属性’,技术人员将会直接面对用户、友商或是类似开源中国这样的平台。在我们自己的技术推广出去的同时,得到多维度的信息和感受,吸收一些好的想法和建议。对每一个讲师来说,对外分享的过程对于自身和团队都会产生巨大的积极影响,或是思路更加清晰,或是信心更加充沛。同时和用户交流过后,团队的眼界也会得到提升。”
开源是更“高级”的技术分享
开源的本质其实是分享,而且对于技术人而言,开源的益处更大。
尧飘海告诉我们,网易对于开源的支持,主要来自两个层面:第一种就是开源网易自主创新的项目、解决方案,类似 2013 年 Pomelo 这个开源项目,迄今为止都还有很多人在运用。
此外,因为网易本身很多的内容都是基于开源软件去构建的,所以逐步的内部组建了开源小组,在 Github 上和 OSChina 上都有贡献和维护,持续开源一些修改或是补丁。
“在开源过程中,我们几乎拿出完全透明的技术原理和实现方案成果,在社区或者平台进行交流,总是能带来新的想法和碰撞,非常有意思” ,尧飘海总结道。