回到2013年
2013年后端技术领域, 已经很久没有出现令人耳目一新的项目了。 与计算已经蜕变成实实在在的账单和虚拟机实例, 相比如日中天的openstack , Cloud Foundry为代表的PaaS , 成为了云计算中的一股清流。
PaaSs时代要来了。DotCloud也是PaaS这股清流中的一份子。 相比于 Heroku、Pivotal、Red Hat 等 PaaS 弄潮儿们,dotCloud 公司实在是太微不足道了,而它的主打产品由于跟主流的 Cloud Foundry 社区脱节,长期以来也无人问津。眼看就要被如火如荼的 PaaS 风潮抛弃,dotCloud 公司却做出了这样一个决定:开源自己的容器项目 Docker。
Docker不一样的地方
在cloud foundry中, 最核心的组件就是应用的打包和分发机制, 如cf push xxx, 基本就是把应用的可执行文件和启动脚本打入一个压缩包, 上传到云上并调度机器开启服务 , cloud foundry 会使用namespace 和 cgroup 来进行隔离,在沙盒中启动服务, 这其实就是容器了。
Docker的镜像, 解决了打包这个根本性的问题(多语言环境的问题 ) , 所以发展起来较为迅速。
而Docker 项目之所以能取得如此高的关注,一方面它解决了应用打包和发布这一困扰运维人员多年的技术难题;而另一方面,把一个纯后端的技术概念,通过友好的设计和封装,赢得开发者的青睐。
Docker Swarm
Docker 项目发布后,CoreOS 公司很快就找到docker公司想把方案融合到自己的系统中, 从而为用户提供更高层次的 PaaS 能力。所以,CoreOS 很早就成了 Docker 项目的贡献者,并在短时间内成为了 Docker 项目中第二重要的力量。 2014年,由于战略方向的不同, 合作草草结束, coreOS推出自研Rocket容器(rkt)。
Docker在同年12月也发布了swarm,按照自己的方向发展。
随着发展, Docker从一个经济拮据的公司变成不差钱的主, 这个时候一般会出现什么问题? 收购, 对的, 完成了Fig项目的收购, 第一次提出了容器编排的概念。 Container Orchestration 。
“编排”显然就是对 Docker 容器的一系列定义、配置和创建动作的管理。
发展
Docker公司推出 Docker Compose、Swarm 和 Machine“三件套”,在重新定义 PaaS 的方向上走出了最关键的一步。
Docker 公司开始变得越来越狂, 俗话说, 天狂有雨,人狂有痞,docker挑战了别家公司的利益, 必然遭来杀身之祸啊。 这种小情绪在2015年达到高潮, 容器领域的其他几位玩家开始商议“切割”Docker 项目的话语权, 手段就是成立中立基金会 (CNCF), 以Kubernetes 为基础,建立平台级社区, 抗衡docker商业生态。