Docker 传奇之 dotCloud
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 这个技术到底能解决什么问题呢?预知后事如何,且听下回分解。
今日题图来自杭州辣个项目经理的摄影作品,模特是他的大美女夫人。
Docker 传奇之 dotCloud的更多相关文章
- Docker的官网在线--中文教程
1.官网界面:https://www.docker.com/tryit/ In this 10-minute tutorial, see how Docker works first-hand: Yo ...
- Docker(一):Docker入门教程
如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如 ...
- 【docker简易笔记】docker基础信息的分享
docker 使用的频率越来越高,所以在后续的一些博客中会分享一些docker的安装和使用. 一.docker介绍 "Docker 最初是 dotCloud 公司创始人 Solomon ...
- 两小时入门Docker
引入 Docker是什么? Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议 ...
- linux ---docker篇
Docker docker是什么? docker最初是dotCloud公司创始人Solomom Hykes在法国期间发起的一个公司内部项目,它是基于dotCloud公司多年云服务技术的一次革新,并在2 ...
- Docker初始
如今Docker的使用已经非常普遍,特别在一线互联网公司.使用Docker技术可以帮助企业快速水平扩展服务,从而到达弹性部署业务的能力.在云服务概念兴起之后,Docker的使用场景和范围进一步发展,如 ...
- docker整理
Docker的简单介绍 docker是什么 Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache ...
- 初识docker
什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主 ...
- 应用篇 = Docker下的Redis
一.工具介绍 1.1 什么是Docker? Docker 最初是 dotCloud 公司创始人 Solomon Hykes 在法国期间发起的一个公司内部项目.使用 Google 公司推出的 Go 语言 ...
随机推荐
- RabbitMQ集群使用Haproxy负载均衡
(1).下载 http://www.haproxy.org/#down (2).解压 tar -zxvf haproxy-1.5.18.tar.gz (3).安装 1).编译 make TARGET= ...
- RabbitMQ集群下队列存放消息的问题
RabbitMQ中队列有两种模式 1.默认 Default 2.镜像 Mirror [类似于mongoDB,从一直在通过主的操作日志来进行同步] *如果将队列定义为镜像模式,那么这个队列也将区分主从, ...
- 【干货】查看windows文件系统中的数据—利用簇号查看文件与恢复文件
前面我们使用这个软件发现了很多删除掉的数据,今天来看看簇.FAT文件系统中,存在一个簇的链接,我知道了簇1在哪里就可以顺藤摸瓜恢复所有的信息. 这里使用FAT 12为例子,FAT其他万变不离其宗,甚至 ...
- linux中断申请之request_threaded_irq【转】
转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=21977330&id=3755609 在linux里,中断处理分 ...
- elasticsearch安装ik分词器(极速版)
简介:下面讲有我已经打包并且编辑过的zip包,你可以在下面下载即可. 1.下载zip包.elasticsearch-analysis-ik-1.8.0.jar下面有附件链接[ik-安装包.zip],下 ...
- 如何将同一个APP中的不同activity在Recent(最近任务)中显示?
需求描述 在应用Application1中存在A.B两个activity,当在应用启动了A.B activity,点击Recent键,如何让A.B两个activity都显示在Recent界面(最近任务 ...
- PHP isset()、empty()、is_null()的使用区别详解
PHP的isset()函数 一般用来检测变量是否设置 格式:bool isset ( mixed var [, mixed var [, ...]] ) 功能:检测变量是否设置 返回值: 若变量不存在 ...
- [USACO17FEB]Why Did the Cow Cross the Road I G
一开始想写$DP$,发现直接转移完全有后效性 所以本小蒟蒻写了个最短路 每走三步就要吃草是这个题最难搞的地方,我们建图时不妨只对于距离等于三的点连边 考虑完全覆盖所有情况,从一个点走一步,两步,然后三 ...
- Windows 10安装pip方法
pip是一款非常方便的python包管理工具,本文主要介绍在windows 10下安装pip方法. 1. 下载pip 地址:https://pypi.python.org/pypi/pip#downl ...
- **CI中创建你自己的类库
http://codeigniter.org.cn/user_guide/general/creating_libraries.html 创建类库 当我们使用术语"类库"时,我们一 ...