池剑锋 译 分布式实验室
2017是一个容器大年。其中一个最大的容器事件来自Linux基金会,这同时也是Linux基金会自己承认的年度最无聊的事件之一。
基金会的开放容器标准(OCI)最终分化成两个规范,来标准化如何在底层操作容器。Chris Aniszczyk,基金会开发者关系的副总裁及OCI执行董事,他把容器标准化的工作和W3C针对HTML的标准化作类比。这是一项乏味的工作,但没有它作为依托,任何更具价值的其它任务都将无从谈起。
OCI的出现是为了解决容器作为一种新兴技术的标准化问题。Docker已经掌控了容器趋势,但是CoreOS仍有其自己的引擎。Docker联合微软等公司创建OCI,目的是标准化容器引擎的工作方式,移除技术栈底层的某些冲突。
这个建议于2015年提出,但是直到一年多之后的2017年,OCI才拿出第一份规格文档。这份文档包含两部分,第一部分是镜像说明书,它整合了Docker自身以及CoreOS容器镜像格式appc的某些思想。它解释了脚本如何告诉容器在容器导入前要拉取哪些软件服务。另一部分是运行时说明书。这部分将在容器整合完它的软件组件后起作用,并解释容器二进制如何在一个支持的平台上运行。
Aniszczyk说,OCI还有一个重要的理智属性部分不应该被忽略。在许多这种行业标准中,成员间达成非侵入式的专利协议。
他说:“OCI所有成员同意放弃任何容器相关的和规格文档关联的专利,这样他们就不能相互控告了。”
正在加速的企业采用率
这很重要,因为容器仍处于企业正等待采用他们的阶段。Cloud Foundry基金会访谈了全球504位用户,从开发者到业务经理,发现25%的用户正在使用容器,去年只有22%,42%的用户正在评估,去年只有31%。我们可以看到用户的兴趣正在提高,但是仍处于缓慢增长阶段,这至少部分原因是容器技术的相对不成熟。
这是来自CNCF(Cloud Native Computing Foundation)的数据。作为Linux基金会的子基金会,它专注于云原生软件栈。如果说OCI是容器计算水泥板基础,那么CNCF则是基于水泥板来构造房间的木头窗——这是增值物品,它使得容器和微服务更容易被企业接受。
CNCF是Kubernetes之家,Kubernetes是谷歌开源的容器管理和调度系统。这个技术处理Percival所称的“-ilities”-扩展性(scalability),可配性(configurability),可依赖性(reliability),因此你可以同时管理成千上万的容器。他相信来自Kubernetes团队的压力将是推动OCI前进的部分动力。
他说:“人们有很清晰的需求,希望由只是单纯的花时间在定义容器和获取某些真实值,过渡到明白容器是如何运行的。”
CNCF和Kubernetes在2017年获得了极大的推动。微软于2017年2月在它的Azure容器服务中支持Kubernetes商用,Kubernetes 1.9在它的alpha版本支持Windows容器。微软于同年加入CNCF,AWS也是,它已宣布它的Kubernetes版本的弹性容器服务正在预演。
“另一件事是CNCF上个月发布了32个认证的Kubernetes发行版。”Lyman说,增加认证使得Kubernetes支持向前迈进一大步。他指出,亚马逊将等到CNCF认证通过后才使Kubernetes支持商用。
接下来会发生什么?根据Lyman的说法,2018年的风向将指向那些独立于虚拟机运行的容器,甚至完全替代虚拟机。“供应商越面向VM,他们的前景越渺茫。”这就是2017年末出现的另一个项目Kata Containers,引起人们极大兴趣的部分原因。
该项目整合了Intel的Clear Containers和Hyper的runV技术,创建运行于轻量级VM内的容器。根据OpenStack基金会执行董事,同时也管理Kata项目的Jonathan Bryce所说,项目目标是在两种执行选项间创建一个平衡。
第一种选项是在每个服务器单核内运行所有容器,这将最大化效率但是给我们一个针对以工作负载为单位的低层次的隔离。相对应的,我们也可以在整个VM内运行一个容器,这就完全隔离了但是它需要很高的资源费用。
Bryce说,Kata使用了一个裁剪过内核的轻量级的VM,同时提供了和正常VM一样的安全隔离级别。
他还提到:“两条路扔将并存,但是他们比已存在的在一个内核内运行所有东西或者在一个VM内运行所有东西要更接近。”
然而,仍然能在VM内高效运行容器。是否基于裸金属的操作将会更流行?Aniszzyk的回答是肯定的,他指出他在Twitter工作的时候就已经这么干了。他引用的优势包括性能,以及避开他所称的“VMware税”。
“如果你看下那些来自CNCF和OCI的使容器更加标准化的项目,你会发现它们确实更容易在裸金属上运行。我认为一段时间后你将看到更多的使用裸金属的容器,因为相比一个非常复杂的OpenStack环境,它确实更容易在裸金属环境中创建。”
本月初(2017年12月份)亚马逊声称裸金属将作为一个服务,也就有了很明确的原因,他说:“我们知道亚马逊是最听客户话的。”
因此,2018年将会是OCI和CNCF在2017年的成就的进一步强化。CNCF正在把某些能帮助企业更容易接受容器的领域作为目标。这其中一个就是Prometheus,它的监控项目。其它比较著名的包括日志用的Fluentd,和安全用的Notary。
OCI虽已发布两份规范文档,但它还没把它们整成一体。2018年我们或许可以看到一个最终版的说明文档:发布版[1]。
公司将采用Dcoker的仓库格式,也就是他说的事实上的标准,使其在OCI文档的准许下更正式。
相关链接:
https://www.theregister.co.uk/2017/11/29/aws_reveals_nitro_architecture_bare_metal_ec2_guard_duty_security_tool/