Google拥抱Docker:把互联网变成一个巨大的计算机

001

相对于软件、硬件在本地设备中的分裂,云计算的一大特性就是将服务构建在云上,供多种设备同时无缝调用。但事实上,云服务在发展的过程中还没能实现共融共通的理想——比如,各家的云服务是相对割裂的,开发者基于Google云服务构建的软件拿到亚马逊的AWS上也许就不能用了;在任务执行层面,为防止互相干扰,云服务厂商在同一台服务器上执行多个任务时也会将它们隔离进行。很明显,这样的实际情况和云服务的初始理念相去甚远。

来自Wired的消息表明,Google作为一家热情拥抱“云”的互联网公司,正在着手解决云服务端存在的割裂问题。在Google看来,软件被开发完成后应该可以运行在任何云服务上。为了达成这个目标,Google拥抱一项名为Docker的开源项目,它最初是由dotCloud开发的,如今Google在现有的云计算架构中添加对Docker的支持,其将于9号正式发布生产环境可用版本1.0。

对于用户来说,你可以将其想象成一个容器,借助于这项技术,软件可以快速在各类云服务和基础设施上转换。而且,当割裂问题被解决之后,软件也有望在瞬间获取大量的计算能力。

对于开发人员来说,在云计算服务的帮助下,他们已经可以在没有硬件和数据中心的情况下构建在线软件。但有了Docker之后,软件的开发工作将会变得更加容易。比如,开发者们在笔记本电脑上写完一个软件后,可以将它转移到云服务上运行而无需做出更改;无论是自己的数据中心还是Google或者亚马逊的云计算服务器,开发人员可以按自己的想法在任何基础设施之间转移自己的软件。这其中也就包含了Google对云服务的愿景:机器和基础设施是可以互相替代的,整个互联网就是一个巨大的计算机。

但是事实上,我们知道目前的情况并非如此。互联网世界分布着多种操作系统和和云服务,把软件从一个平台“复制”到另外一个平台并不是一件容易事。而且今天的在线服务基本上都是以开源的Linux操作系统作为基础,出于避免互相干涉的目的,它会将同一台服务器上的多个任务隔离开进行。不过好在经过数年的努力后,Google已经可以把自己的数据中心里成千上百的机器当成一台计算机来运行。在Google看来,整个云服务或者互联网未来都应该这样。

虽然Docker现在可以完成打包软件并将其规范化部署的任务,但想要达到Google的目标,仍然存在一些问题有待解决。比如,Docker要搭配一款小软件一起使用,但这款软件目前还有些问题,并不能完美适配所有的操作系统。此外,在开发人员接受度层面,Docker也还需要经过一段时间的检验。

所以,不难看出,Docker将是一项意义深远的项目。如果Google的愿景最终能够实现,那么软件开发人员仅仅开发软件即可,开发者们可以忽略基础设施的存在,这也是Google眼中云计算的进化方向。其实,在Google之外,亚马逊、Rackspace这样云服务提供商也在探索着类似的方向,所以云计算或将再一次改变软件的存在方式。

图片来自:Shutterstock

订阅更多文章