-
Notifications
You must be signed in to change notification settings - Fork 1
/
speech
57 lines (44 loc) · 6.78 KB
/
speech
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
本报告主要内容包括:
一. OCI介绍
二. OCI标准介绍
三. OCI目前的需求
名词解释
OCI: Open Container Initiative
开放容器计划(倡议),旨在建立一个开放的、围绕容器格式和运行期的行业标准。http://www.opencontainers.org/
OCP: Open Container Project
开放容器项目,OCI前身,OCI成立之后OCP不再使用。
OCT: Open Container Testing
我们华为的开放容器测试项目。https://github.com/huawei-openlab/oct/
1 OCI介绍
1.1 容器生态层次
图1-1
在图1-1里,把容器生态划分成五个部分:操作系统、容器、编排调度、容器化服务、终端用户服务,其中底下三个属于技术层,上面两个属于服务层。类似的图最早出现在虚拟化生态里面,把虚拟化换成容器就成了目前的这个图。
1.2 容器生态图
最早喊出支持容器技术的操作系统产品是CoreOS,其他三大操作系统公司(SUSE、红帽、Canonical)对容器的态度就没有同样的积极。客观来说原因有两个:这三个公司受限于原有成熟的用户群以及比较“重”的产品线;商业角度考虑目前容器有用户没有客户。而作为初创公司的CoreOS,历史负担小,打造出的精简版本精确瞄准了新兴的互联网市场,抢占先机一下子就火了。
与此同时,Docker持续提高自己的产品以及自己的容器服务。CoreOS + Docker的组合里,Docker的优势明显。拖延下去一旦Docker达到工业化标准,那么其他操作系统公司必然会跟进。和其他三家操作系统公司SUSE、Redhat、Canonical竞争,CoreOS从综合实力上讲是没有优势的,先不说历史贡献和社区声望。就资金层面上看也不是一个级别。虽然有1200万美元的注资,但是其他三家:SUSE14年Linux收入超过2.65亿美元,红帽12年收入就突破10亿美元,Canonical目前还在亏损,但是老板一年可以烧8000万美元。
所以,CoreOS要在整个生态里站稳,就必须扩展自己的角色,因此他们把战略方向定到了“编排调度”上,这个层面推出统治级产品。
到了14年,三大系统公司果然先后出手,官方宣布对容器(Docker)提供企业支持。CoreOS还来不及宣布自己的“编排调度战略”,后院起火了——Docker推出了自己的编排项目。
Docker的这个策略就本身而言毫无问题,但一下子把的盟友美好设想给打破了。
CoreOS的CEO Alex Polvi不得不说:
他们一直认为 Docker 应该成为一个简单的基础单元,但不幸的是事情并如他们期望的那样,Docker正在构建一些工具用于发布云服务器、集群系统以及构建、运行、上传和下载映像等服务,甚至包括底层网络的功能等,以打造自己的Docker平台或生态圈。
http://best.qiniu.com/?p=761
这段话实在是太无力、太苍凉。
在操作系统领域抢尽风头、被期待会颠覆传统Linux操作系统的CoreOS在14年下半年,有了一种被釜底抽薪的感觉。站在着生死关头,如果你是CoreOS的管理层,你会怎么做?
1.3 CoreOS的反击
如果要黑一个工程师,你们会怎么做,我想传统的套路会分两步:第一步,这个人人品不行,自私、功利;第二步,这个人水平也不咋地,没啥技术含量徒有虚名。
CoreOS的反击大同小异,第一步:Docker已经是容器的事实标准了,但Docker是公司,不是社区,一旦成为容器标准就要垄断了,上下游都他说了算,怎么办。CoreOS发动群众,制定了AppC开放标准。
第二步:Docker存在天生的设计缺陷:
From a security and composability perspective, the Docker process model - where everything runs through a central daemon - is fundamentally flawed。
CoreOS顺势推出了自己的容器产品Rocket。Docker这个算不算致命的设计缺陷这里不讨论,但是如果真的是,CoreOS,你怎么不早说?
Rocket是基于AppC标准,因此一下子就占领了开源社区的道德制高点;同时得到了大佬Redhat, Google的支持,瞬间就扭转了局面。Docker管理层内心开始万马奔腾了。
1.4 OCI的成立
我们先把两个创业公司之间的恩恩怨怨放到一边,从没有任何利益瓜葛的中立者的角度来看容器产品的意义。容器的一大好处是一次编译发布后,能够在任何发行版无差异运行。但其实这个结果不需要容器也能实现,比如说所有服务商都跑着同一个发行版本,像SUSE12就可以了。因此容器这个好处被推捧的背后原因在于:不同Linux发行版之间由于版本库的差异、运行环境的差异导致了严重的兼容性问题,同时目前只有一个可用的容器产品:Docker。
可以想象,如果出现多个容器产品,那么开发者还是要针对不同容器进行编译、测试和发布,运维还是会为兼容性烦恼。
要想把兼容性问题在容器技术起步阶段就解决,只有一个方法:停止厂家之间的战争,坐下来共同商量标准。所以,一直默不作声的Linux Funcation出手了,拉了江湖地位很高的一堆大佬,成立了OCI。
OCI的原则很简单,总结起来20个字:社区主导,厂商独立,只谈技术标准,不谈商业利益。
那么OCI所谓的容器标准到底是什么呢,下面介绍OCI容器标准。
2 容器标准
2.1 标准的作用
标准有两个主要作用,第一个就是限定必要条件,也就是设立准入门槛。长远来看这是为了保证行业的整体素质,避免鱼目混珠良莠不齐。技术落后企业比较惨,连参与市场竞争的机会都没有了,比如说国5标准排放,一下子就宣告了落后厂商的死刑。我们常听的什么一流企业制定标准,人家有资本才敢制定高标准。国内常说的争夺标准话题权,其实就为了让自己的产品搭上末班车。
第二个作用就是让不同产品在相互竞争的同时保持必要的兼容性,也是为了方便用户。现在每个家庭都有多部手机,华为的、三星的、苹果的,随之而来的就是五花八门的充电器,是不是很麻烦。现在好了点,另一头都可以是USB的,算是方便了一点点。为什么会出现不兼容,锁定用户嘛。前面说过不同操作系统发行版都有各自的命令、环境变量,对这些厂商来说,这些和其他发行版不兼容的特性客观上锁定了用户,避免迁移到竞争对手的产品里,美其名曰提高用户黏性。兼容性就是限制这些东西,让大家拼硬实力。所以还是大厂商才愿意提兼容性,兼容到最后,用户都跑它那去了。比如96年微软和WPS互相开放office格式,结果市场占有率90%的WPS消失在中国用户的视线里。
那么在开源领域,也有一些现有标准,比如说