Rancher创始人谈Docker,创新愈发困难,未来将何去何从?

导读:本文由Rancher Labs CEO及联合创始人梁胜博士在参加DockerCon之前和之后写的两篇文章综合整理而成。从各家容器编排方案均很不成熟的初期到三足鼎立的编排之战,到如今kubernetes似已全面胜利,梁胜博士作为整个发展历程的参与者与见证者,回顾这几年容器领域发展和Rancher的发展与选择,分享了他的一些看法。

Docker近日宣布支持Kubetnetes,拥抱昔日对手,让业界大为震惊。其实,这一点在回溯过去时就早有苗头。纵观Docker在编排领域的发展之路,大概这一决定是历史的必然。这篇文章或许能从另一种视角带你看看这个业界目前最热议的话题。

目前Docker技术得到了广泛应用,在大量需求的驱动下,我们创造了Rancher,在过去三年DockerCon上,Rancher都得到了很多来自用户的热情欢迎和积极反响。

DockerCon的特别之处不仅在于它将主要行业玩家全都召集到了一块,更是因为DockerCon是为数不多的、参会者中用户数量远超供应商数量的技术大会。能够一下子遇到这么多用户,无论是参会还是赞助都十分值得。和我们的用户交谈,听取他们的想法,这激励并启发着我们更好地改进Rancher产品。

Docker的技术革新正处于关键期,最近我们发布了Rancher 2.0 Tech Preview,该版本中我们把Rancher从基于Docker的产品转变成基于Kubernetes的产品。虽然Docker作为一个应用程序打包和运行的标准取得了极大成功,而Kubernetes在容器基础设施、编排和生态系统方面都已经超过了Docker,这也是我们选择Kubernetes的原因。

容器基础设施

基础设施所涵盖的范围不仅只是打包和运行,它还包括存储、网络、负载均衡和安全。三年前,当我们刚开始研发Rancher时,我们认为Docker将会给容器网络和存储定义行业提供标准插件接口。尽管Docker和其他诸如SocketPlane(后被Docker收购)、Weveworks和ClusterHQ等早期先驱做了许多出色的工作,并且还得到了如思科、EMC和NetApp等行业领导者的大量支持,然而Docker接口,像libnetwork、容器网络模型(CNM)和Docker volume插件还是没能成为可行的标准。我们在Rancher中仍然在CNM和Docker volume插件方面做努力,不过还是遇到了难以逾越的挑战:

1、我们还没有实现让CNM在Docker的内置网络实现之外工作。比如,现在还不能创建一个脱离Swarm Mode的CNM实现。

2、我们没法让Rancher上的Docker volume插件在Docker守护进程下保持可靠性。我记得有一个极具挑战性的issue,#18504,它导致Docker守护进程会不时地锁住。暂时还不能解决它,也还没找到解决方案。

在Rancher 1.2(2016年12月发布)中,通过切换到Kubernetes容器网络接口(CNI)和Kubernetes Flexvolume存储框架,我们已经解决了这些问题。因为Rancher2.0是基于Kubernetes的,任何与Kubernetes集成的网络、存储、负载均衡和安全性方案都可以在Rancher上开箱即用。

容器编排

我们为Rancher开发了名为Cattle的容器编排器来填补Docker Swarm早期缺失的一些功能,包括服务发现、DNS、服务升级和负载均衡器,希望当Swarm更加完善之后,能够最终替代Cattle。

然而,在2016年3月Rancher 1.0发布时,Swarm还没准备好。那个时候Kubernetes还未成熟,容器编排的未来也不是很明朗。因此我们决定,Rancher 1.0要同时支持多编排器:Cattle、Swarm、Kubernetes和Mesos。这样一来,用户便不会受限于某个特定的容器编排器,且Rancher的用户都十分喜欢这一设计。

2016年6月时,Docker公布了Swarm Mode,我们都很为此而激动。Swarm Mode提供了早期Docker Swarm中缺少的许多功能,并且非常接近于Cattle所做的工作。于是我们很快在Rancher中添加了Swarm Mode的支持。

可是直到2017年初,Swarm Mode都没有得到重视。或许是早期的Swarm Mode实现上存在质量问题,也可能是Kubernetes的发展已经遥遥领先。绝大数Rancher用户都在使用Cattle和Kubernetes。

Rancher 2.0建立在行业标准Kubernetes之上。Cattle不会消失——它将成为一种内置的Rancher体验,我们也会持续改进它。通过2.0,我们提供了简单的基于Kubernetes的Docker和Docker Compose用户体验。任何对Docker有基本了解的人都可以快速上手,等用户熟练掌握之后还能体验到更进阶的原生Kubernetes体验。

容器生态系统

DockerCon Europe汇聚了大量响当当的赞助商,也无疑吸引了越来越多的Docker用户。我一直从DockerHub上寻找最新的用户数据作为Docker增长的基准。在2017年4月的DockerCon Austin上,这个数字是120亿,并且在那之后还在增长。

构成Kubernetes生态系统的公司其实差不多,不过参与模式却完全不同。大多数的生态系统合作伙伴像我们一样,认为Docker是一种成熟的技术,且拥有大量的用户。而Kubernetes生态系统更加活跃,因为在这一生态系统中有很多积极的发展、创新和整合。

Docker将何去何从?

早在2016年的12月份,我就曾注意到Docker之父、Docker公司CTO Solomon Hykes在他的一篇blog中,将Docker的定位放在了和OpenShift(以及Rancher 2.0)同样的层级,这层级是位于Kubernetes之上的。看来从那时起,Docker就已计划构建一个全新的、基于Kubernetes之上的Docker产品了?

图片描述
在DockerCon EU上,我遇见的DockerCon的用户、供应商以及Dokcer公司的员工都给我留下了非常友好和亲切的印象,与他们的交流也让我收获了很多。毫无疑问,这是一次组织充分的大会,对我而言也是一段有趣的经历。

在启程参加大会之前,我曾对Docker公司的未来计划与发展走向提出了一些疑问。而这次大会上,Docker之父、Docker公司CTO Solomon Hykes在他在keynote中的分享正好解答了我上面说的这些问题,这也毋庸置疑成为了演讲中引起业界震动的焦点——Docker决定拥抱Kubernetes,而这也是此次DockerCon上最重磅的新闻。

押宝“现代化传统应用”项目MTA

然而,除此之外,如果说Docker公司还有一个动态就是他们非常希望参会者及业界知晓的,那一定是“现代化传统应用”项目(MTA,Modernize Traditional Applications)。MTA的想法很简单,将传统的Windows或Linux应用程序打包成Docker容器,然后将应用部署到现代云基础架构上并且实现一些资源节约。大会花了三场keynote(整整一天半的时间)来介绍MTA,Docker似乎把整个业务都押在这单一价值主张上了。

然而令我惊讶的是,MTA居然是DockerCon中唯一聚焦的业务案例。DockerCon的参会者和我说,他们期望Docker能够描绘出一个更加完整的Docker商业机会的愿景和版图。然而MTA并没有吸引到大多数参会者,即使是我遇到的一些企业嘉宾也有比MTA更大的计划。其实我更希望Docker能够花更多的时间来加强容器在改变应用程序开发方面上传递的价值,因为在我看来这是一个更大的商业机遇,不过有点可惜,Docker似乎并没有这么做。

Docker技术是一种应用打包的方式,它也是Docker公司从创立之初便开始的实践,MTA便是建立在Docker这一最基础的功能之上。但是Docker EE究竟有哪些具体的功能,能够使得MTA工作得比以前更好?为什么Docker要专门为MTA提供解决方案?客户还需要哪些工具来完成他们的MTA之旅?关于MTA的keynote并没有解答以上这些疑问。(事实上,我相信大家还有更多未得到解答的疑问。)

几点遗憾的地方

另外让我感到遗憾的一点是,除了宣布支持Kubernetes外,Docker再没发布什么和Swarm相关的动态和信息了。Rancher Labs作为Docker生态系统的合作伙伴,在这一情境下,我个人深感在基于Docker技术组件上实现创新愈发困难。我至今记得曾经Docker发布一个又一个杰出的、创新的技术与产品的日子,像Docker Machine、Docker Swarm、Docker Compose、Docker network以及volume插件等等。那时的我们,在Docker发布这些新的创新之后,便会马不停蹄地开始投入相应的工作。时至今日,在容器技术领域依然有许多创新,只不过这些创新大多发生在Kubernetes以及CNCF生态系统中了。

我真心地希望,在整合Kubernetes之后,Docker能够回到过去的状态,为业界带来更多的技术创新。我依然认为很少有公司像Docker这样,既具有出色的创新能力,又专注于产品的可用性。我很期待Docker在下一次DockerCon的表现。

Rancher at DockerCon

Rancher Labs全新发布的新产品Rancher 2.0,一方面,把Rancher 提供的Kubernetes分发版的用户体验,从原生的Kubernetes UI修改到被全球客户广泛接受的Rancher UI,解决了业界遗留已久的Kubernetes原生UI易用性差的问题。另一方面,在产品中增加了可以纳管其他厂商提供的Kubernetes分发版功能,如Ubuntu Kubernetes、Dell EMC Kubernetes、Google GKE等等,从而具备了同时管理多个Kubernetes集群的能力。

图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525799.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ld 指令c语言实现,C语言符号、指令表.doc

C语言符号、指令表.docC语语语 言言言 符符符 号号号 控控控 制制制 命命命 令令令 表表表 编译指令 编译指令 说明 i n c l u d e 包含另一个文件 d e f i n e 定义一个宏( m a c r o)或是常量 u n d e f 取消一个宏常量的定义 a s m 和 e n d a s m 在程序中加入汇编语言的程…

400位京东技术专家心血之作 《决战618:探秘京东技术取胜之道》重磅发售!

6.18始于京东的店庆日,现在早已演变成为全民参与的网购狂欢节。2017年6月18日24点,当京东总部的指挥中心大屏定格在“当前累计下单金额1199亿元”时,欢呼声、掌声响彻整个作战指挥室。在成绩背后,是京东强大的技术硬实力&#xff…

c语言创建一个顺序表主函数,用C语言来创建一个顺序表(数据结构部分)

顺序表的创建需要用到结构体,构造一个结构体来存储数据,顺序表申请的内存是连续的。创建顺序表的思路按照数据的“增删改查来进行编写”下列是顺序表的创建代码创建头文件:sqlist.h#ifndef SQLIST_H#define SQLIST_H#define N 100#define min…

XSS常见攻击与防御

本文获得作者授权刊发,更多信息请关注作者专栏。 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意…

关于c语言的符号常量以下叙述中正确的是,关于C语言的符号常量,以下叙述中正确的是( )...

关于对起的是下列械布重机置的正确认识。标准运用征税国家公布,符号治权征的家凭借政力开税收是国。常量包括专利权的程序授予。现左膝关痛节肿,下叙化验快R增,性A阴,女性,能的最可诊断是,多发口腔溃疡年来…

创业公司的容器化之路

作者简介: 章烨明,杏仁医生CTO。中年程序员,关注各种技术和团队管理。本文首发杏仁医生技术站 1. 创业公司的技术挑战 托尔斯泰说:“幸福的家庭都是相同的,不幸的家庭各有各的不幸。”互联网创业公司也一样。大部分互…

周围剃光头顶留长发型_发型改变气质,这话放在石原里美身上也通用啊

上周,石原里美的新剧《天国餐馆》开播啦。你们有在追吗?她新剧里的发型争议还蛮大。她在剧里演一个法国餐厅老板黑须假名子,非常多这种大背头造型。很多网友觉得不适合她,有点老气。▼这个大背头发型也是角色需要啦,是…

单片机模数转换实验c语言程序,单片机实验AD转换实验

《单片机实验AD转换实验》由会员分享,可在线阅读,更多相关《单片机实验AD转换实验(5页珍藏版)》请在人人文库网上搜索。1、实验报告课程名称: 单片机原理及应用 实验项目: A/D转换实验 专业班级: 姓 名: 学…

ServiceComb中的数据最终一致性方案

本文由华为微服务引擎技术团队&&ServiceComb社区授权发布。 数据一致性是构建业务系统需要考虑的重要问题 , 以往我们是依靠数据库来保证数据的一致性。但是在微服务架构以及分布式环境下实现数据一致性是一个很有挑战的的问题。ServiceComb作为开源的微服务…

Rabbitmq延迟队列和惰性队列

延迟队列 当一个队列中的消息满足下列情况之一,可以成为死信: (1)消费者使用basic.reject或basic.nack声明消费失败,并且消息的requeue参数设置为false (2)消息是一个过期消息,超时…

laydate点击输入框闪一下不见了_爱剪辑:如何制作抖音、苹果风格的快闪视频...

不知道大家有没有看过iPhone的宣传片,视频开头有几十秒的快闪字幕,当时视频一出来就有很多剪刀手求教程,因为这个效果不仅酷炫,用途还很广,可以用于:日常生活介绍、产品介绍、搞笑段子......今天就来教大家…

c语言学习与应用 北京邮电大学出版社,《C语言程序设计与应用》低价购书_计算机与互联网_孔网...

c语言是一种简洁高效的编程语言,目前大多数高等院校把它作为学习程序设计的入门语言。本书针对程序设计的初学者,由浅入深、通俗易懂地介绍c语言。本书主要内容包括c语言概述、数据类型和表达式、程序控制结构、数组、函数、高级变量类型与宏定义、文件共…

C++和Lua交互教程(基于LuaBridge)

作者:查志旺 ,向日葵远程控制软件前端开发工程师。 最近公司需要做向日葵远程控制软件跨平台项目,为了代码的可复用性,需嵌入跨平台脚本语言,我们选择了Lua,理由是Lua由标准C编写而成,几乎在所有…

c语言100000阶乘,求10000的阶乘(c语言代码实现)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼/*程序功能:计算一个正整数n的阶乘,目前最大能运算10000的阶乘,可秒杀。程序意义:加强自己对于大数的处理。说明:此程序对乘法和除法还未做任何优化,如果用上位…

ogg批量配置_最简单OGG配置方式

ogg一般来说有4个进程,Manager进程,Extract进程,Pump进程,Replicat进程Manager进程:是GoldenGate的控制进程,它主要作用有以下几个方面:启动、监控、重启GoldenGate的其他进程,报告错…

与Serverless 的第一次亲密接触

Servrless概念 Serverless 是一个架构上的概念,从字面上理解就是无服务器架构。Serverless最初是用于描述依赖第三方服务实现对逻辑和状态进行管理的应用,典型的例子是单页 Web 和移动 App 这种富客户端应用,他们一般都使用基于云端的数据库…

eclipse把tomcant用到一个项目里_聊一个镜头工艺里容易被忽略,但很重要的项目...

在不改换门庭的情况下,一颗镜头一般都会伴随大家使用很长一段时间,也相信大多数人都遇到过剐蹭镜头前组的情况,这时候最容易引发的担忧就是“伤着镀膜了么?会不会影响成像效果?”其实换个角度来看,这个问题…

c语言中词法分析怎么识别注释,C语言中的词法分析-如何在检测多行注释时使星号被读取并输出?...

我正在研究词法分析程序,检测到一行注释时一切正常。 这是我的单行注释检测代码。//Single Commentif ((Current_Character /) && (fgetc(File_Input) /)){printf("%c", Current_Character);do{printf ("%c", Current_Character);Cur…

Java性能调优的11个实用技巧

大多数开发人员认为性能优化是个比较复杂的问题,需要大量的经验和知识。是的,这并不没有错。诚然,优化应用程序以获得最好的性能并不是一件容易的事情,但这并不意味着你在没有获得这些经验和知识之前就不能做任何事。下面有几个很…

华为手机怎么看图片属性_华为手机怎么才能息屏显示时间?操作方法很简单,看完涨知识了...

现如今大家几乎都是手机不离身,甚至有些朋友机不离手。所以已经比较少人,会因为看时间而佩戴手表了,毕竟只要按下电源键就可以看时间了。其实现在的很多手机,不用亮屏也能看时间,下面我们就一起来看看是如何设置的吧。…