变革早已始:对平台开发的一些思考

在 2012年的时候,我在豆瓣做 Douban App Engine ( a.k.a DAE)。那时候我遇到了一个问题,就是如何隔离 Engine 的 Runtime 和应用本身的 Runtime,如果不学 GAE 那样大规模 Mock Python 的话,无论怎么做隔离性上终究不会太完美。

变革早已始:对平台开发的一些思考

在 2013年春节过后,DAE 在豆瓣内部已经支撑起多数服务和应用,而我也因为职业规划准备离职去穿越亚洲,这时候一个叫 Docker 的虚拟化方案进入了我的视野。回想起 2012年我遇到的隔离性问题的,当时的我立刻被这个方案给吸引住了,即便在战火纷飞的阿富汗腹地,也靠着仅有的当地网络关注着这个项目的状态。

从我个人来看,随着业务的增长服务也会被逐步拆分,为了提高整体的服务器利用率和调度效率,平台自动化将会是一种比较好的选择。对应用耦合的,一般称为 PaaS,平台即服务,如果对硬件耦合的,一般称为 IaaS,基础设施即服务。如果纯粹靠 PaaS,隔离性上会比较让人担忧,如果是完全的 IaaS,过重的 overhead 会使得硬件利用率达不到预期以至于成本的失控。有些开源项目结合 IaaS 和 PaaS 去做自动化平台在我看来也不是一个很好的选择,毕竟公司千千万万,业务技术线也不能一概而论,二次开发也需要考虑平衡硬件和人力成本。所以我觉得一个好的平台应该做到严谨的隔离,无痛的扩展,简单的部署,可靠的支撑等几个方面,同时也不能损耗太多的性能,并且能易于上层的开发,降低公司成本。Docker 本身是个不错的基础技术,在隔离性和性能上取得了较好的平衡,相比之下 VM 虽然隔离很严谨,相对性能就损耗比较高了。并且 Docker 提供了一系列适合二次开发的 API,可以方便的低成本的做出一个适合公司本身自己技术栈的自动化平台,这对于很多发展型的公司而言那是极好的。

随着时间的推移,在容器方面我们也看到了很多后来者对于 Docker 的挑战,如 CoreOS 带来的 rocket,如有着更高隔离性的 Hyper 等。但在目前来说,我认为 Docker 的地位短时间来说很难被改变。一来大多数的公司主要以 Docker 作为基础组件构建对内的自动化平台,对更高层次的内核安全性需求没那么强烈,另外一方面基于 Docker API 的周边组件也趋于成熟,短期内其他竞品没那么完备的生态环境。随着 Docker 本身母公司的其他产品诸如 Docker Machine,Docker Swarm 等的成熟,以及业界第三方的产品如 Kubernetes 和 Mesos 等,Docker 在集群编排和调度领域的优势还会进一步扩大。

我依稀记得 2014年我来到芒果TV开始搞 Docker 相关自动化平台时的情景,虽然当时 Docker 在业内很火,但是实际上在公司内部使用的还是太少,太多公司只是用其做做实验性质的测试和体验。在 2015 年初始,新浪和腾讯两家的分享引爆了国内的容器圈,使用 Docker 作为其服务器集群调度和编排的公司如雨后春笋般冒了出来。同时 Docker 本身也在不断的进化,如 1.5 引入的 stats 接口,如 1.7 引入的日志模式,如 1.8 引入的 Volume,Docker 虽然不完美但已经足矣胜任生产环境下大规模使用。而未来即将到来的 libnetwork 等技术,也将会在 SDN 这块带来新的变革。

我不好说未来一定会怎样,是 Docker 胜出亦或是其他技术,但 Docker 所引发的这个趋势,将会在未来的一段日子里面,不断的影响着平台层面的开发人员。变革,早已开始。


本文作者:彭哲夫

来源:51CTO

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/185692

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。