2010年,几个大胡子年轻人在旧金山成立了一家做 PaaS 平台的公司,起名为「dotCloud」,这个名字让我想起了微软的「DotNet」。

dotCloud 主要是基于 PaaS 平台为开发者或开发商提供技术服务。什么是 PaaS 呢?PaaS 的全称是 Platform as a Service,也就是平台即服务,这个概念在2010年热的一塌糊涂,直到现在也没凉下来。举个例子来说,传统的软件产品开发一般是这样的:

1、确定产品定位和需求,确定首次迭代的范围。
2、制作界面原型。
3、技术选型,然后根据技术选型为每个开发者搭建开发环境和技术栈,例如 Java 环境、Python 环境、Ruby 环境、数据库、中间件等等。
4、构建基础技术框架和服务,包括日志、存储、消息、缓存、搜索、数据源、集群扩展等等。
5、模拟用户容量,构建测试环境。
6、开始编写真正的业务代码,实现产品功能。
7、迭代开发/测试,生生不息,周而复始,直到头发掉光为止……

如 果采用完善的 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 也快了。

有意栽花花不开,无心插柳柳成荫!

Docker 这个技术到底能解决什么问题呢?预知后事如何,且听下回分解。

今日题图来自杭州辣个项目经理的摄影作品,模特是他的大美女夫人。

原文:http://www.oschina.net/news/57838/docker-dotcloud

相关链接

Docker 传奇之 dotCloud的更多相关文章

  1. Docker的官网在线--中文教程

    1.官网界面:https://www.docker.com/tryit/ In this 10-minute tutorial, see how Docker works first-hand: Yo ...

  2. Docker(一):Docker入门教程

    如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如 ...

  3. 【docker简易笔记】docker基础信息的分享

    docker 使用的频率越来越高,所以在后续的一些博客中会分享一些docker的安装和使用. 一.docker介绍   "Docker 最初是 dotCloud 公司创始人 Solomon ...

  4. 两小时入门Docker

    引入 Docker是什么? Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议 ...

  5. linux ---docker篇

    Docker docker是什么? docker最初是dotCloud公司创始人Solomom Hykes在法国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并在2 ...

  6. Docker初始

    如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如 ...

  7. docker整理

    Docker的简单介绍 docker是什么 Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache ...

  8. 初识docker

    什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主 ...

  9. 应用篇 = Docker下的Redis

    一.工具介绍 1.1 什么是Docker? Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目.使用 Google 公司推出的 Go 语言 ...

随机推荐

  1. C++的那些事 1

    最近在看c++的一些库文件,里面的一些比较陌生但看起来挺有用的一些东西,在此记下,以免日后看到再翻找资料. template <size_t _Nb> 这是在看bitset的时候看到的,之 ...

  2. Maven打包Swing程序

    有两个maven工程:见下. 第二个工程依赖第一个工程,第二个工程是swing,两个工程都需要链接数据库. 打包步骤: 1.主要第二个工程主类,run as --->java applicati ...

  3. InteliJ IDEA 简单使用:配置项目所需jdk

    1:配置项目所需jdk: File->Project Structure 弹出如下界面: 首先选中SDKs,会出现下图界面:点击“+”标志弹出Add New SDK 然后选择JDK,会弹出路径框 ...

  4. Babel(抽象语法树,又称AST)

    文章:https://juejin.im/post/5a9315e46fb9a0633a711f25 https://github.com/jamiebuilds/babel-handbook/blo ...

  5. Node.js模块定义总结

    为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统.模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的.换言之,一个 Node.js 文件就是一个模块,这 ...

  6. ntpdate时间同步

    为什么需要网络同步时间: Linux服务器运行久时,系统时间就会存在一定的误差,一般情况下可以使用date命令进行时间设置,但在做数据库集群分片等操作时对多台机器的时间差是有要求的,此时就需要使用nt ...

  7. MVC4是不是类似于html页+ashx页之间用JSON通过AJAX交换数据这种方式、?

    不是,可以讲mvc模式是借鉴于java下面的mvc开发模式,为开发者公开了更多的内容和控制,更易于分工合作,与单元测试,借用官方的说法:MVC (Model.View.Controller)将一个We ...

  8. PHP 利用redis 做统计缓存mysql的压力

    <?php header("Content-Type:text/html;charset=utf-8"); include 'lib/mysql.class.php'; $m ...

  9. bzoj 1150

    思路:写的时候感觉是贪心但是没有什么思路... 看了题解,原来有一个选了能反悔的贪心思路, 如果最优那么每个城市只能和旁边的相邻 城市连边,所以问题变成了由n个数,不能取相邻的两个数,取k个最小是多少 ...

  10. 关于Sublime text3 配置及插件整理

    Package Control组件在线安装 按Ctrl+`调出console(注:避免热键冲突) 粘贴以下代码到命令行并回车: import urllib.request,os; pf = 'Pack ...