写点什么

解读 2014 之 Docker 篇:才气、勇气、运气

  • 2015-01-09
  • 本文字数:4072 字

    阅读完需:约 13 分钟

编者按

2014 年,整个 IT 领域发生了许多深刻而又复杂的变化,InfoQ 策划了“解读2014 ”年终技术盘点系列文章,希望能够给读者清晰地梳理出技术领域在这一年的发展变化,回顾过去,继续前行。

毫无疑问, Docker 已经成为 2014 年最热门的技术之一,它被爱好者冠以云计算新星、下一代虚拟机等称号,可见大家对其的期望之高。2014 年,Docker 的发展可谓是一路凯歌,从年初的 B 轮融资到年末的 DockerCon 欧洲大会,Docker 在这一年里顺风顺水,就连微软、谷歌、AWS 这样的巨头也敬它三分。

InfoQ 从 2014 年 5 月开始重点关注 Docker,先后策划了深入浅出源码解读 CoreOS 实战 Docker 周报等系列专栏,共产出了百余篇新闻与文章,同时还建有两个千人的 QQ 群以供读者学习交流。在这一年里,作为负责 Docker 专栏的技术编辑,我密切关注了 Docker 的每一次融资、收购、合作,也亲身见证了一个技术的发展之路。本文作为 Docker 专栏的年终总结,分析了过去一年 Docker 的发展、模式、应用,并结合自己的理解展望了 2015 年 Docker 的发展以及与它相关的技术变革。

另本文的标题来自热播无胸版电视剧《武媚娘传奇》张公公之口。

发展

2014 年是 Docker 的起步之年,这一年里 Docker 又是融资,又是收购,又是办大会,又是与巨头合作,迅速获得了资本以及云厂商的认可。记得在 6 月的一段时间里,每天早上起来只要一打开朋友圈,就会看到关于 Docker 的爆炸性新闻,想想也是醉了。先撇开 Docker 的优势不谈,我们来回顾下过去一年 Docker 的几个重要的发展节点。

  1. Docker 1.0 发布。6 月 10 日, Docker 团队宣布发布 Docker 1.0 版本,从第一个版本到 1.0 版本的发布,Docker 大约经历了 15 个月的时间,共收到了超过 460 位贡献者的 8741 条改进建议。1.0 版本的发布也就意味着 Docker 可用于生产环境,从发布特性中可以看到,Docker 当时重点在关注稳定性、扩展性、兼容性等方面的问题,并没有提及安全事宜。同时从数据中可以看到社区对 Docker 的贡献。
  2. Docker 出售 dotCloud。8 月 4 日, Docker 宣布出售其平台即业务服务 dotCloud ,并称接下来将专注于容器业务。CEO Ben 表示他们已经看到 Docker 的快速增长,希望把所有的精力和资源都集中在这项业务上 。从这件事情上可以看出 Docker 公司的决心,把成败都押在 Docker 上,何尝不是一种魄力。当然,那时 Docker 有足够多的用户,他们也很有信心。
  3. 微软全面拥抱 Docker。10 月,微软宣布下一个版本的 Windows Server 将支持 Docker ,同时还发布了 Windows 10 客户端的技术预览版。Windows Server 主要是面向企业市场,显然,微软已经意识到容器技术的发展趋势以及其对企业的意义。比较有意思的是,微软早在之前就开发了自己的容器技术(Drawbridge),而 Windows Server 却选择支持 Docker,可见 Docker 的势头之猛。
  4. AWS 加码押注 Docker 。在 AWS re:Invent 2014 大会上, AWS 推出了高性能容器管理服务 EC2 Container 服务,用户可以在 AWS 上使用容器轻松地运行和管理分布式应用。AWS 是云计算的老大哥,在其 EC2 上早就支持 Docker,这次的容器服务瞄准的是集群服务,也是第一家将 Docker 应用于集群服务的公有云,AWS 果然是 IaaS 的带路人和领头羊。
  5. Docker 发布新的跨容器的分布式应用编排服务。12 月 4 日, Docker 宣布发布跨容器的分布式应用编排服务,编排服务可以帮助开发者创建并管理新一代的可移植的分布式应用程序。之前 Docker 关注的都是单个或者少量的容器,所以我们也经常看到官方用词“Engine”,而编排服务的发布意味着 Docker 正式进军集群服务,彻底平台化。通过三个新的编排服务( Machine Swarm Compose ),用户可以迅速构建 Docker 集群环境并部署应用,至此,Docker 为 2014 年画上了圆满的句号。

模式

正如热播电视剧《武媚娘传奇》中所说,一个才人的上位需有才气、勇气、运气,Docker 在这一年里能有如此快的发展也与此道理大同小异。才气不多说,从 Docker 一出现大家就很认可它带来的颠覆性的优势,现在流行打标签,如果要给 Docker 写标签,我认为应该有几个词:容器、虚拟化、轻量、可移植、分布式。谈到勇气,不得不提 Docker 的创始人 Solomon(dotCloud 的创始人),在 PaaS 市场举步维艰的情况下,他敢于将自己的核心引擎开源,并让团队的核心成员参与开源项目,以及后来直接把 dotCloud 卖掉,把全部精力都投入到 Docker 的开发上,可谓魄力十足。运气又名天时,近几年,DevOps、微服务、云计算等技术理念如日中天,而 Docker 可以全部和这些技术集成,并且都能为之一颤。

官方公布的数据来看,截止到 2014 年 11 月,Docker 的贡献者已经超过 700 人,与去年相比增长 52%;Pull Request 数量为 5200 个,增长 37%;GitHub 上相关的项目已达 18000 个,增长 177%;相关的仓库数量已达 65000 个,增长 348%;Docker 的下载量有 6700 万之多,增长 2336%。

一年的时间里,Docker 的生态系统发展迅猛,知名的云计算公司以及软件、操作系统、系统集成厂商、配置管理软件、大数据厂商以及开源软件都在向 Docker 靠拢,不管是在哪个领域,Docker 都在“Doing the old thing the new way”。Docker 相关的生态圈可以参考下图,图片来自 DockerCon 欧洲,需要注意的是图中没有列出国内的云计算公司。

应用

前面提到过,Docker 可以和很多的概念联系到一起,生态圈如此之大,那可以做的事情肯定也很多。但是,现在有多少公司 / 开发者在使用 Docker 了?这个问题真是得打个大大的问号,从平时的采访以及 QQ 群中读者的问题来看,绝大部分人对 Docker 的使用还停留在观望状态,并且将 Docker 应用于生产环境的公司少之又少。记得刚开始追踪 Docker 的时候,我把英文站的一篇新闻中描述Docker 发展的词主观的翻译为了“吹捧”,我认为媒体、社区、厂商对Docker 炒作的声音远大于需求驱动,看似火热而又令人心动的变革其实并不如外表看起来的那么红火。不过,从一个技术的发展角度来看,如此情况也在情理之中。

Docker 的应用和它本身的优势密切相关,系统集成厂商 Flux7 曾总结过 Docker 的一些应用场景,虽然 Docker 目前的实际应用人数并不多,但也不乏最佳实践。开发方面,开发者可以使用 Docker 搭建开发环境,借助 Docker 可移植的特性,开发者可以将自己的环境分享给开发以及相关的测试同事,省去了因为环境搭建而耗费的时间。同时,由于 Docker 可以快速创建并启动一个或多个容器,所以它可以和 Jenkins 一起来进行持续集成(CI),相关的开源项目有 Drone Strider

很少有人提及 Docker 对 SaaS 带来的影响,从普通用户的角度来看,Docker 可以为他们解决很多苦恼的技术问题。举个例子,之前用户想卖东西,可能就是入驻淘宝这样的平台,一是需要依靠大平台的流量,二是自己根本无法搞定一套电商程序的安装以及维护。有了 Docker 后,用户拿到的就是镜像,通过几个来回的命令就可以完成安装。所以我认为假以时日,类似 Wordpress、Drupal 这样的开源软件都会通过镜像的方式交付给用户,用户也会在选择 SaaS 平台还是自己搭建方面有更多的主动权。同样,得益于 Docker,SaaS 平台也许会向 PaaS 过渡。

PaaS 方面,Docker 已经扎根新一代的 PaaS,如果把 Azure、Heroku 等公有的 PaaS 看为第一代,允许用户自建 PaaS 的 Cloud Foundry 和 OpenShift 就应该是第二代,那以 Docker 为首的平台就应该是第三代,主要代表有 Deis Flynn Tsuru 。目前第三代 PaaS 也已经成熟,其中 Deis 和 Flynn 都已经发布 1.0 版本,借助 Docker,这些平台可以占用更小的资源。部署方面,新一代 PaaS 平台也可以借助 Docker 实现从开发环境到 PaaS 平台的无缝迁移,可谓从里到外,Docker 都是得力帮手。

IaaS 方面,巨头 AWS 已经推出基于 Docker 的容器服务,老二 Azure 也已经全面支持 Docker,并和官方建立了合作关系。放眼国内,阿里云、腾讯云、UCloud、青云等公司都已经支持 Docker,更进一步的支持看似也没有。同时,新一代的基于 Docker 的 IaaS 也在紧锣旗鼓的设计中(此处省去很多创业公司),Docker 可以提高资源利用率,降低云成本,所以也有很提出了 CaaS(容器即服务)的概念。没有人能够知道在这样的时代 Docker 到底会带来什么样的变革,所以面对如此火热的技术,IaaS 厂商扑上去也容易理解。

2015 年

11 月底, CoreOS 发布了自己的容器引擎 Rocket ,Docker 有了名义上的第一个竞争对手。新的一年,容器之争才刚刚开始,其实微软、谷歌都有自己的容器技术,亚马逊应该也有。如果容器会带来历史性的变革,那容器的战争是早晚的事。CoreOS 发布 Rocket 时称 Docker 已经忘记初心,并且开始冲击生态系统中的其它软件,于是便另起炉灶。现在过去一个多月了,还在 Stage 0 阶段,在社区方面获得的支持远不如 Docker 刚开始的时候,所以我并不看好。单从引擎这一点来看,类似 Rocket 的其它容器引擎并不是没有机会,因为 Docker 也有自己的问题(比如安全),新的一年,更是着重考验它们逼格的时候。

DockerCon 欧洲上,Docker 发布新的跨容器的分布式应用编排服务,旨在简化分布式应用的部署。分布式应用可以保证服务的稳定性和可扩展性,Docker 重新定义了分布式应用之道:我们可以根据需求随意收缩分布式应用节点。之前,Docker 教你怎么玩好一个容器,而现在 Docker 会教你如何玩好成千上万个容器,并在这么多容器上部署你的应用。当你在几百台服务器上部署几万个容器的时候, Kubernetes Mesos 这些调度框架的作用就显现出来了,所以分布式应用相关的开源软件也是新一年的风向标。

回到国内,2015 年 Docker 会逐渐落地,经过去年一年的发展,Docker 已经相对稳定,研究和使用的人越来越多,并且中文资料也开始多了起来。现有的云计算厂商应该会重点关注 Docker,并可能在其底层架构中使用 Docker,与 Docker 相关的 IaaS 和 PaaS 也会迎来一个创业小高潮,相关的开发者服务商也会提供对 Docker 的支持。

也许是看武媚娘看多了,每每去思考 Docker 发展的时候,我都会想 Docker 又何尝不是下一个“武媚娘”了?如果是,那“武代李唐”的预言会不会再次上演?这一次李唐们会如何做?好戏还在后头。

2015-01-09 08:437607
用户头像

发布了 219 篇内容, 共 140.5 次阅读, 收获喜欢 192 次。

关注

评论

发布
暂无评论
发现更多内容

测试需求平台6-数据持久化与PyMySQL使用

MegaQi

Python 10月月更 测试开发实战

“程”风破浪的开发者 | 基建及团队建设的方法论

甜点cc

团队管理 学习方法 基建 “程”风破浪的开发者

spring整合mybatis、springMVC(总结)

Studying_swz

spring 10月月更

Centos7最小安装配置 | 运维 | Linux

Appleex

Linux 运维

一起学习 Go 语言设计模式之设计模式概述

宇宙之一粟

设计模式 Go 语言 10月月更

2022年都快结束了,Java的这些新技术、热门技术,你不会还不知道吧?

wljslmz

Java 微服务 后端 10月月更 jdk19

再聊加班的感受

李印

成长感悟

【Java深入学习】一个经典问题-消费者和生产者问题-下

Geek_65222d

10月月更

Excel 文件的读取

芯动大师

学习方法 Python Monad Excel数据分析

私有云建设思路

阿泽🧸

私有云 10月月更

ZooKeeper应用案例

穿过生命散发芬芳

zookeeper 10月月更

2022-10-22:以下go语言代码输出什么?A:moonfdd1;B:编译错误;C:运行时 panic。 package main import “fmt“ func main() {

福大大架构师每日一题

golang 福大大 选择题

消息推送渠道那么多,该怎么设计消息中心?

产品海豚湾

产品经理 产品设计 消息系统 产品架构 10月月更

Docker | 网络及原理探究

甜点cc

Docker 运维 10月月更

开源免费!自己动手撸一个在线云盘!

Jackpop

“程”风破浪的开发者|区块链与Web3.0辨析

timerring

区块链 Web3.0 10月月更 “程”风破浪的开发者 Web2.0

阿里云无影向RPA开闸,金智维、影刀、弘玑已落地|生态商机

B Impact

中东地区被低估,沙特偏好企业服务和云,新加坡稳定,东南亚复杂|出海

B Impact

Spring Boot概述(一)

Studying_swz

10月月更

在平面国生活,会是怎样的体验?

脑极体

人工智能

Spring Boot「11」查看所有托管的 Bean

Samson

Java spring 学习笔记 spring-boot 10月月更

高逼格!程序员专属音乐播。。。

Jackpop

开发者神器,代码文档终于有救了

Jackpop

“程”风破浪的开发者|元宇宙?Are you Sure?

六月的雨在InfoQ

虚拟世界 平行世界 元宇宙 10月月更 “程”风破浪的开发者

【kubernetes技术专题】Kubernetes架构分析介绍篇(进阶篇)

洛神灬殇

Kubernetes 10月月更

Docker | 网络模型以及容器通信

甜点cc

Docker 运维 10月月更

Glibc---_IO_file_xsputn函数逻辑分析

桑榆

源码刨析 10月月更 C++

一款轻巧快速的跨平台文档阅读器!

Jackpop

AfterShip 国际化获客冷启动经验:痛点、借力、连接

B Impact

云计算商业周期超过其他产业,技术的天花板是商业机遇

B Impact

golang中的字符串

六月的

golang 字符串

解读2014之Docker篇:才气、勇气、运气_服务革新_小盖_InfoQ精选文章