中国联通数据中心总经理王志军在Rancher举办的ECIC大会上的演讲实录,分享了中国联通为什么开始进行平台容器化并如何运用Kubernetes对9000台的服务器数据节点进行最大化利用和合理调度,进而提高了60%的基础资源利用率。node
2019年6月20日,由Rancher Labs(如下简称Rancher)主办的第三届企业容器创新大会(Enterprise Container Innovation Conference, 如下简称ECIC)在北京喜来登大酒店盛大举行。本届ECIC规模宏大,全天共设置了17场主题演讲,吸引了近千名容器技术爱好者参加,超过10000名观众在线上直播平台观看了本次盛会。算法
来自Rancher、阿里云、百度云、平安科技、中国联通、飞贷金融科技、中国人寿、SmartX、华泰保险、厦门航空、JFrog、新东方、Cisco等十多家企业的技术负责人出席了本届ECIC,现场带来关于企业容器项目实践经验的精彩分享,为参会的容器技术爱好者带来企业容器化的经验分享。数据库
大会现场,中国联通数据中心总经理王志军为现场容器爱好者带来了主题为《中国联通容器化大数据云平台探索与实践》 的内容分享。缓存
中国联通是国内三大运营商之一,同时也是国内首批将大数据平台部署在容器云上的企业。关于中国联通在容器化大数据云平台上的发展和探索,王志军分享道:“经过研究、探索和实践,咱们发现Kubernetes+Docker的技术路线更契合联通的实际需求,它几乎支持了全部的容器业务类型,也正是基于联通的技术选型,咱们引入了Rancher的产品部署和Kubernetes集群管理功能,为联通的容器化大数据云平台提供更强而有力的容器技术及容器服务支撑。”安全
如下是中国联通集团数据中心总经理王志军的演讲实录:服务器
你们好,很是感谢Rancher邀请咱们在企业容器创新大会上进行演讲,我今天演讲的题目是《中国联通容器化大数据云平台探索和实践》,内容是中国联通是怎样将大数据和容器化云平台相链接的。网络
建设背景架构
咱们一块儿来简单回顾一下中国联通大数据和云计算的发展历程。大数据和云计算分属于两个不一样的领域,大数据主要关注怎么将数据集中起来,挖掘数据的价值。云计算主要关注怎么更高效地使用资源,提高资源的利用效率。当大数据发展到必定阶段的时候,它就会和云计算不期而遇。框架
在大数据的方面,存在有几个标志性的事件和历程,一是2006年Hadoop的出现,二是2009年CDH发行版的出现,到2012年,大数据出现了新的资源调度管理方式,流式计算技术好比Spark和Flink等。less
云计算的标志性事件是从2006年亚马逊提出EC2开始的,EC2的出现标志着云计算时代的开启,2010年出现了OpenStack,这是咱们在部署私有云中很是普遍使用的一个技术,2013年是Docker的元年,让容器技术风靡了云计算领域。2014年Kubernetes的出现则将Container as a Service变成了被业界普遍接受的全新理念。大量的咱们原先在虚拟机上部署单体应用或者分布式应用的架构逐渐变成了基于容器的微服务加工方式。
咱们所提出的ABC融合指的是AI+Bigdate+Cloud的融合。
在Bigdate 2.0时代,Hadoop商业版出现为你们利用Hadoop进行大数据的处理提供了更好的方式。另外一方面,SQL on Hadoop逐渐成熟了起来。在咱们看来,SQL on Hadoop是一种更为接近人类天然来进行数据处理的语言,它和咱们的关系数据库并非一个很是紧密的耦合关系,咱们大量的实时处理是基于SQL on Hadoop去处理的。第三点是最开始咱们作大数据的时候,大量采用的是批处理的处理方式,如今咱们更多的是采用流失处理和批处理相结合以及交互是分析相结合的方式来进行的。
在Bigdate 3.0时代,大数据云和AI已经融为一体了,客户但愿能在一个统一的平台上提供AI、Bigdate和Cloud。
中国联通是整个运营商行业当中实现数据集中的企业,咱们拥有企业级全域数据的存储中心、计算中心、能力中心和孵化中心。在运营商行业,他们的系统架构模式基本上都是分省来进行建设的,可是中国联通在建设大数据平台的第一天咱们就把数据集中聚集到总部的一个节点,咱们坚信数据只有汇聚才能发生化学反应,才能产生最大化的价值。
中国联通拥有百PB级的数据吞吐能力和统一的数据服务能力。咱们数据中心的数据量超过100个PB。固然,数据量并非越大越好,数据自己是有成本的,咱们但愿数据的成本和数据的价值能达到一个平衡点。另外,咱们有超过6500台对内服务的服务器数据节点,以及超过2000台对外服务的服务器数据节点,加起来有9000台左右的节点数量。除此以外,从中国联通的存储能力上看,咱们目前的存储能力可能接近200个PB。
全域数据汇聚和管理中心沉淀了海量的计算能力、存储能力和数据能力,致使了中国联通面临着资源智能调度、最大化利用和能力共享的难题。
中国联通有总体的数据中心节点,而在总部底下是中国联通的省分公司和子公司,他们但愿利用总部的大数据平台去进行各自的数据处理和数据分析,所以产生了云计算的需求。他们但愿总部的节点可以为它提供一个数据处理的平台,省分公司和子公司在平台上进行自身的数据加工和处理。
这是咱们自身优化的源动力,就是中国联通自身的节点如何避免计算、存储资源不均衡的调度,创新地为租户提供一样的能力。这时候,中国联通的大数据和云计算就天然而然地走到了一块儿。
探索历程
咱们从2016年开始在中国联通大数据云平台建设上投入很大的力量,也经历了几个不一样的发展阶段。
在最初的建设阶段,咱们的资源是物理部署、人工划配、系统运维,咱们经历了大数据的总体发展历程,在最开始的时候,你要作大数据,必需要经过物理机器来实现,你要部署一个Hadoop机器,若是你须要kafka,你还须要用物理的机器部署一个kafka,这是大数据平台建设必然的发展阶段。
下一个阶段属于优化提高阶段,咱们但愿经过一个集中工做组统一管理资源,在其余人有资源需求的时候,咱们去作半自动化的部署、半人工的划配,还有就是系统运维的简单监控。
第三个阶段就是经过大数据云平台提供一键部署,你须要一个大数据平台,经过一键部署,我为你提供一个大数据平台,你能够在上面去作自身数据的加工和处理。而你的数据能够来源于总部的数据平台,也能够来源于自身的数据。这样就实现了按需自动分配、弹缩,统一监控和统一运维。咱们目前已经在第三个阶段了。
在中国联通进行技术路线选型的时候,咱们面临着Kubernetes和Mesos两者之间的选择。
咱们为何选择Kubernetes?由于Kubernetes几乎支持全部的容器业务类型,包括长期伺服、批处理、node-deamon以及状态应用等。咱们最开始在作容器应用或者是微服务应用的时候,更多的是无状态的应用。但咱们提供大数据服务的时候,不少应用是有状态的。
对Kubernetes和Mesos咱们进行了很是深刻的分析,尤为是生态活跃度,Kubernetes的生态活跃度和社区关注度在急剧上升。咱们在进行技术选型的时候,包括它的使用场景、外部应用、中间节点和数据库、有服务状态等都进行了分析。另外,技术的成熟度是否有业界厂商的普遍加持,好比谷歌、亚马逊、Rancher、IBM、阿里、百度等。Kubernetes有很是好的生态,因此咱们选择了Kubernetes来解决联通的实际需求。
谈及Kubernetes时,无可避免地必定会说起中国联通和Rancher的合做。
中国联通在搭建Kubernetes和Docker容器化平台的过程中,咱们引入了Rancher的产品去部署和管理多个Kubernetes集群。咱们使用Rancher Server,经过图形化和RKE两种方式对多租户的Kubernetes集群进行部署和管理。
另外一方面,从咱们的角度来看,Rancher有丰富的容器化实施案例经验,这块正好弥补了中国联通的一些不足之处,成为咱们在处理和解决问题中的一个坚强后盾。咱们更加关注于怎样把服务变成云,而后开放给省分公司和子公司使用,咱们怎样才能把数据处理的更好。而针对底层的服务,咱们但愿借助业界的合做伙伴和咱们共同解决。
除此以外,开源的产品常常会有重大安全漏洞,在这一方面Rancher能为中国联通提供一个很好的技术支持,为中国联通的云平台安全保驾护航。
平台实践
中国联通提供几个方面的服务,一是大数据即服务,好比咱们的省分公司或者子公司须要一个大数据平台,咱们就为它一键提供一个大数据平台,包括Hadoop、Spark、Storm、impala等,一旦我能为省分公司及子公司提供大数据平台,他们就无需本身从新构建大数据平台了。
二是中间件和数据库即服务。对于省分公司和子公司而言,光有大数据平台来进行数据处理是远远不够的,这当中必然要用到不少中间件,因此咱们要为他们提供中间件和数据库即服务,这里包括kafka数据库即服务、Redis分布式缓存服务、MySQL关系数据库的服务。
有了以上两者以后,咱们还能够提供数据集成工具即服务,好比云化ETL,我能够去作数据抽取转化,来为省分公司和子公司提供调度。
咱们前面提到了ABC,进一步扩展,咱们能够提供深度学习即服务,好比TensorFlow、Caffe等。
最后一个就是容器云服务,咱们能够提供应用托管的环境。
有了以上几个服务以后,对于租户来说,涵盖了数据的加工、处理,流转以及应用的提供,基本上就具有了PaaS平台的框架了。咱们的省分公司或者是子公司就没必要再去建设作本身的大数据平台,若是他们要作大数据应用,就能够放到总部平台去作,至关于部署了一个任务在总部平台上,对于他们而言,他们有本身的数据,也有本身的空间来作一个处理,咱们经过大数据平台的方式知足了他们的这种需求。
以上还列举了一些PaaS能力如Hadoop、Spark、Hive、HBase、ZooKeeper、Storm、Implpa等,另外包括分布式数据仓库、数据集市、实时计算、数据挖掘的引擎、信息检索引擎等等。
还有,中间件及数据库服务组件如kafka、MySQL,数据集成工具包括元数据管理、数据治理的服务,云化ETL服务、数据集合管理的服务等等。
咱们目前还有不少其余的服务,好比数据安全的服务、脱敏的服务、溯源的服务,这些咱们都经过云的方式提供给省分公司和子公司。
不管是中国联通的大数据基础服务、深度学习框架、中间件及数据库服务,仍是微服务的开发部署、数据集成工具等,这些内容不可能由单一的团队完成,咱们有很是多的团队,有些团队专一于大数据基础服务,有些团队专一于将深度学习的框架部署在Kubernetes上,有些团队专一于将中间件即服务的放到Kubernetes容器云平台上进行部署管理,这些都是由不一样的团队完成的,因此咱们须要有一个统一的管理平台。
在这上面咱们使用的是Kubernetes Service Catalog和Open Service Broker。统一的集成框架像Kubernetes Service Catalog实现异构组件的统一纳管,经过业界标准的Open Service Broker实现第三方组件的接入和扩展。当咱们底下有新服务的时候,咱们经过总体开放的架构接入新服务,开放给咱们的客户使用。
咱们有四大类支持场景。第一种场景就是你须要一个大数据平台,我为你提供一个大数据平台,这是最基础的一个场景,也是最难实现的一个场景。第二种场景就是为你提供大数据的服务组件,你进行数据加工和处理,好比提供一个分布式的数据仓储,你将数据拿进来处理以后带走或者是拿来作其余的应用。第三种场景是应用微服务化的容器化部署。最后一种场景是假设我为你提供一个孵化平台,提供样本数据,提供数据处理组件,你本身去进行一些模型的训练。
从租户总体应用场景上看,最大的是进行模型训练的,比例为34%。省分大数据平台构建占比17%,容器化应用和服务开发部署占比为27%,大数据加工处理占比为22%。这是咱们目前的应用状况。
咱们以前还有采用一种逻辑多租的方式,由于咱们有大数据平台,有资源的调度和管理,咱们能够采用逻辑多租的方式来为你提供服务,但这具备必定的局限性。而基于容器云的大数据平台更多采用的是物理多租的方式,能对资源进行有效隔离,能对数据进行有效隔离,服务进行有效隔离,业务进行有效隔离。我申请的这个东西是个人,和逻辑多组不同,逻辑多租总感受我和别人共享一个空间,而物理多租这个空间就是你的,你在里面作什么事情咱们无论,咱们只但愿你讲这个事情作得更加容易。
在这当中咱们确定会面临一些技术挑战。包括多种PaaS能力的集成。其二就是多个Kubernetes集群的互通,由于咱们刚才分享了中国联通下面是有N个团队的,大数据平台服务可能分布在一个Kubernetes集群上,也有可能不止分布在一个Kubernetes集群上,是由多个Kubernetes集群组成的。其三是大数据服务的容器化,好比Hadoop怎么放到容器云平台上,Hadoop的部署方式是须要高度来进行规划的,须要作到计算和数据的亲和性,那这一问题咱们应该怎么解决。最后是计算资源的本地化。
关于以上几种技术挑战,咱们有一些解决方法。多样化PaaS能力的集成咱们会用Open Service Broker来解决这一问题。
Kubernetes集群间网络互通咱们会经过多机型的互通来解决,咱们有多个集群,在大数据云平台上,咱们的应用能够访问你的Datanote,你的应用经过直接访问Datanote写入和读取数据,API调用的问题经过定制Flannel网络插件来解决,两个集群共用一个Flannel网络,实现跨集群pod IP直接链接。
对于Hadoop容器化如何完成部署的问题,这里面包括若是将Hadoop的服务进行拆分,如何完成角色规划?将Hadoop按照组件进行最小单位拆分,经过亲和的调度算法实现一个集群的合理部署。拆分完以后怎么解决服务之间依赖和发现的问题?集群内部咱们使用Headless Service的方式来解决,咱们直接调用底层pod提供的服务。服务之间会经过DNS和配置注入的方式来进行发现。
面对Hadoop容器化计算本地化的挑战,咱们采用k8s亲和的调度策略,确保统一集群的计算服务调度到相同的列表,第二步,咱们更改了Yarn和Spark的调度逻辑,判断到对应的计算是否在同一个主机至上。第三步,多个pad咱们共享Domain Socket,并且每一个租户的Domain Socket相互独立。
中国联通大数据云平台提供的PaaS能力有6大类30多种,咱们的集群数量有437个。在大数据云平台,咱们开放给租户来使用这一平台,每个月执行MR/Spark任务16万多个,实行的数据调度任务一万五千多个。
咱们目前还在逐渐拓展使用的范畴,先前咱们不少小的省份公司已经将大数据平台放到中国联通大数据云平台上进行部署。下一步中国联通会进一步扩大规模,将来绝大部分的省分公司、子公司都将大数据平台放到这一平台上进行部署。
后续咱们但愿中国联通大数据云平台不断地进行演进,将Kubernetes自己当作一个服务提供给咱们的租户,另外一方面咱们但愿能够提供FaaS,采用Serviceless的方式为客户提供更加方便的服务,它只需提供一个函数就能够了,后台服务能够根据函数调动的状况进行弹缩和缩放。
另外一个探索方向是支持物联网的云平台。如今5G炒得很热,不管是运营商行业仍是总体的社会,你们都在关注5G。5G主要解决三大问题,一是大带宽,二是高密度链接,三是低延迟。高密度链接和低延迟这两个问题都是属于物联网应用的问题。而咱们构建大数据云平台为物联网提供新服务,万物互联将产生更多的数据,数据如何进行实时处理?怎样进行后续的分析和处理?咱们但愿经过公共云平台的方式解决这一问题。
总结与展望
以上是中国联通基于容器云的大数据平台建设状况,目前看来咱们取得了很是不错的一个成果。在将来,咱们将集成更多的能力,赋能前台,实现智能管理,提高总体利用效率。