一切看起来都是那么的美好,如果后来的事情按照这个设想进行下去的话,软件厂商和程序员都会松好几口气,那样我们的头发还能和「普通地铁站」里的人一样,倔强的飘在风里。
2010年,几个大胡子年轻人在旧金山成立了一家做 PaaS 平台的公司,起名为「dotCloud」,这个名字让我想起了微软的「DotNet」。
dotCloud 主要是基于 PaaS 平台为开发者或开发商提供技术服务。什么是 PaaS 呢?PaaS 的全称是 Platform as a Service,也就是平台即服务,这个概念在2010年热的一塌糊涂,直到现在也没凉下来。举个例子来说,传统的软件产品开发一般是这样的:
- 确定产品定位和需求,确定首次迭代的范围。
- 制作界面原型。
- 技术选型,然后根据技术选型为每个开发者搭建开发环境和技术栈,例如 Java 环境、Python 环境、Ruby 环境、数据库、中间件等等。
- 构建基础技术框架和服务,包括日志、存储、消息、缓存、搜索、数据源、集群扩展等等。
- 模拟用户容量,构建测试环境。
- 开始编写真正的业务代码,实现产品功能。
- 迭代开发/测试,生生不息,周而复始,直到头发掉光为止……
如果采用完善的 PaaS 平台,可以直接忽略3、4、5三个步骤。无论你选择哪个技术栈,PaaS 都会为你提供相关的配套设置,包括语言环境、运行环境、存储和各种基础服务。dotCloud 不仅支持诸如 PHP、MySql 等传统技术框架,还包括 Node.js、MongoDB 等新兴技术。基于 dotCloud 提供的开发工具和技术框架,你可以直接使用 dotCloud 的 SDK 编写代码和构建业务服务,并在联网的时候把这些代码推送到云端,实现自动部署和测试。
dotCloud 把需要花费大量时间的手工工作和重复劳动抽象成组件和服务,并放到了云端,另外,它还提供了各种监控、告警和控制功能,方便开发者管理和监控自己的产品。dotCloud 最初运行在 Amazon 的 EC2 上,不过由于 dotClout 高度的抽象层次,理论上 dotCloud 可以运行在各种各样的云服务上面(我猜这就是 Docker 的功劳)。
一切看起来都是那么的美好,如果后来的事情按照这个设想进行下去的话,软件厂商和程序员都会松好几口气,那样我们的头发还能和「普通地铁站」里的人一样,倔强的飘在风里。
遗憾的是,我们抵达的是「中关村地铁站」!
PaaS 并没有这样一直春暖花开下去,事实上给开发者或程序猿做东西一直是件非常危险的事情,程序猿是一种很奇怪的动物,虽然他们常常分不清楚女友的发型和衣服款式,但是对开发环境和开发工具却非常敏感并要求极高,稍不注意就会伤害到他们脆弱的心。所谓文人相轻,程序猿也不例外,对自己人常常是下死手的。所以,PaaS 的概念虽好,但是由于认知、理念和技术的局限性,市场的接受度并不高,市场的规模也不够大。
除此之外,还有巨头不断进场搅局,IBM 的蓝云,微软的 Azure,Amazon 的 EC2,Google 的 GAE,VMware 的 Cloud Foundry 等等,可谓强敌环伺,而且强敌都不差钱,想玩多久就玩多久,想玩多大玩多大。在这种情况下,虽然 dotCloud 在2011年初拿到了1000万美元的融资,但依然举步维艰。
再也不能这样下去了!dotCloud 的创始人 Solomon Hykes 把大伙召集到一起,说,咱们过的不舒服,也不能让别人痛快了,干脆把我们的核心引擎开源扔到市面上看看,如何?大家面面相觑,最后把拳头砸到桌面上,就这么办。
山重水复疑无路,柳暗花明又一村!
这个基于 Linux Container 技术的核心管理引擎一经开源立刻得到了「业界」的热烈吹捧,首当其冲的当然是程序猿们。看到好的开源产品,这帮平时静若处子的货色就像猴子看到卖桃的一样,一窝蜂冲上去,边吃边说好吃。这个容器管理引擎大大降低了容器技术的使用门槛,轻量级,可移植,虚拟化,语言无关,写了程序扔上去做成镜像可以随处部署和运行,开发、测试和生产环境彻底统一了,还能进行资源管控和虚拟化。程序员们流着口水惊呼,太方便了,太方便了。
业界几个大佬也没闲着,看看程序员们欢喜雀跃,再看看自己平台上笨重的 PaaS,纷纷表示要接入或支持这个引擎。连最传统的过气带头大哥微软都信誓旦旦的说,要以Windows 原生的方式运行这个引擎。
这个引擎的名字叫做 Docker,以 Go 语言写成。
这个结果是 dotCloud 公司的几个创始人万万没想到的,他们本来是按照穷小子模式来培育 Docker 的,没成想直接蹦出一个婀娜多姿的大美女,明眸善睐,顾盼生姿,不仅把各类程序猿迷的神魂颠倒,而且旁边几个高楼大厦里的土豪也时不时过来搭讪聊天。哥儿几个坐不住了,开始合计。
咱本来是想捡点芝麻,结果怀里掉了个大西瓜,怎么办?
目光坚定,勇往直前,为了理想继续捡芝麻!
你傻呀,别和杭州那个产品经理学,这么好的机会砸脑门上,咱就甭躲了,专心培养西瓜吧。
从此以后,他们开始专心研发 Docker 产品和维护相关社区,过上了幸福而快乐的生活。2013年10月 dotCloud 公司更名为 Docker 股份有限公司,2014年8月 Docker 宣布把平台即服务的业务「dotCloud」出售给位于德国柏林的平台即服务提供商「cloudControl」,dotCloud 的历史告一段落。同年8月,Docker 内部员工 James Turnbull 发布了面向开发者、运维和系统管理员的 Docker 电子书《The Docker Book》。
过去12个月,Docker 迅速成长为云计算相关领域最受欢迎的开源项目,Amazon、Google、IBM、Microsoft、Red Hat 和 VMware 分别表示已经支持 Docker 技术或准备支持。据说,有 Linux 的地方,就可以运行 Docker。看情形 Windows 也快了。
看看,真是“有意栽花花不开,无心插柳柳成荫”!