小鲸鱼大事记 | Docker诞生历程之崭露头角

479 阅读5分钟

作者:张磊

戳此查看全文:极客时间《深入剖析Kubernetes》

上一篇文章中,我说到,伴随着PaaS概念的逐步普及,以Cloud Foundry为代表的经典PaaS项目,开始进入基础设施领域的视野,平台化和PaaS化成了这个生态中的一个最为重要的进化趋势。

就在对开源PaaS项目落地的不断尝试中,这个领域的从业者们发现了PaaS中最为棘手也最亟待解决的一个问题:究竟如何给应用打包?

遗憾的是,无论是Cloud Foundry、OpenShift,还是Clodify,面对这个问题都没能给出一个完美的答案,反而在竞争中走向了碎片化的歧途。

而就在这时,一个并不引人瞩目的PaaS创业公司dotCloud,却选择了开源自家的一个容器项目Docker。更出人意料的是,就是这样一个普通到不能再普通的技术,却开启了一个名为“Docker”的全新时代。

你可能会有疑问,Docker项目的崛起,是不是偶然呢?

事实上,这个以“鲸鱼”为注册商标的技术创业公司,最重要的战略之一就是:坚持把“开发者”群体放在至高无上的位置。

相比于其他正在企业级市场里厮杀得头破血流的经典PaaS项目们,Docker项目的推广策略从一开始就呈现出一副“憨态可掬”的亲人姿态,把每一位后端技术人员(而不是他们的老板)作为主要的传播对象。

简洁的UI,有趣的demo,“1分钟部署一个WordPress网站”“3分钟部署一个Nginx集群”,这种同开发者之间与生俱来的亲近关系,使Docker项目迅速成为了全世界Meetup上最受欢迎的一颗新星。

在过去的很长一段时间里,相较于前端和互联网技术社区,服务器端技术社区一直是一个相对沉闷而小众的圈子。在这里,从事Linux内核开发的极客们自带“不合群”的“光环”,后端开发者们啃着多年不变的TCP/IP发着牢骚,运维更是天生注定的幕后英雄。

而Docker项目,却给后端开发者提供了走向聚光灯的机会。就比如Cgroups和Namespace这种已经存在多年却很少被人们关心的特性,在2014年和2015年竟然频繁入选各大技术会议的分享议题,就因为听众们想要知道Docker这个东西到底是怎么一回事儿。

而Docker项目之所以能获得如此高的关注,一方面正如前面我所说的那样,它解决了应用打包和发布这一困扰运维人员多年的技术难题;而另一方面,就是因为它第一次把一个纯后端的技术概念,通过非常友好的设计和封装,交到了最广大的开发者群体手里。

在这种独特的氛围烘托下,你不需要精通TCP/IP,也无需深谙Linux内核原理,哪怕只是一个前端或者网站的PHP工程师,都会对如何把自己的代码打包成一个随处可以运行的Docker镜像充满好奇和兴趣。

这种受众群体的变革,正是Docker这样一个后端开源项目取得巨大成功的关键。这也是经典PaaS项目想做却没有做好的一件事情:PaaS的最终用户和受益者,一定是为这个PaaS编写应用的开发者们,而在Docker项目开源之前,PaaS与开发者之间的关系却从未如此紧密过。

解决了应用打包这个根本性的问题,同开发者与生俱来的的亲密关系,再加上PaaS概念已经深入人心的完美契机,成为Docker这个技术上看似平淡无奇的项目一举走红的重要原因。

一时之间,“容器化”取代“PaaS化”成为了基础设施领域最炙手可热的关键词,一个以“容器”为中心的、全新的云计算市场,正呼之欲出。而作为这个生态的一手缔造者,此时的dotCloud公司突然宣布将公司名称改为“Docker”。

这个举动,在当时颇受质疑。在大家印象中,Docker只是一个开源项目的名字。可是现在,这个单词却成了Docker公司的注册商标,任何人在商业活动中使用这个单词,以及鲸鱼的Logo,都会立刻受到法律警告。

那么,Docker公司这个举动到底卖的什么药?这个问题,我不妨后面再做解读,因为相较于这件“小事儿”,Docker公司在2014年发布Swarm项目才是真正的“大事儿”。

那么,Docker公司为什么一定要发布Swarm项目呢?

通过我对Docker项目崛起背后原因的分析,你应该能发现这样一个有意思的事实:虽然通过“容器”这个概念完成了对经典PaaS项目的“降维打击”,但是Docker项目和Docker公司,兜兜转转了一年多,却还是回到了PaaS项目原本深耕了多年的那个战场:如何让开发者把应用部署在我的项目上。

没错,Docker项目从发布之初就全面发力,从技术、社区、商业、市场全方位争取到的开发者群体,实际上是为此后吸引整个生态到自家“PaaS”上的一个铺垫。只不过这时,“PaaS”的定义已经全然不是Cloud Foundry描述的那个样子,而是变成了一套以Docker容器为技术核心,以Docker镜像为打包标准的、全新的“容器化”思路。

这,正是Docker项目从一开始悉心运作“容器化”理念和经营整个Docker生态的主要目的。

而Swarm项目,正是接下来承接Docker公司所有这些努力的关键所在。



戳此查看:第一阶段初出茅庐

戳此查看:第三阶段群雄并起

戳此查看全文:极客时间《深入剖析Kubernetes》