数人云王璞:我们最后会达到容器定义的世界

5月18日,由中国电子学会主办,ZD至顶网协办的第八届中国云计算大会在北京国家会议中心举办,数人云CEO王璞针对中美容器的融合与变革发表了心得和演说。他表示:“随着容器技术的发展,下一步就不仅仅是软件定义世界了,我们最后会达到容器定义的世界。”

ZD至顶网CIO与应用频道 05月18日 北京消息(文/齐丰润): 5月18日,由中国电子学会主办,ZD至顶网协办的第八届中国云计算大会在北京国家会议中心举办,数人云CEO王璞针对中美容器的融合与变革发表了心得和演说。

数人云王璞:

王璞表示:“随着容器技术如火如荼的发展和推广,下一步就不仅仅是软件定义世界了,我们最后会达到容器定义的世界,所有的软件都是以容器形式交付运行的。”

以下是王璞演讲实录:(以下内容根据现场速记整理,未经发言嘉宾确认,仅供参考,谢绝转载。)

大家好,我是王璞,是数人云创始人兼CEO,很高兴今天来到云计算大会的现场给大家做一个演讲。我主要跟大家讲中美容器融合与变革。我刚才看了云计算大会的章程,明天很多分论坛都会有大概好几个演讲都是跟容器相关的,所以我今天跟大家简单介绍一下容器在中美这方面是怎么发展?又怎么融合的?

首先我科普一点什么是容器技术?容器技术其实本身并不是什么崭新的技术,容器技术大家经常跟虚拟化技术比较。容器有一个通俗讲法容器是极度轻量的虚拟机。怎么理解大家看这个图,左边是虚拟机,下面是操作系统装上虚拟机然后装管理操作软件,生成很多虚拟机,然后虚拟机再装操作系统再装各种各样的应用。右边是对比容器架构图,下面是物理服务器装一个操作系统,容器基于的操作系统是Linux操作系统,然后下面装一个容器软件装一个Docker技术,我们生成各种各样的容器,容器里面不需要再装一次操作系统里,里面装各种各样的应用就好了。这两张图对比大家看出来容器比虚拟机更大优势就是轻量很多,里面不需要再装一遍操作系统。容器里面的应用和容器外面的操作系统是共享的。比如说Linux内核等等这些,这个容器本身的理念是非常非常简单的。

容器技术本身并不是崭新的,倒推到2000年,2005年出现的Solars containers这些都是早期的容器。这是Docker技术的简单介绍,Docker属于容器技术,基于容器做了一些革新,容器有静像概念,容器镜像和虚拟机镜像不一样特点就是容器的镜像是分层的,最下面是基础的镜像是Linux环境,上面一层一层镜像装不同软件,容器这么做最大好处就是应用分发很方便,我应用更新我基础环境没有更新,应用只有本身程序更新了,我只要更新相应的镜像最上一层就可以了。这样做到对应用镜像增量分发这是容器非常好的特点。容器和应用绑得很近,容器里面是各种各样的应用程序。从容器延展出来容器本身管理各种各样的应用,容器之外还有各种各样的管理需求。我把技术站延伸出来,这是中间下面的部分,这是两个容器的示意,有物理服务器上面装操作系统,装上Docker,有了容器运行时的环境,容器里面各种各样的应用分装,容器是应用管理本身,应用还有其他需求,对网络需求,对容器集群的需求,服务发现、负载均衡需求,这些需求本身是Docker技术无法满足的,还需要周边相应的技术。这个容器技术站慢慢演化成一个PaaS的环境了。

这是美国的容器技术相关的生态圈,大家看到很多各种各样的厂商大概我估计近百家厂商都已经闯入美国这边容器的生态圈。我特别想画出一张Docker技术中国生态圈,很遗憾我们画不出这样非常丰富Docker的中国生态圈,但是我相信未来两三年时间内我们也能画出非常丰富的Docker关于中国的生态圈。

云计算分为三层,SaaS、PaaS、IaaS,这三层随着云计算发展得到不同程度的发展,比如说SaaS的发展,由于各行各业的互联网相关业务发展,SaaS以服务为中心,SaaS提供各种各样的服务,各种互联网业务型的,HR、财务、CRM等等,这些不同的服务,企业应用的服务都可以以SaaS方式交付这些都有弹性特征。另外一方面云计算发展以后对于大规模数据中心的需求越来越旺盛,数据中心规模越来越大,数据中心相对管理负责度也增加很多,跟数据中心相关就是IaaS和PaaS,数据中心是云计算云端真正计算的载体。比如说IaaS以资源为中心,IaaS要提供资源弹性,数据中心里面IaaS管理整个数据中心资源,让整个资源以弹性方式提供出来。PaaS在数据中心以应用为中心,PaaS提供应用的弹性,这是云计算三层它都得到不同程度的发展。但是跟IaaS和SaaS相比PaaS发展其实是相对滞后的。比如说上一代PaaS没有解决好本身复杂度的问题,后面我简单介绍一下。

2014年前后上一代paaS基本上是市场的最低点,我2014年回国跟国内同行讨论我们如何做一个PaaS,PaaS有没有前景,2014年国内同行都对PaaS持怀疑的态度,Docker2013年在美国诞生的,Docker出来以后催生新一代的PaaS,很重要一点Docker出来以后形成事实上应用交付的标准,未来大家普遍这样认为,未来企业级应用都会以容器Docker的形式进行交付。这样很好的一点Docker定义了企业级客户和PaaS之间的一个边界,这个边界怎么理解?就是企业只需要关心自己的业务应用、业务程序,企业业务程序分装在容器里面,PaaS只需要提供标准的容器运行环境,有了清晰边界以后PaaS复杂度大大降低,PaaS作为一个标准,之前没有容器的时候PaaS和企业客户之间边界在哪里?边界在于程序编程语言这个层面,比如说Heroku等需要支持各样的开发语言,上一代的PaaS复杂度非常高,新一代的PaaS由于Docker定义一个标准,新一代PaaS可以不用管业务应用拿java还是其他语言写的,解决Docker运行所需要的CPU、网络、负载均衡、报警等常见的企业内部的需求,这样新一代PaaS复杂度大大降低,这个也就是我说为什么Docker出现催生了新一代的PaaS。

很重要一点中国和美国在新一代PaaS发展方向是齐头并进的。 

这张图我列一下新一代PaaS在中美两国落地的情况,左上角是新一代PaaS在美国落地的情况,右下角是新一代PaaS在国内落地的情况。基本上大家可以看出来新一代PaaS落地从互联网公司到IT巨头到传统行业都有各种各样的落地。落地的这些企业并不是所有我只是挑一些有代表性的,从有代表性落地企业来看国内和美国其实几乎处在同一个起跑线上。

讲到PaaS不得不讲一下谷歌的PaaS,其中一个原因有很大影响力,尤其是谷歌内部的PaaS非常复杂功能无比的强大,我之前在谷歌工作过我对谷歌的PaaS理解比较深刻,我见过谷歌的PaaS怎么运作的。首先几个特点,谷歌内部的PaaS分层的,PaaS管理东西很多,PaaS只管理应用,跟应用相关还有很多东西,资源分配,任务调动等等,谷歌PaaS以一种容器方式分装分发,谷歌有著名的分布式文件系统,还有各种各样数据管理的数据,还有big table Mapreduce,这是谷歌分布式编程的范式,这是PaaS提供的能力。

谷歌PaaS的特点是什么?就是轻量,轻量怎么理解?PaaS支撑应用快速迭代快速上线,大家提的持续交付持续集成的概念。谷歌PaaS是以应用为中心的,PaaS平台一定提供应用弹性能力,让各种各样应用按需使用资源,PaaS平台提供容错能力把成本降低,这三点我称之为应用PaaS平台的弹性。

再一点谷歌内部的PaaS非常强大,谷歌资源管理和任务调动数据,可以管理谷歌两百多台服务器统一进行管理。为了长大家更深刻的理解,我找了一张谷歌数据的照片,这是谷歌数据中心照片的一角,很机柜的机会,每个机柜里面服务器,一个机柜有至少20台服务器左右。这张照片我想强调一点是什么?这么大规模的数据中心其实硬件故障频率很高的,这张图是我从谷歌一个数据中心报告上PPT摘下来的,就是说一个谷歌新建的数据中心平均下来一年要发生这么多各种各样的故障。举个例子第一个故障一年大概有半次左右过热,一年有一次的供电单元有故障。一年至少有一个机架做挪动,至少有一次机架进行排线,一年可能有12次路由器重启,3次路由器故障,每年大概有一千次左右硬件,一千台左右的服务和宕机,这是硬件造成的。一年有数千次的硬盘损坏,这个故障大家看出来大规模数据中心里面硬件故障频发的这些硬件基于X86PC级的硬件,并不是大型机小型机高可用昂贵的硬件。基于X86的硬件中心怎么应对这些硬件故障,保障应用服务高可靠,这是PaaS和IaaS一起要做的工作。

这里面我主要把新一代PaaS的特性给它勾勒了出来,跟谷歌的PaaS有相似的地方,新一代PaaS基于微服务理念打造的,特别是像谷歌的PaaS分层管理。新一代PaaS也有轻量的特性,介绍谷歌PaaS的轻量特性,应用要具有弹性要分布发布,再一个容错强易于维护,PaaS也要对底层故障进行容错。这里面特别强调一点大规模数据中心或者现在这种数据中心对于硬件管理方式有两种,一种上一代的宠物型管理方式,另外是放养型的。对于宠物型的数据中心管理方式其实是很常见的,比如说对于数据库服务器,一般企业里面数据库服务器绝对不允许宕机,数据库宕机所有应用全部宕了,所以要有人为维护,DBA,人围机器去转,这是宠物型对数据中心的管理,一旦数据库宕机人马上去修。

另外是放养型跟宠物型相反,放养型什么意思?比如说谷歌这样的量级中心,两百万太服务器不可能保证每一台服务器都是工作状态,一定有一些服务器处于故障状态,硬件随便换,通过软件PaaS平台保证上面应用不宕机,PaaS对于硬件有很强的容错能力,放养型的工作管理必然极大降低对数据中心维护,包括PaaS本身,维护成本运维成本都会大大降低,这是新一代PaaS很重要的特性主要就是轻量。

接下来简单讲一点点我们数人云对于新一代PaaS是怎么实现的?其实最主要就是分层的实现,分层实现这是谷歌提出来的理念,因为我们现在多规模云计算系统,数据中心软硬件系统是IT行业最高科技的结晶。这么多复杂系统拼在一起组成大规模的数据中心,对外提供云计算服务能力,不是一套系统能够全部做下来的,一定是分层实现的。我们实现新一代云计算平台首先有一个是核心模块,核心模块本身也是分好几个层面的,核心模块基本上围绕运行时的基本管理提供比如说容器运行的标准环境,这个核心模块包括几个层面,首先应用的封装用到的是Docker的技术,这是很火的容器技术。光有应用封装不够的,应用封装完应用运行还有别的需求,需要CPU、内存需求等等,资源分配核心模块里面功能我们基于阿帕奇来做的,应用不是运行在一台服务器,大规模数据中心有成百上千台服务器,对于大规模的集群里面应用该怎么调度这是很关键的模块,我们用的是任务调度模块做的。比如说应用分发,涉及到应用的更新上线等等,比如说老版本的应用已经运行了,新版本应用程序我要分发下去,新版本应用我要有一个分发的仓库存在什么地方,这是Docker的镜像仓库用于应用分发。

核心模块还要管理网络,网络我们用的是不同容器应用进行网络进行通信,容器之间网络怎么进行有效管理,我们很多客户提出来不同应用之间的网络要进行应用隔离,有些应用可达有些应用不可达,网络管理我们通过管理。

还有服务发现,容器运行环境在大规模数据中心里面,对于容器调度不是静态调度,不是我一个容器应用就跑到一台服务器上,它是动态角度的,不同应用之间我有通信需求,我应用A怎么找到应用B就需要有应用发现的需求,这是核心模块的基本功能。

周边模块支撑应用运行方便应用运维,周边模块体现出新一代PaaS平台的应用度。

周边模块很重要一块就是持续集成,这是企业客户对于PaaS平台很强需求的一点,因为这些业务应用大家需要快速迭代,这是互联网给大家带来的企业级IT最大的冲击,应用怎么做到快速上线需要持续的集成,开发人员做的新的代码怎么持续集成各种各样的应用而且发布出去。

再一个弹性伸缩这也是互联网带来新业务的特点,互联网业务最大特点就是集中爆发,很经典例子就是淘宝双十一,12306大家订票,弹性伸缩是PaaS平台必须提供的性能,没有弹性面对集中爆发的业务需求这个后台支撑不了,弹性伸缩我们用API实现的。再一个监控报警,任何企业生产环境系统不是鼓励存在的,一定有各种各样的监控报警,生产系统谁也不能保证100%的正常。

再一个日志的处理,这是对于企业很强的需求,生产环境里面各种各样的业务都有,生产环境都是比较大规模集群环境,不同应用产生的日志留在不同的服务器上,怎么把这些日志从分布式不同模式上进行统一收集查询统一处理,需要有日志统一管理,我们主要用的是ELK这个模式。

再一点就是文件存储,企业生产环境数据中心里面业务应用必然有一些数据存下来,就要存在文件系统上,文件存储我们用的是Hadoop的文件系统。在有对于数据的管理,多个应用要对数据同时进行读写操作,对于数据访问管理等等这些我们用的是HDFS。还有不同之间我们有通信的请求就是消息队列,我们用到Kafka,企业消息总线,服务总线都可以拿新一代消息队列替代。还有数据处理,现在企业对于大数据处理有很强的需求,大家用Hadoop还有Spark这些,我们主要用spark做大数据处理更快。

前面介绍一下我们做的新一代PaaS平台的核心模块和周边模块,我简单给大家演示一下我们的程序,这是我们对于应用管理做的,我们做到应用统一管理,各种各样的应用通过这个平台统一的分发部署。再一个集群管理,它的PaaS也要向下管理各个集群的资源。中间有一个红点代表某一台集群主机是异常的,异常没有关系,上面应用把这个平台容错自动迁走迁移到其他地方,一两台主机宕机不影响整个的应用使用。再一个应用管理,散落在不同集群上。跟日志相关的数据统一收集起来方便后台运维人员管理。软件定义世界,这是我们所有做软件的人非常喜欢的一句话,现在大家日常工作生活都跟各种各样的软件在打交道,之前有大家提的随着云计算发展提出的软件定义存储、软件定义计算、软件定义网络等等。再进一步的提法软件定义数据中心。我刚才讲PaaS讲到很多数据中心的概念,说到底我喜欢软件定义世界这句话。

这个背景图其实就是黑客帝国电影的主题图。黑客帝国里边讲的是未来人类生活在虚拟软件定义世界里面。这个软件定义世界正在发生,每个人现在每天都要大量跟各种各样的软家打交道。随着云计算新一代PaaS平台普及,随着容器技术如火如荼的发展和推广,下一步就是不仅仅是软件定义世界了,我们最后会达到容器定义的世界,所有的软件都是以容器形式交付运行的,我这里跟大家说一句话就是欢迎大家来到容器定义的世界,谢谢大家。

(以上内容根据现场速记整理,未经发言嘉宾确认,仅供参考,谢绝转载。)

来源:ZD至顶网CIO与应用频道

0赞

好文章,需要你的鼓励

2016

05/18

17:41

分享

点赞

邮件订阅
白皮书