中国领先的IT技术网站
|
|

Docker如何将错综复杂的Linux代码转成开发者的魔法

Docker在商业化应用中,不单单只是个开源工具。许多大公司的工程师已经开始探讨,如何使Docker适用于公司关键的工作流中。

作者:来源:开源中国 编译|2013-12-27 13:08

沙龙活动 | 去哪儿、陌陌、ThoughtWorks在自动化运维中的实践!10.28不见不散!


我们经常发现,一些新技术的出现总会吸引大量的目光。我们都应该知道接下来会发生什么,这些新技术都将成为大大小小公司的关键基础设施。

Hadoop, MongoDB, 和Node.js 已经走过了这条路子了(当然还有其他许多技术)那么接下来在2013年中,最有可能走上这条路子的技术应该就属Docker容器了。

Docker是基于一个21时间初出现的一个开源项目Linux容器(Linux container),Linux容器(Linux container)是将应用相互独立地运行在单独的服务器上。但是一个也叫Docker的公司(原来公司名称是DotCloud,后改名为 Docker)将Linux容器(Linux container)这项技术,优化得更容易实现而且更加有用,也就是现在的Docker容器。通过Docker,Linux容器(Linux container)发展成为一个优秀的工具,它可以帮助开发者可以轻松地将应用,从测试环境转移到生产环境中,然后从一个云端转移到另外一个云端,这些过程甚至都无需修改任何代码。

在某种程度上,Docker容器有些和虚拟机相似。但是 Docker 容器更加轻量化,而且需要更少的CPU和内存资源。此外,构建容器的代码对开发者都是可见的,该项目是在Apache开源项目许可之下。

在三月份Docker已经可以自由获得,许多创业者们已经将产品部署在Docker之上了。有时这被称为“Docker-as-a-Service” 其中包括 Orchard 和Copper.io’s StackDock

许多大公司也开始积极地拥抱Docker容器,在早期构建面向公众的基础架构即服务(IaaS)的云平台上,Google声称会加入对于操作系统软件的支持,包括Docker。Red Hat也开始着手加入Docker大军,在最新的RedHat企业版7的Beta版中加入对Docker的支持。

CenturyLink正在计划构建下一代云计算的平台,一个称为CTL-C的项目和Docker很有可能唱主角。高速增长的IaaS服务提供商DigitakOcean,开发了一个可以在他们的虚拟服务器Droplet中,启动Docker容器的应用。

VMware,一个虚拟机阵营最强大的公司,已经在自己的产品中提供了对于Docker的支持。其中包括vSphere,这是在物理服务器上运行的虚拟机。此外还包括 vCloud Hybrid Service ,VMware公司的公共云服务,该服务需要连接企业本地的数据中心。尽管该公司对于Docker,好像还没有发表正式声明,但是该公司的一位女发言人声称他们已经给VentureBeat发了封电子邮件。

最近的例子来自中国。中国搜索公司百度,他们声称百度的平台即服务 (PaaS)产品百度App Engine,已经是基于Docker了。根据上周发布的Docker文章中,百度解释了他们之所以选择Docker容器的原因是,百度需要支持多种编程语言和框架。此外还要希望实现一个比传统沙盒模型更低成本的开发部署服务。

这些小家伙能做些什么

Docker在商业化应用中,不单单只是个开源工具。许多大公司的工程师已经开始探讨,如何使Docker适用于公司关键的工作流中。

在eBay,,公司的速递服务,依靠Docker容器开发和测试,以及生产使用的环境即将到来。这是eBay的资深技术人员Ted Dziuba,在7月一次Docker活动讲话中提到的。

“一个容器,到处运行” ,他认为,只要开发者了解如何让容器彼此连接,那么,开发者的工作更加简单。

在RelateIQ,这是一个提供顾客人际关系的初创公司,他们已经可以在Docker容器中轻松部署丰富的开发环境了。 John Fiedler,公司的IT部门职员,在他最近发表在Docker博客帖子上的两篇博客中,指出公司将要在生产环境中使用Docker 。

俄国搜索公司 Yandex借助Docker容器,将他们的Paas服务中的应用孤立化,该服务名为Cocaine。Yandex使用Cocaine在满足内部需求的同时,还作为一个平台,来向用户提供自己的浏览器的服务。

Rackspace电子邮件服务的开发者,MailgunCloudFlare也已经公开讨论Docker。虽然开发者非常喜欢容器模型,但是你要明白的是,可是特别对于Docker的版本,还处于开发版本状态。公司已经开始谨慎地对待Docker了。

仅仅在几个月之内就发生这么多关于Docker的事情。开发Docker容器的公司,也公开了源码,好让开发者可以检验其正确性。

Docker容器开始是dotClode公司的内部技术,用了支持提供PaaS服务的。Docker的首席执行官Ben在VentureBeat的采访中说道。在dotCloud的工程师使用Linux容器的同时,也使用其他开源技术。比如称为cgroups和namespace的Linux内核特性。这样的容器不会太过于复杂。

“如果你使用LXC(Linux容器)那么会有一堆特别的语言需要学习”他说道。 “但是我们提供了一个标准的API(程序开发接口),这使得开发者更容易在容器内部署和打包应用。此外也方便系统管理员,可以在一台服务器上运行10个或100个甚至更多的容器。”

在我们采访谈话结束之后,Golub发了封电子邮件解释了他们对于该技术的一些需求,同时也介绍了dotCloud以外的广大用户的需求:

 在运行dotCloud的PaaS期间, 我们有大量的用户应用在使用我的设备。数量繁多的"stacks"运行在我们的共享宿主机器上。在某种程度上,这简直就是一个小版本的“地狱矩阵”,那儿你有大量的应用,各种语言,不同的框架。同时在大量不同的服务器之间,还需要高效,稳定和安全的协作。我们通过使用容器技术来管理这么一个环境,也就是这个技术最后发展成为Docker。

在我们运行dotCloud期间, 用户的需求是很清楚的,他们不仅仅只需要大量的stack环境,而且还有任意使用stack的能力。用户希望他们的应用不仅能运行在我们的设备上,而且可以在任何设备间轻松转移,不管设备是共有,还是私有,是虚拟,还是真实,都可以做到灵活转移并运行他们偏向的操作系统。此外,他们还希望我们能够整合他们选择的相关技术,比如:Chef, Puppet, Salt, OpenStack 等等。据我所知没有任何公司可以提供如此包罗万象的解决方案,但是,我们可以提供一个能够满足上述需求的环境。这就是Docker的源起。

现在Docker已经是 “无法想象的成功” Golub描述道。难怪在十月份,公司会改变名称,用Docker替代原来的公司名dotCloud。

“我觉得我们偶然遇到了一些奇妙的东西,它们可以让开发者,系统管理员,CIO以及在痛苦"地狱"中的每个人都变得更加轻松 ” Golub解释道.

该公司不会只提供开源技术,它们仍然提供PaaS服务。但是明年,它们会通过新的途径,获取Docker容器的利润。

“一般来说,容器一处构建,到处运行。因此你需要一个中心服务器来承载Docker容器,首先将容器上传到中心服务器,然后需要该容器的就会下载到本地” Golub说道。托管服务可以担此重任,应该最先考虑。管理工具可以帮助管理员跟踪容器运行的地点,创建者是谁,以及当前性能如何。

公司也希望通过提供专业的服务来带来利润,比如为Docker容器使用者提供技术支持,然后收取一定服务费用。也可以通过与其他公司合作,这些公司使用Docker容器来销售自身服务,这也是一种盈利手段。Golud说,不管容器的突破性进展,能够带来多少的现金流,稍微停下一会,回顾自己的努力是非常值得的,特别是承认这一年来公司如此大规模地贡献应用开发的努力。

VentureBeat正在制作一个排名报道的top 'arms merchants' of the cloud。看一下我们最初的建议和完成我们的调查来帮助我们建立一个有效的排名。在下个月,我们会发表该官方排名。对于填写调查的朋友,我们会送您一次免费的扩展报道机会。

英文原文:How Docker turned intricate Linux code into developer pixie dust

译文链接:http://www.oschina.net/translate/how-docker-turned-intricate-linux-code-into-developer-pixie-dust

【编辑推荐】

  1. Linux编程女神计划招募新的内核级MM实习生
  2. WildFly JBoss Developer Studio和Docker开发应用
  3. Docker的搭建Gitlab CI 全过程详解
  4. Docker 和一个正常的虚拟机有何区别?
  5. Docker—Git部署
【责任编辑:小林 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Cisco网络技术教程(第2版)

本书作为思科认证体系中的入门级教材,主要讲述了网络的基本知识和思科设备的基本命令,以及路由、交换等深层次网络知识的入门知识,其体系...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Python最火的编程语言