新一年,Docker技术路线图中包含了Microsoft技术支持、开源编辑工具以及更新后的容器产品。
貌似Docker前两年的发展步伐并没有足够快,因此,在2015年应用容器供应商开始准备发布一款针对Linux顾客的开源编辑工具以及Microsoft Azure和Hyper-V的测试版编辑工具。Docker公司首席执行官Ben Golub说,该工具的发布取得了很不错的成果。他说:“我们从2013年就开始着手,截止2014年共有7000万的下载量,从一个很棒的产品逐渐发展成为一个大型的生态系统,呈旋风式增长。”在本次SearchSOA访问中,他向我们概述了Docker公司的技术路线。
作为一个分布式应用的开放平台,Docker可以为开发人员和系统管理员提供哪些核心价值?
Ben Golub说:Docker不仅仅是描述了应用程序,而且还描述了其对所需运行软件的所有依赖关系。如果你描述了容器内所需运行软件的所有细节,并且将该容器转移到另外一个新服务器中,那么,你不必担忧其是否适配于该服务器、依赖关系是否相配,所有问题都会得到解决。
今年Docker的技术发展路线包含哪些内容?
Golub说:我们是开源应用,因此,路线图中实际上几乎包含了所有技术。截止去年六月份,客户可以在我们这免费获得任何应用程序,将该应用程序放到Docker容器中,就可以在Linux服务器中运行该应用程序(任何Linux应用程序都可以在Linux服务器上运行)。
去年年末,我们宣布了与Microsoft建立合作伙伴关系。我们与Microsoft合作的目的是要让客户可以在Windows和Docker界面下都可以使用Linux和Docker。这将是一个庞大的实施过程。
据我所知,可扩展性也在Docker路线图中。
Golub说:我们打算从以前的在一个服务器的容器中开发应用程序改变为可以跨多个不同服务器在包含不同组件的容器中开发应用程序。事到如今,我们必须确保这些容器能与其他部分很好地配合,安全性、存储功能良好,同时网络也要保持良好的状态。
今年的Docker路线图中为什么提供管理和编程解决方案?
Golub说:我们想要帮助企业扩大Docker容器的容量。他们从最初的由几十名开发人员在几十个服务器上开发几十个容器,发展到如今,由几千名开发人员在几千个服务器上开发成千上万的容器。
通过Docker开放资源,编程过程发生了许多明显的变化。其中包括集群,例如Docker Swarm的集群功能。Swarm向Docker容器的调度和执行工作中提供本地集群。同样,Docker Compose 帮助开发人员将不同的配件组合成一种应用程序,例如,当他们正在准备构建设备让其可以在Docker上运行时,其中包括网络和存储模块。
你的开放API如何改进Docker向管理解决方案发展?
Golub:我们正在采取措施来定义更高水平的API,并邀请大量的来自于社区的人员,不仅帮助我们定义API,还构建他们自己的类型的插件。这样,如果你喜欢谷歌式的编排,你可以使用Kubernetes,如你喜欢Twitter式的,你可以使用Mesos等等。在网络和存储方法也一样。从商业的角度,我们采用了非常流行的Docker Hub服务,它是一个托管服务,可用于寻找、发布、消费不同类型的容器,使之变得更加商业可用;这样,你就会了解谁发布了什么,以及它的来源;给你希望运行的容器设置规则;如你认为哪个容器是无用的,或者有安全缺陷之类的问题,你就摧毁它。
Docker容器在Linux、Apache、MySQL和PHP的LAMP堆中如何发挥作用?
Golub说:比如说,我正在筹建一款LAMP应用程序,因此,就会需要L、A、M和P,无论我正在做哪一个模块。
有了Docker,我就能够分享每一个服务器上的L,或者称其为Linux。但是,如果已经有三个LAMP应用程序在同一个服务器中运行的话,那么,我就不需要A、M和P了。我仅仅是把这三个模块应用到其他应用程序中即可。
Docker所做的事就是为开发人员排忧艰难。开发人员不用再担心每个服务器的样子、服务器的配置、运行的是哪一个版本的操作系统、是实际的操作系统还是虚拟操作系统、是属于亚马逊还是其他公司。他们只需要全身心地投入到应用程序中就行,这才是开发人员想要做的事情。
对于刚使用Docker容器和服务器的公司来说,您有什么意见及建议吗?
Golub说:最好首先只迈一小步。Docker的好处之一就是,一天之内,一名开发者通过使用Docker就可以完成任务,而无需企业的其他开发人员帮忙,或者也不需要几个月的时间去完成这个项目。开发人员一般也都会从简单的开始入手,从无状态的应用程序开始开发。起始于开发,经历开发-开发测试-开发测试-构建,然后我们就会考虑将其转移到产品中去。我认为,处理这件事正确的方法是,寻找一种演进的方法,从中获取价值,那么或多或少,事情就会有机地进行着,而并不是要做一个涉及到许多部门的大项目。这是一种反向思维。