4月21至23日,由InfoQ主办的顶级技术盛会QCon全球软件开发大会在北京开幕,本届大会吸引了100余位国内外技术专家参加分享,包括亚马逊、惠普、阿里巴巴、华为等国内外知名科技企业。其中在容器云领域脱颖而出的网易蜂巢也受到邀请,网易杭州研究院云计算平台产品部总监陈谔从技术角度分享了构建高效开发容器云平台的实践经验。
基于在云计算领域的深厚积淀,网易在2015年末正式上线了蜂巢容器云平台,助力开发者进行高效的开发设计。目前已经服务于易信、网易云音乐、网易云课堂等网易优秀的互联网产品,并积累了顺丰、中信信托、浙大网新等行业知名的首批用户。诚然,网易蜂巢在短时间内便赢得不少开发者的青睐,和蜂巢容器云专业优质的服务不无关系,陈谔在QCon全球软件开发大会上分享了网易蜂巢打造专业容器云平台的一些挑战。
Docker容器技术崛起,改变了软件的开发方式
自2013年以来,Docker镜像的下载量已经突破12亿次,使用容器进行应用开发和部署已然成为了最流行的方式。最新的研究显示,在使用Docker的企业中,超过40%已经运用在生产环境中,而在未来这个数目将会急剧上升。
相比于传统的软件开发方式,容器化技术拥有一次开发、多次部署的能力,将开发、运维和IT作为一个整体,使开发者更多地考虑如何为终端用户带来更大的利益,而不用被昂贵耗时的基础架构管理、扩展和实施所约束。简单来说,Docker容器技术解决了困扰研发团队的开发、测试、生产环境一致性的问题,使得联系研发流程的核心从代码变为打包了运行环境的容器镜像,通过消除中间的运维配置部署过程,为开发者驱动研发流程提供了有力的支持,并通过实施开发者驱动能够有效降低研发过程的沟通协作成本,加速产品迭代。为此,陈谔对此深有感触:“对于Docker的技术带来的改变,我们感觉就是把开发过程的复杂性降低了。以前要开发、运维、测试三方的协作,现在运维介入得更早,它帮助我们定义镜像,定义运行的环境,接下来都是由开发的同事去驱动这件事情。”
此外,容器即服务的兴起将促进以运维为中心的应用发布,改善开发和运维、敏捷和控制之间的平衡,从而以运维为导向的开发方式取代现有的开发模型。
网易蜂巢如何打造高效容器云平台?
作为深耕云计算多年的技术专家,陈谔目前负责网易云计算平台的建设,并完成了公司软件基础设施的云化改造,对分布式系统设计开发、云计算平台系统架构有一定的经验和理解。在陈谔看来:“容器云作为一种新的云计算平台,一个重大的挑战便是确定产品形态并将产品落地。”目前国内大大小小的容器云平台不下十家,如何打造高效专业的容器云服务,各家似乎有着不同的理解,为此陈谔在QCon全球软件大会上分享了网易蜂巢的经验。
首先,基于开发者视角关注开发效率。对于开发者来说,选择容器云服务的初衷就是为了提升开发效率,网易蜂巢容器云为了让开发者能够掌控运维过程从而驱动研发流程,将平台的使用者应定位为开发者(Dev)角色,最大程度的提升开发者的研发效率。陈谔介绍说:“容器云产品不应对用户的技术解决方案、架构有过度的倾入性,应更多考虑基础设施向容器云的平滑迁移,让用户感受到容器云带来的更好的云计算体验。”联想的此前网易云计算从用户视角将云计算重新定了云服务的划分方式,将云计算产品分为研发云、运作云和运营云,赢得了不错的用户口碑。陈谔从产品形态上将蜂巢总结为“基于开发者视角,关注研发效率,做一朵更好的云”,网易蜂巢也是国内第一个从开发者视角研发的专业容器云平台。
其次,解决Docker容器的技术栈成熟度问题。Docker作为一个诞生仅有三年时间的项目,虽然整体架构越来越完善,在模块化、标准化方面获得了长足的进步,但若要在容器云这样多租户的生产环境中采用Docker,无论是网络、存储、安全性方面都存在着不足。陈谔介绍说,为了解决这些问题,网易蜂巢从两个方面来提升开发效率。一是消除系统的复杂性,蜂巢采用了基于Openstack Neutron的VxLAN网络,每个租户都拥有独立私有的二层网络,从而解决容器间互连带来的运维复杂度增加、不利于故障排除等问题,并对云数据库和基础设施进行了优化。二是采用DevOps战略实现了以容器作为资源的交付单位,解决了kubernetes这一容器编排解决方案在水平扩展和多租户支持方面的不足,并利用先进的诊断工具解决了以OpenStack作为管理底层基础设施所存在的性能、稳定性等方面的问题。
另外,陈谔还提到了容器性能管理的问题,“原有的一些平台提供的往往是资源的监控,并不利于性能问题的预判和诊断,比如说短暂的性能波动在常规的方式下很容易被屏蔽掉,在监控图表中也很难发现问题所在。网易蜂巢的理念是服务要细化到API级别,使性能管理能够定位到精确的故障点。比如在数据库、调用链等基础服务上。”
基于以上三点,网易蜂巢不仅发挥了容器的优势,并通过丰富的工具集成,让应用交付更快捷、运维更简单,成为真正有助于提升开发效率的容器云平台。“网易在实施云计算的过程中一直在思考的问题是能否提升产品的开发效率,在保证质量的前提下尽可能缩短产品的开发迭代周期,由此我们在Docker容器技术的基础上研发了蜂巢容器云,以帮助开发者降低运维成本,加速开发迭代。”陈谔总结道。