编者按:本周对于开源应用引擎Docker来说是一个Big week,重磅新闻不断:2014年6月9号,Docker社区正式发布了Docker 1.0,商业公司Docker Inc.同时宣布提供企业级服务支持Docker的大规模商用;同一天,第一届Docker技术大会在San Francisco高调开幕,预定500人的会场有超过900多人报名,赞助商包括IBM、Redhat、Rackspace等IT巨头;6月10,谷歌宣布与Docker的全新整合方式,涉及的云服务包括Google App Engine和Google Compute Engine,国内各大技术媒体大规模转载相关新闻。中国社区之前发表过OpenStack对Docker支持的思路,本次分析下Docker 新发布的 云+端 开放平台战略。
Docker简介和快速发展
开源项目Docker于2013年3月启动,是由PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上,基于谷歌发布的开源编程语言 Go。Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到主流的 Linux 机器上。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone 的 app),性能开销很低,可以很容易地在机器和数据中心中运行。它出现的意义可以与集装箱的发明相比,集装箱将货运目标标准化,Docker 将应用程序标准化。Docker 诞生之前,程序员在服务器端部署应用程序的步骤如下:安装→配置→运行。与传统部署模式不同,运用 Docker,程序员在服务器端部署应用程序的步骤如下:复制→运行。
在短短一年多时间内,Docker已经发展为GitHub上的发展最快的开源组织之一,目前总共有200多万次下载, 460多个开发人员贡献了超过8000次代码提交,有14000多个利用Docker引擎打包的应用。Docker背后的商业公司也发展迅速:DotCloud公司2013年10月改名为Docker Inc,转型专注于Docker引擎和Docker生态系统;2014年1月获得1500万美元高额B轮融资,由著名的投资公司 Greylock Partners 领投,包括 Insight Venture Partners 参与以及原有投资者 Benchmark Capital 和 Trinity Ventures跟投,参与此轮投资的还有 Yahoo 的联合创始人杨致远(Jerry Yang)。Docker深受互联网巨头发PaaS创业公司青睐,国内的百度在大规模实践Docker,Google 的 Compute Engine 也支持 docker 在其之上运行,Redhat也积极地在RHEL中集成对Docker的支持。
Docker 1.0发布
Docker 1.0的发布和谷歌、Rackspace等的实践标志着Docker向正式大规模生产系统中的应用方面迈出了艰巨的一步。Docker的官方博客谈到:“当许多机构忽视掉我们“不要在生产环境中运行”的警告愉快地使用Docker时,其他人则在实际部署生产环境前一直等待Docker产品成熟度达到一定水平,1.0 版本的发布表明在质量、功能完整、向后兼容和 API 稳定性方面已达到企业级标准;另外,我们为实际生产提供了一套全面的解决方案,包括完善的文档、培训项目、专业服务、以及企业级支持。”
Docker的开放平台战略,迈入云+端时代
除了发布正式的1.0版本,Docker公司也正式宣布了Docker引擎+Docker Hub的开放平台计划,迈入云(Docker Hub云应用商店和分发平台)+端(将应用发布到数据中心、公有云等运行Docker引擎的服务器平台上)。这一里程碑意味着 Docker 自身已经转变为一个分发应用的开放平台,它由 Docker 引擎、容器运行时、打包工具,以及 Docker Hub 组成。
Docker宣布的开放平台包括如下几部分:
PLATFORM= Docker Engine + Docker Hub +APIs + Ecosystem
Docker Engine可以自动化地部署应用到可移植的的容器中,这些容器独立于硬件、语言、框架、打包系统。一个标准的Docker容器包含一个软件组件及其所有的依赖 ——二进制文件,库,配置文件,脚本等等。Docker扩展了LXC,使用高层的API,提供轻量虚拟化解决方案来实现进程间隔离。可以运行在任何支持 cgroups跟AUFS 的 64位Linux内核上。Docker容器可以封装任何有效负载,几乎可以在任何服务器之间进行一致性运行。换句话说,开发者构建的应用只需一次构建即可多平台运行。运营人员只需配置他们的服务,即可运行所有的应用。
Docker Hub
Docker Hub提供API和云服务来发布基于Docker的应用程序。
下图演示了Docker应用程序的生命周期。在本地基于Docker引擎打包应用程序,然后用DockerHub云服务将程序(集装箱)放到DockerHub,希望运行此应用的平台比如GoogleAppEngine再去下载和运行。
Docker应用商店(Official Repositories)
应用商店是对之前DockerHub Registry的商业化,目前已经有14000多个基于Docker的应用程序package,包含最流行的13个应用-CentOS, MongoDB, MySQL, Nginx, Redis, Ubuntu, and WordPress 等等。应用商店将开放给合作伙伴共建生态体系,里面包含免费的应用和收费的应用。
Docker 的蓬勃发展和新战略将对于服务器端(云)应用部署带来深远影响
在6月10号的一个重要会议上,谷歌对Docker给予了相当大支持。在该公司看来,Docker是一个足以改变人们创建软件方式的东西,它能让任何程序开发人员更轻松地、即刻地体会到海量计算性能的优势。Google 去年 12 月 2 日宣布,Google Cloud Platform 开始支持 Docker,Google Compute Engine 此前只支持两种 Linux 部署方案 Debian、Centos。Google 为全球用户提供互联网服务,需要在分布在全球各地的服务器上部署相关应用程序。传统的部署模式下,Google 工程师需要在每一台服务器上进行相当复杂的操作才能够完成部署。如果使用 Docker,工程师在全球各地服务器上部署应用的过程将变得非常简单,只需要将应用打包、复制、传送、粘贴即可完成部署。
谷歌著名的工程师,前加利福尼亚大学伯克利分校教授、分布式系统专家,埃里克·布鲁尔(Eric Brewer)表示:“谷歌和Docker是能天然融合的。我们对应用程序未来该如何开发有着共同的认识。”布鲁尔称,Docker复制了谷歌在其数据中心里已执行多年的一些东西,即通过一种方法让成百上千的电脑如一台巨型电脑般运转。布鲁尔相信,这种架构代表了网络软件开发的未来。来自网易科技的报道称,“集装箱化思维”被运用在软件“运输”上,Docker可以看作是用代码编写出来的国际集装箱,它可以把任何应用及相关依赖项打包成一个轻量、可移植、自包涵式的容器。
参考资料:
http://blog.docker.com/2014/06/its-here-docker-1-0/
http://cloud.yesky.com/166/37626166.shtml
http://www.csdn.net/article/2014-06-10/2820145
原文出自:http://www.openstack.cn/p1961.html
【编辑推荐】
- 极力推荐:一个Docker的maven插件
- 让 Docker 无处不在
- 在Docker中运行一个Python的Web应用
- 谷歌拥抱Docker 最火的云计算技术
- 开源软件部署解决方案 Docker 1.0 正式发布
【责任编辑:林师授 TEL:(010)68476606】