容器技术百花齐放的时代,都有哪些标准化内容

摘要

本次演讲主要是Container标准化相关的内容,希望通过这场分享能让更多的人了解容器标准化,对容器感兴趣的话可以加入OCI的社区中。

视频内容

Basic Knowledge

容器技术在最近几年都是一个非常热门的话题,目前越来越多的公司都提出基于容器的解决方案。

我个人认为容器是一个系统级轻量化的虚拟化技术。从字面上来说,容器是提供了一个资源隔离的空间。

容器技术和虚拟机技术相比,有一个很明显的天生优势,就是资源的节省。由于没有Guest OS,容器比虚拟机的启动速度更快,同时占用的资源更少。

但是根据我们对容器技术的了解,它并不是一个新技术,它有一个很长的历史。

如图可见,容器技术最早可以追溯到1979年很古老的chroot,但它一直没有像最近几年一样火爆起来。引领这一潮流的原因主要是2013年出现的Docker技术。

Docker为什么带动了容器技术的火爆呢?以前的容器技术并不适合在不同主机、不同平台的迁移,同时使用起来也不是那么方便,而Docker解决了这个问题。

The problem

随着越来越多的公司参与,每个厂商都提出自己的容器技术或容器解决方案,导致像热门的Docker、Rocket/rkt、OpenVZ/Odin以及Hyper都有自己的技术标准,不可避免地就会形成技术壁垒,从而致使整个容器生态看起来是碎片化的。我们的容器标准化就是想解决这一问题。

用户不知道应该通过怎样的标准来衡量哪一个技术厂商提供的容器技术是最好的。因为不同厂商依赖不同的系统和云平台,导致系统会被过度依赖到某一个厂商的云服务,用户想从一个厂商转移到另一个厂商会比较困难。

Goals of container standardization

容器标准化的目标就是要规范化容器技术,引导厂商向同一个方向发展容器技术,同时引导用户选择对自己更有利的容器技术。

OCI Introduction

OCI的全称是Open ContainerInitiative,它是在2015年6月22号发起的一个开源组织,目前在Linux Foundation下面运作。

OCI的主要目的是希望能够提供对容器的运行时或容器的格式提供统一标准,现在大概有47个厂商参与。

OCI社区的主要工作首先是创建一个运行时标准,同时负责接收管理和提高与标准相关的开源的project。

更多的关于OCI的介绍可以去http://www.opencontainers.org上进行了解。

上图是Docker运行一个container的基本流程,可简化为下图的几个概念。

首先是一个容器的运行需要一个bundle,bundle中包含了容器需要的根目录以及容器运行时需要的配置文件。然后通过一个runtime解析config配置文件的内容,挂载根目录生成container来运行配置文件中需要执行的程序。同时为了便于容器在不同的平台或架构上进行兼容性的转移,提出了一个容器image的标准,image和bundle之间能够进行互相转换。

基于image、runtime和bundle的概念,OCI社区目前主要管理以下五个开源项目。

runtime-spec:定义了容器运行所需要的runtime标准以及容器运行时的config配置文件需要哪些内容的标准。

image-spec:负责管理开源的容器镜像的标准。

runc:Runc是基于runtime-spec的一个runtime实现。通过Runc可以创建一个容器,是一个容器的运行工具。

runtime-tools:runtime-tools负责根据runtime-spec的标准来验证bundle是否符合runtime-spec的要求,以及验证runtime是否兼容runtime-spec。

image-tools:image-tools也是一个验证型工具。

Future Plans

对于runtime-spec和image-spec,目前根据社区的脚步,希望v1.0能够尽快发布。

对于runc的主要工作重点是支持cgroups v2的开发,希望完成对runtime-spec要求的一些配置的开发,尽快提升runc的品质。

runtime-tools未来的计划是完成Linuxcgroups配置的验证,完成对runtime validation的改造。还有一个重点就是完成输出的可读性。将来要完成runtime的兼容性工作。

目前image-tools的主要问题就是它的三个功能是分散的,我们想让它的结构像runtime-tools做个统一的阵容改造,同时也希望image-tools像runtime-tools能做跨平台的验证工作。

今天的分享就到这里,谢谢大家!

原文发布于微信公众号 - IT大咖说(itdakashuo)

原文发表时间:2017-12-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Rainbond开源「容器云平台」

每周启用容器达20亿+,谷歌推无服务器架构

1665
来自专栏网络

容器的优势渗透进基于软件的网络

容器是对IT和网络应用程序开发有重大影响的新技术,容器采用的增加改变了基于软件的网络要求,并为服务提供商提供了通过网络功能虚拟化(NFV)实现其虚拟网络的新选择...

2027
来自专栏云计算D1net

开发者应该知道的 OpenStack 背后的设计准则

OpenStack是一种开源产品,得到了一大批志愿者和领薪代码贡献者的支持,它让人们意识到了一种全面审查的架构和一种深思熟虑的设计具有的重要性,这种架构和设计似...

3516
来自专栏大魏分享(微信公众号:david-share)

Red Hat-开源世界的领导者-在做什么?

说明: 笔者根据结合自己的了解和学习,将陆续介绍红帽的解决方案。开始着重于介绍解决方案,后续将针对一些开源项目进行介绍。需要注意的是,本文章不代表任何官方观点。...

3858
来自专栏Flutter入门到实战

老程序员的10条中肯建议

以下十条建议是一个老程序员给出的建议,句句中肯,希望能引起你的思考,而不是笑笑就过去了。觉得在理,不妨随手点赞收藏转发分享,谢谢~

941
来自专栏北京马哥教育

红帽公司发布 OpenStack Platform 5

红帽公司宣布在RHEL上推出OpenStack Platform5,这是基于OpenStack开源云的第三个企业级发行版。该版本不仅开发了一些新功能,针对的用...

26210
来自专栏SDNLAB

容器堆栈须知的八个要素

随着容器发展模式逐渐成为主流,容器堆栈本身也在不断发展。现在,企业看到了容器的价值,开发和业务重点正在从引擎转移到增加更多复杂的功能,以便更直接地获得业务收益。...

3556
来自专栏CSDN技术头条

Docker在Uber服务部署中的应用

无论你如何理解政治,毫无疑问UBER就是创新的代名词,正如它颠覆了传统的交通运输行业在这个分享体系中的领导地位。但是问题在于最快的创新者往往会遇到一些问题,正如...

1965
来自专栏云加头条

腾讯云成全球首批CNCF K8S一致性项目认证成员

在过去的三年中,Kubernetes 已经成为主流的容器调度平台,越来越多的企业组织和开发者开始使用。而 Certified Kubernetes Confor...

2891
来自专栏ArrayZoneYour的专栏

微服务革命:应用,数据的容器化

近几年来,微服务架构和基于容器的虚拟化技术已经越来越多地在软件开发社区中被提及。Adrian Cockcroft就是这方面公认的极有远见者之一,他在2014年欧...

1874

扫码关注云+社区

领取腾讯云代金券