2016年9月22日-23日,由CSDN重磅打造的SDCC 2016大数据技术&架构实战峰会(杭州站)将在杭州举行。大会前夕,网易云计算架构师尧飘海接受了CSDN专访,谈及了对架构的理解、Docker的使用经验和微服务的案例,以及技术人提升之道等。
嘉宾介绍:
尧飘海,网易云计算架构师,负责容器云计算平台建设,致力于自动化平台的架构和实践。在互联网产品开发和规范化的系统建设有较多的经验,对分布式系统设计开发、性能调优,系统架构有一定的经验和理解,热爱开源和技术交流。
【正文】
CSDN:请先和大家介绍下您和目前所从事的工作以及关注哪些技术领域?
尧飘海:大家好,我从09年毕业后加入网易一直到至今,中间经历过不同的项目的不同职责的转变,从博客、社交、游戏、开源项目、IM到云计算及容器相关的领域,目前主要关注云计算相关知识体系的学习,包括架构、虚拟化、容器及编排等相关的技术领域。
CSDN:作为一名架构师,能否谈下您对架构的理解?
尧飘海:好的架构需要在理解业务,同时又能预见业务的变化的过程中进行不断的规划设计和实践过程。业务本身不在变化和发展中,好的架构能保证至少未来1年内变化的合理性,如果架构经常在很短的时间内进行变化,对人员的学习成本也会提高,同时对相关领域的内容也可能未得到验证,对团队知识的积累过程也有一定影响,因此需要对业务的熟悉的基础上进行抽象,把通用的框架知识沉淀下来,上层的业务容许合理的进行变化和试错,但也要经过大家的认可。软件的架构和人及组织的架构形式非常相似,即需要在现有的业务上进行发展,也需要进行下一班人员的培养和规划。
CSDN:您觉得作为一名云计算架构师,和互联网公司的后端、前端等架构不同,需要具备哪些能力?
尧飘海:由于云计算的业务及要求的相关的知识点非常多,就架构师职位的通用的抽象部分关键能力,我个人认为并没有非常大的不同,即有一定的通用性也有对相关知识点的要求。
同时云计算的范围非常广,就在网易来说,云计算整体都是自主研发和建设的,从机房的规划建设到实施,从IaaS的搭建到PaaS服务(包括安全),甚至部分SaaS的业务都会涉及到,因此从硬件到软件,从底层到上层都有可能涉及到,对这样的一套复杂的系统进行建设,是一个极高复杂度的工程,对架构师具有非常大的锻炼和考验,也不是单个人能完成,需要团队的努力。
CSDN:可否介绍下网易蜂巢所用到的关键技术以及其平台架构是怎样的?
尧飘海:组成网易蜂巢的技术可分为4大块:容器技术、编排技术、PaaS技术、IaaS技术四层。
容器技术基于当前流行的开源项目Docker,容器是一个完整的软件运行环境,打包了操作系统、库、运行时环境、业务代码,这使得容器作为一个整体一旦构建完成后可随处运行,在网易蜂巢中交付给用户的最小单位就是容器。
容器是蜂巢提供的计算资源最小单位,实现一个可水平扩展的产品服务端架构,则需要不同的容器组合起来,才能组成美丽的花环,这个功能在网易蜂巢中称之为“服务”,服务的运维如发布、回滚、扩容、缩容以及成员管理需要引入编排服务来实现,编排技术目前使用的Kubernetes+自定义插件的方式。
PaaS服务的技术,主要包括数据库服务、缓存服务、对象存储服务、搜索服务、负载均衡服务、DDoS防御服务等通用服务的封装,减少项目的维护成本。
IaaS服务的技术基础是虚拟化技术,包括计算、网络、存储的虚拟化技术,目前是基于OpenStack开发的。
CSDN:以Docker为代表的容器技术在全世界范围内迅速发展,容器云也逐渐被广大开发者所熟知。据悉,网易蜂巢作为容器云服务商开始提供完善的DevOps工具链支持自助运维,帮助开发者提升研发效率。那么网易蜂巢是如何平衡开发、运维以及质量保障部门之间的沟通协作的呢?
尧飘海:最早在公司内部我带领的团队负责运维发布平台的建设和实施,主机规模在万台服务器以上,这个系统使用的人员刚好包括开发、运维以及质量保障部门三种角色,每种角色主要承担的职责不会有太多的变化,但是整体的运维效率,沟通成本会降低很多,每个角色都能相应的担当共用的部分的工作,比如环境的搭建和服务的发布,这些都只需要通过自动化的方式就可以,由于这些信息和配置都是标准或透明化,简单明了,大大的减少沟通的成本,从工程化的建设上来看是比较好的实践,内部系统的每月的发布数到达10万次以上。
CSDN:你如何看待容器技术的发展,在Docker是使用方面有哪些可以分享的经验?
尧飘海:容器技术很早就存在,最近几年才各公司才开始大规模的流行,尤其是以Docker作为容器技术的倡导者在其中所担当的影响力和生态的建设起到很大的推动作用。从2013年,网易内部开始在千万级别的系统中开始使用Docker技术一直运行到现在,经历了不同的版本的不同问题最才都通过自己和社区的努力解决掉,由于早期的Docker使用的数量越来越多,如何监控和管理这些数量的容器是我们遇到的问题,当时各方面的生态不是很成熟,这个系统由于当时技术及业务选型,因此最早也大部分把容器当成更轻理级别的虚拟机来使用,因此有状态的容器的优雅解决是最早遇到问题之一,到后来编排相关的技术慢慢的发展起来,再到网络平坦化,安全隔离等相关问题,而网络,安全,存储等相关的技术需要和底层的IaaS的充分结合起来才能更好的发挥容器技术的优势。
CSDN:如何看待微服务的发展,你们内部微服务改造这块有相关的案例吗?
尧飘海:微服务的形态很早在国内外公司中进行实践,Martin Fowler大师在12年对微服务的概念进行了统一并充分归纳和总结了其相关的技术特点和优势,然后伴随着容器技术发展越来越火起来,主要是老爷子大师为大家指引了微服务的技术方向,但是没有给出微服务的最佳实践。容器技术在DevOps上的流程上的担当的角色起到了不可变基础设施的交付,好的微服务实践需要完善的基础服务和成熟DevOps工具的的支撑才能起到良性作用,否则不经过评估各种资源的情况就轻易实施微服务架构反而会适得其反。网易内部也很早就开始在这方面进行改造:包括云音乐,考拉,云课堂等产品团队,大部分项目是逐步迭代的,即是整体架构和微服务架构的组合,如果在不同的时期采用不加的架构也是架构师的职责所在,需要好好的设计和把控。网易蜂巢目前就是在基于场景化的服务下提供的专注DevOps工具链和微服务架构支撑的云平台建设,期待和大家一起来共建微服务生态。
CSDN:您作为从业多年的技术人员,可否分享下您的学习新知识或技能的方法?
尧飘海:计算机领域的知识常常变化,云计算方面也是如此,但是基础相关的内容变化点不是很大,因此打好基础肯定是第一步的,然后再根据自身的兴趣点去拓展,包括纵向与横向的发展选择。总之,在这个信息万变的时代,学习新知识或技能需要通过开阔自己眼界,和不同的交流,最后如果变成自己的财富还是只能靠自己来完成,如何系统的把握自己要发展方向和选择也是我常常在思考的问题。
CSDN:您也是开源的爱好者,能够分享您的开源经历和理念?
**尧飘海:**2011年左右我们的团队开发和开源了基于NodeJs的Pomelo游戏框架,这个开源项目目前也还是很火,在国内至今应该还是排名靠前的。它是基于我们在开发商业的游戏软件过程中的总结和思考,很多的团队如果在开始开发实时游戏项目的时候会遇到各种各样的问题,因此我们总结了我们的最挂实践开源出来服务于大家,后来这个开源项目被应用到不同的项目之中,包括消息推送,聊天应用,云计算服务应用。好的开源需要很多的工作铺垫和投入,之前通过项目和演讲和不同的人沟通交流,总是能带来新的想法和碰撞,非常有意思。
CSDN:在本次SDCC 2016(杭州)架构峰会上,您分享的话题是?
**尧飘海:**SDCC杭州架构峰会分享主题是网易蜂巢云计算平台的优化实战,主要是介绍网易蜂巢架构发展过程中碰到的问题及怎么如何使用互用网应用的思维去架构去实现云平台的建设,同时相信会有很多有经验的同行,非常期待能和大家一起交流。