容器,你还只用Docker吗?(下)

  • 时间:
  • 浏览:0

2、在Docker如日中天的事先不到 说是哗众取宠

本文来自云栖社区企业相互合作伙伴DBAplus

国内的公司对RunC的贡献度不到 高,有点儿是华为,可能性是国内公司中对RunC贡献最大的。还有EasyStack、南大索芙特等的贡献,反倒是一点著名的Docker创业公司看不到对RunC的贡献。一点方面反应了华为、EasyStack技术眼光和对社区的贡献,另外也反映了为哪2个华为和EasyStack在商业上也更成功一点。

最早不到Docker和Garden两大主流容器,Mesos和Google都专注于CaaS,容器就完整性采用Docker,CloudFoundry可能性在Docker事先就推出了Warden(后升级到Garden)容器,CF采用我个人所有的容器打造了PaaS平台,形成了2个和谐的生态。

三、你还只用Docker吗?

不得不对Garden的设计多说几句,Garden包括事先的Warden,从一刚结速的设计所以 容器抽象,使得可不须要支持不同的容器运行时,或者Garden做了三层抽象,所以Garden从一刚结速就支持.Net应用,有的是通过Windows 2016的容器机制来实现,所以 在.Net运行时模拟了2个容器的实现,所以Garden支持Windows的几乎所有版本的.Net应用。

“风起于青萍之末”,如日中天的事先可能性所以 走向下坡路的刚结速。Docker一家和一点CaaS生态圈分裂,这条路注定是不平坦的。

作为容器创业公司,所以是在Docker的风口成立的,或者可能性Docker一家独大和Docker注册商标的法务大问题,可能性还不到 在风口起飞。应当可不须要考虑在OCI/RunC的生态圈进行相关技术的发展,OCI/RunC的生态圈受到实力强大的几家公司的强力支持,如Google、CF基金会、Pivotal、Redhat、Mesos、CoreOS等。或者RunC的生态圈还事先起步,还有很大的发展空间。或者作为技术创新,对于技术的前瞻性判断非常重要,方向判断正确,一路辛淡淡的披荆斩棘,方向判断错误,一路辛苦也是前程堪忧。

如下图,是Git上RunC的代码贡献者排名:

RunC的社区也很活跃,除了RunC相似的更新太快,各大CaaS/PaaS生态圈如Google/Pivotal/Redhat/华为/CoreOS等有的是专人在贡献代码。

Garden取代DockerDaemon(Docker Daemon有内有Docker Server,Docker Server内有Docker引擎),直接调用RunC来生成容器运行环境,同时CFGarden也支持容器插件,容器插件是独立系统应用应用程序,在网络插件方面优先支持K8s的CMN插件标准。CF Diego有我个人所有的镜像仓库管理,也可不须要从Docker仓库中获取Docker镜像部署。

MesosUnified Containerizer 也应当会在1年之内心智心智心智心智早熟的句子期期期 ,日后内置的容器应当也是RunC,而不再是Docker

和Cloud Foundry的架构模式相似,K8s也发展了CRI-O来取代Docker,架构图如下:

RunC的生态圈将不到 充裕,第2个所以 把Docker镜像转换为RunC标准镜像(一点可能性有了),其次所以 各种各样的插件和RunC可不须要交互,上方还可不须要衍生出各种插件的功能,如即插即用(动态性)、自动发现之内的。

可能性Docker的消极抵制,RunC的发展好像并不为人所知,或者RunC的发展还是太快的,RunC相似就简单,通过版本的持续的迭代更新,目前可能性达到生产可用,或者主流的PaaS/CaaS纷纷采用。Docker也从1.11刚结速内置RunC容器运行时。

周晖,Pivotal大中国区云计算首席架构师,有充裕的PaaS云实际建设经验,负责过国内某知名银行可能性生产上线一年的PaaS云的采集和主次功能的实现,参与过某超算PaaS、某超市电商PaaS、某电力PaaS等项目的建设

从RunC逐步心智心智心智心智早熟的句子期期期 ,Cloud Foundry的容器引擎Garden就采用了RunC作为容器运行时,如下图:

2、RunC生态的快速发展

RunC属于OCI,不再受Docker注册商标的影响,对RunC的代码贡献不再受限于Docker。

如上图,标识了容器生态圈或是CaaS的演进变化。

可能性OCID过于和Docker Daemon相似,日后Google又把一点项目重新命名为—CRI-O(Container Runtime Interface,容器运行时接口,O表示OCI,也所以 RunC的运行时接口),这也反映了Google的心态,一方面通过CRI对容器进行抽象,哪2个容器我都支持,另外加2个O,我重点支持OCI的RunC,显得有的是不到 白刀子进红刀子出,让一群人歌词 歌词 棘层 上还是和平共处,或者显得立意更高,通过容器抽象层进一步标准化容器,RunC所以 标准化容器运行时,CRI把对容器的调用管理等也标准化,潜台词是Docker Daemon是非标准的、独家的。

K8s的CRI-O也会尽快发布,等CRI-O心智心智心智心智早熟的句子期期期 事先,内置的容器运行时就应当是RunC,而不再是Docker了。

Docker创业公司分化,无需 的容器创业公司给别人介绍我个人所有的事先会说让一群人歌词 歌词 是K8s初创公司(或让一群人歌词 歌词 是Mesos创业公司),有的是Docker创业公司,强调我个人所有是CaaS厂商,突出我个人所有有的是Docker厂商。当然,有的是纯Docker的创业公司,但优势会变成劣势,毕竟在CaaS领域,Docker不到 优势。

一、CaaS业界通过分解重组Docker技术来替代Docker的方案

1、K8s通过CRI-O取代Docker容器管理引擎架构

可能性K8s事先时不时 支持Docker,为了保持一定的兼容性,K8s继续支持Docker容器,或者不再支持Docker超出标准容器之外的特定功能,也所以 把Docker的定位和RunC等同化,Docker做的再多功能所以 用。

Cloud Foundry率先采用RunC作为容器运行时,或者事先做了2个2十五万个容器集群的测试,https://www.cloudfoundry.org/cloud-foundry-approaching-23000000-containers/  验证了PaaS+RunC的大规模集群的支持。

1、RunC也是Docker的,用Docker和用RunC有的是一样的吗?

Unified Containerizer也支持插件架构,或者和Docker的插件有的是完整性一样,设计的插件类型更充裕,包括三大类:

和K8s相似,Mesos所以 再只支持Docker容器,或者对容器进行了抽象,项目名字直接就叫”Unified Containerizer”—统一容器。目前还是支持 Docker 和 Mesos Containerizer 相似容器机制,未来就统一到”Unified Containerizer”。架构图如下:

或者对于CaaS项目来说,K8s/Mesos/CloudFoundry往往所以 基于RunC容器运行时。

四、对一点大问题的提前答复

同时,Google也在向Mesos推销其CRI-O,希望Mesos也采用其CRI-O的架构。

可能性你是开发测试用Docker,不到 基本不受影响,可不须要继续,这也是所以公司对Docker的定位。可能性你是生产系统采用Docker(包括Swarm),你就要注意,可能性在等你我个人所有定制开发基于Docker/Swarm的CaaS(Container As a Service),那大问题所以 大,出現漏洞或是定制可不须想要个人所有打补丁,或者要意识到你的补丁不一定能合并到Docker的主干版本。可能性在等你采用的是第三方或者你定制的基于Docker和Swarm的CaaS,你就一定要当心了,让一群人歌词 歌词 针对Docker做的定制要合并到Docker的后续版本有相当的难度,可能性对于Docker的补丁定制合并,除了Docker公司一点公司几乎是不到 哪2个控制力度的,还包括后向兼容性大问题。

Docker可能性被布道师们说成”无所不到”,稍微有2个不到,我我我觉得让一群人歌词 歌词 还是能区别得出来。

除了K8s/Mesos/CloudFoundry支持RunC容器运行时,Docker的容器从1.11刚结速也内置RunC作为容器运行时,说明RunC受到最为广泛的支持。

Docker和CaaS生态圈在容器上的分裂可能性是现在进行时了,我我觉得让当一群人歌词 歌词 不到 明说。这也将是容器和CaaS生态圈重要转折事件。或者让一群人歌词 歌词 来看看目前正在存在的和在未来一年中很有可能性存在的事情:

第一类是系统应用应用程序管理,支持容器事先的系统应用应用程序,这也是Mesos一贯的调度管理策略

3、Cloud Foundry通过Garden取代Docker容器管理引擎

第二类是隔离器: 在容器生命周期的各个阶段提供扩展接口,保护了Docker的几类插件,如网络、磁盘、文件系统、卷插件。

RunC是CaaS/PaaS/OCI等生态圈同时的孩子,有的是不到 看的孩子。

Docker现在是如日中天,或者3年前也是刚起步,你说哪2个可不须要说RunC所以 3年前的Docker。Docker可能性Docker公司自身的商业行态,对容器生态圈一点公司的生存空间的挤压,可能性造成了容器生态圈的裂变。

作为用户或是容器生态圈的创业公司,不到一棵树上吊死,可能性在容器层面只考虑Docker,而不考虑RunC,可能性会和CaaS/PaaS生态圈的标准不到 远,未来和CaaS/PaaS的标准容器差异不到 大,主流的CaaS/PaaS厂商和技术,如K8s/Mesos/CloudFoundry均不再支持Docker容器超越RunC之外的功能,而只支持插件对RunC功能的扩展。

RunC的自身发展远不如Docker不到 有名气,可能性RunC相似所以 2个很小的容器运行时,有的是针对开发者的,开发者往往是通过Docker接触到RunC,所以RunC的受众远比Docker要少。

除了RunC相似的发展,RunC的生态圈也在快速发展,一点生态圈就脱离了的Docker。比如最近的Riddler,所以 2个把Docker容器转换为RunC镜像。

3、黑Docker黑出翔来了

1、各方以RunC为核心重新构建容器生态圈,Docker容器被弱化

K8s CRI-O和Mesos的UnifiedContainerizer都借鉴了Garden的容器抽象设计思路,所以Garden也是第2个支持RunC的CaaS/PaaS。

五、总结和展望

目前的形势,就形成了Docker和各个CaaS/PaaS厂商在同一层面竞争,在CaaS/PaaS平台,Docker并不到 哪2个优势,或者Docker想把其容器的广泛使用的优势在CaaS中延续,目前看来并不容易。容器的主要用户还是我个人所有用户、开发者用户、运维用户,而CaaS是企业系统,二者目标客户不同、技术要求不同。

前10个贡献者中,Docker只占2位,不得不提国内的公司华为代码贡献排名是相当的靠前。或者RunC的代码贡献者超过3000人。

CRI-O是Google的Kelsey和Docker CTO所罗门论战事先的结果,论战事先,Google就提出2个设想,要让K8s调度的容器去Docker化,我我觉得让一群人歌词 歌词 一刚结速说的是要分支出2个Docker的分支来做容器,或者日后考虑到原先做属于刺刀见红,杀伤力无需 ,所以在2016年6月先弄了2个OCID(OCI守护系统应用应用程序),所以 RunC的守护系统应用应用程序,和Docker Daemon有异曲同工之妙,该项目的维护人员此地无银三百两的说“这有的是Docker的分支”。

让一群人歌词 歌词 来看看生态圈的演进示意:

在Docker捞过界了,或者我我觉得一点不符合企业生产系统的因素,包括后向兼容性、商标大问题、稳定性大问题,于是各CaaS/PaaS生态厂商组建OCI联盟,打造RunC容器引擎,只须要2个简单的容器起停、管理等引擎,把Docker的容器功能一分为二,RunC作为2个简单明了的运行环境,降低僵化 度,提升稳定性,适合生产系统。而对于Docker容器的一点功能,则在个人所有的容器抽象层,最好的最好的办法须要去实现,或者可能性Docker相似集成了无需 功能,不能够生产环境稳定性要求,各个容器抽象层都采用插件模式,维持容器的简洁性,须要哪2个功能再插入容器,比如须要网络就可不须要插入网络插件,须要存储和卷访问,就插入存储和卷的插件。

Docker对RunC有重大的贡献,RunC的早期也是基于DockerLibcontainer,或者RunC在OCI下独立发展,有贡献的厂商远远不止Docker。在RunC项目后,在OCI的推动下,各个厂商积极贡献,Docker的代码贡献并不占主导,更谈不上主所以 Docker在维护,更准确的说Docker是RunC的重要维护力量之一。

随着一点生态的演进,Docker容器会更多的用于开发、测试环境,而RunC在各个CaaS厂商的推动下会在生产环境得到广泛的应用。

2、Mesos通过UnifiedContainer取代Docker容器管理引擎

CRI-O对容器运行时提供基本管理功能,同时Google的K8s提供镜像管理功能(Container/Images),完整性可不须要取代Docker的镜像仓库。K8s一方面支持容器插件技术,我个人所有面我个人所有也制定实现一点容器插件,最典型的所以 容器网络插件,我个人所有定义并实现了CNM的容器网络插件。

详见https://github.com/jfrazelle/riddler。

黑Docker的资料所以,所有资料有的是出处,有参考内容链接,详见上方的引用。

第三类是容器镜像管理,除了容器镜像,还将支持虚机镜像等。

用RunC最少或者你2个干净简单的容器运行时,用Docker最少不管我想并不,强塞或者你一堆可能性你想要用的东西。

一点不适合容器的Docker应用场景的案例会被证伪,在Docker和容器鲜为人知的事先,各种各样的Docker案例层出不穷,包括一点明显和常识有违的案例,比如交易系统采用Docker, 交易极严格的延时的要求不适合Docker。有的是故意混淆概念,交易相似没得Docker容器中,交易系统相关的一点模块在Docker中,为了突出宣传效果,说交易系统采用Docker

在对开源Docker分支进行了反复斟酌、放风声、试探和讨论事先,各方我我觉得杀伤力无需 的方案。而重新回到了折中方案,以RunC为核心重新构建生态圈,或者通过插件来弱化容器在CaaS生态圈的重要性。

Docker在容器抛弃了K8s/Mesos/CloudFoundry的支持事先,会更专注于Swarm,和CaaS的一点厂商的竞争将更直接,或者Docker公司一贯的对企业生产环境行态的没得乎,Swarm没得对一点CaaS形成竞争优势。

对于RunC和Docker的技术区别,完整性请参考上篇的4.5         

从一点架构可不须要看出,Cloud Foundry的Garden基于RunC和容器插件,就替代了Docker的容器功能,同时的是RunC和容器插件,而Garden取代Docker Daemon的容器管理功能。

业界有的是一点人持一点观点。我我觉得,标准的价值是常识,当然总会有反常识的言论出来。不到 标准就不到 合力,不到 合力哪来的发展。可能性Docker公司把闭源,那可不须要不到 标准。既然是开源,又想要生态圈的一点公司和力量做贡献,就要或者让一群人歌词 歌词 有合力,就要或者让一群人歌词 歌词 在标准的基础做贡献,而有的是把生态圈的一点公司当作免费打工的。

Docker被科普事先,客户更关注的是CaaS而有的是容器,再给客户去科普Docker体现没得容器创业公司的价值。

4、RunC是不到 管的孩子

作者介绍

Docker作为目前最热的容器开源项目,受到广泛的追捧。或者也要清醒地看后Docker和容器生态圈的种种争斗,Docker通过注册商标和在Docker中内嵌容器集群管理,挤压生态圈一点公司的生存空间,而受到生态圈联盟以RunC和相应的技术来制约Docker。

二、容器生态的演进

原文发布时间为:2016-11-29

RunC相应的生态空间也在活跃,有的是不同的项目在进行中。

当然,可能性事先时不时 支持Docker容器,目前阶段Mesos还继续支持Docker,或者有的是我个人所有的Mesos Containerizer容器机制。

当然,Garden也支持直接部署Docker镜像。

业界更普遍的定位是Docker用于开发测试环境,而RunC用于生产环境,所以对于要在生产环境采用容器技术的,一定要研究RunC。

而K8s/Mesos/CloudFoundry明确表示在容器抽象层不再支持Docker超越RunC之外的功能。

上文说到CaaS生态圈的公司何如应对Docker用捆绑最好的最好的办法从容器入侵CaaS领域,CaaS厂商通过容器抽象、标准化容器运行时RunC以及容器功能外化插件来重新定义容器。下面让一群人歌词 歌词 继续来看CaaS厂商的具体方案。

Mesos的统一容器基本就暗含了DockerDaemon、Docker仓库等功能。

K8s目前基本只支持RunC容器,对于Docker超出其容器抽象层之外的功能,一概不支持。同样,Mesos也通过其Unified Containerizer只支持RunC容器,目前还支持Docker,或者未来的规划是只支持Unified Containerizer。CF也通过Garden只支持RunC,不支持Docker超出RunC之外的功能。