牛继宾: 我是牛继宾,来自于天云软件,现任天云软件CTO,加入天云软件之前在IBM系统科技部工作,在此之前在VMware研发中心工作,从毕业开始工作一直是做云计算大数据的相关工作。天云软件是一家云计算技术公司,核心产品有一款云管理平台,是做云计算资源的管理,在管理基础上形成相关的云服务提供给用户与应用使用,目前天云软件在客户这方面主要是运营商、军工、政府行业等。
牛继宾: 云管理平台不是我们一家定义的,2014年Gartner提出了云管理平台的定义,实际上我们对云管理的理解更早。2011年我们开始做云计算的项目,我们发现不管是私有云还是公有云,大的Business客户对异构的资源的管理,比如存储、网络、异构的计算资源管理的需求比较大。相对于openstack,我们说云管理是一个更高更广的范围,是把所有企业的资源去做一个管理,在此基础上调度资源然后去给应用或者用户使用。在实践中,每一个项目积累下来,就会发现我们所管理的范围越来越广,最终我们跟市场上常见的云计算架构做一个对比,发现我们的管理平台管理的范围要更广泛。2013年开始,我们在自己的研发中心启动了云管理平台项目研发,当时来并没有取名叫CMP。到2014年、2015年云管理平台的概念就出来了,Gartner的定义和我们不谋而合。
牛继宾: 我认为有两个技术挑战:第一个是异构的资源管理,硬件的迭代很快,管理技术手段需要多样化的,要做比较大范围的管理;第二是在管理上的基础上实现资源编排并形成服务提供给用户使用,不仅是硬件资源,还需要数据库、中间件这种软件的编排,最终提供应用运行在这些资源上的能力。
实现思路分两部分,第一硬件这一块我们可以做大类的划分,服务器有小型机,X86;存储有SAN存储、分布式存储;网络里面有传统网路比如路由器、交换机,也有SDN;我们针对每一类的硬件做一个driver封装,并开放管理API,云平台在调度管理的时候只需要给driver api下发指令。第二个关于资源编排,我们知道一个应用使用了Web、中间件、数据库,这些落在异构的硬件上实际是一个编排的过程,需要把硬件和软件都定义成资源,在资源上加一些操作的接口。比如说应用的启动、关闭,硬件的划分,在此基础上统一做编排。编排的开发是一个长期的过程,最开始是一些标准的Web、中间件和数据库开源组件实现编排,后来发现应用需求多种多样,经过长期的积累最终才能支撑多样化的应用需求。从单一应用的自动编排和自动部署到集群,到目前大数据处理,和集群应用整个过程持续开发了大约三年才达到了可以提供企业级应用的能力。
牛继宾: 是这样的,硬件这块我们做一个大类区分,要做到成熟的产品支持常用的硬件,做成driver可被统一管理调度,同时产品所支持的常用的软件做一些标准化实现。经过一到两年的逐渐积累,做出了比较成熟的产品,但是也不是100%满足所有需求。比如说有的传统用户,还在用IE6,这种情况下我们集成的Web服务器和中间件就不支持,此时就需要再去做一定的定制化。
牛继宾: 云计算的一个核心是形成规模,当云上应用越来越多,规模化形成后才能发挥更多的作用。这是一个量级的效应,比如说AWS、阿里在积累海量用户业务,有了海量数据之后,那么就在DT、AI有很大的优势。未来云计算的发展肯定往规模化的方向发展,第一公有云份额越来越大是不争的事实,这是一个不可逆转的趋势;第二一些大的商业用户比如运营商、银行也会用自己的私有数据中心,这也是私有云的一些机会。未来私有云和公有云肯定会有越来越多的连接需求,比如说运营商、银行等会把一些互联网应用放在公有云上,而一些核心交易数据存储数据则放在私有云上,这是未来互联互通的一种趋势。还有一种就是我们看到的基于一些开源产品去做的小规模的云计算,比如10台-50台服务器的规模,这种云我认为不具备效益很难持续下去,要么消失要么发展成大私有云,这是我对公有云、私有云和混合云的一些理解。
牛继宾: 开源发展还是很快的,我们最开始年对虚拟化的管理是用的CloudStack,大约一两年的时间CloudStack没落而OpenStack在兴起,2014年Docker概念兴起、2015年应用到2016年每个公司都在谈Docker。但是开源有开源的问题,比如迭代太快、基于开源的商业模式有问题,而且从应用角度来看,比如说一个业务用户不关心使用了哪些开源工具,而关心的是云能提供什么服务。所以在使用开源产品时,需要更加观众提供什么样的服务,比如Hadoop家族里面有几十种开源组件,那需要做的就是一套云平台把这些技术屏蔽了,最终就需要交付的是标准的服务,这是我们在实践中的经验。
关于Docker,我们在2013年就做过研究,当时研究的版本为Linux Container,在引入Docker之后发现一些优点:比如DevOps,自动部署、弹性调度的能力等的优势,也适合用于帮一些Saas用户快速部署到私有云数据中心上。我们云管理平台在2015年就完全支持了Docker。
7. 开源出现任何一个相关的项目你们都要立刻去做?
牛继宾: 还是看最终的一种需求程度,就是我们跟客户交互的一个过程看能不能解决业务问题。比如,大家都说CloudStack在没落,但是我们基于CloudStack+Xen做了一款自己的虚拟化,在一些客户中特别容易推广,因为相对OpenStack KVM,它使用更简单也不失稳定。在技术之外,这种场景是一种挖掘和使用的过程。
牛继宾: 开源产品也有定制化这种问题,只不过可以在社区上很方便的获取接口和文档。商业也是一样的,也需要做接口处理和封装;但是商业好处就是可以针对客户去做更好的服务,用户有了反馈可以做很快地做bug fix和新功能开发。但是开源不一样,用户的反馈要通过社区来传递,时间比较久。
9. 可能大家的需求也不一样,商业需求更明确?
牛继宾: 对。
牛继宾: CMP的监控确实比较复杂。首先说从硬件设备这一层,服务器有小型机X86还有类似于现在的超融合一体机,存储有传统存储、分布式存储,网络也有很多种。这种监控很难做成统一的模板,我们对这种异构的需求做归类:比如X86服务器从哪一代到哪一代我们做一类,然后对这一类封装监控指标,形成模板做模板部署;再有就是延伸到网络和存储;还有数据库、中间件、Web应用,这些一旦上云之后也需要进行监控,为什么呢?因为云上的应用发生问题很难定位,如果这时候有云平台进行层次链路监控的工作,比如Web到中间件再到数据库是怎么样的路径,基于日志与埋点监控都需要做一些开发,其他的还是要根据不同的需求。
11. 你们重心是在监控还是在运维?
牛继宾: 监控与运维本来就是不可分的,实现上分为两部分:一块是云平台自身的工作,比如监控自动报警以及针对报警的处理,云平台的自动化是很重要的功能;第二块是跟传统运维做融合,比如传统运维的工单形式也要与云平台做对接。
牛继宾: DevOps是从研发到测试到运维一体化。CMP这方面的DevOps体现在两个方面:第一是帮助用户,用户有自己的研发团队,研发自己的业务,通过DevOps能力使得开发、测试、上线和运维几个团队提高效率,研发提交代码以后自动触发编译、触发自动测试手工测试、测试通过以后从测试区在自动move到生产区,整个是可以通过一套平台做管理。第二,我们自己本身就是一个DevOps的受益者,我们自己的研发、测试、运维逐步的在践行DevOps能力。
牛继宾: 不管是IaaS、PaaS还是Saas也好,本身都是一种为业务的服务。IaaS是资源层、PaaS是平台层、SaaS是软件层,但从最终用户角度看其实更关心的是业务,对应地根据需求提供IaaS或者SaaS等服务。所以,淡化是针对用户来说的。像做公有云的厂商,基本不会强调IaaS、PaaS或Saas。而您说的CaaS分为两种:第一种Container as a Service,容器即服务,相当于虚拟机、存储即服务;第二种是Cluster as a Service,集群即服务,相当于Hadoop是一个集群、ElasticSearch是一个集群,可以通过CaaS直接给用户部署上,这是我们实现的集群即服务技术。
牛继宾: 从13年开始我们交付了几个大B的项目,每个项目管理的服务器节点都超过1000多个节点,但是一期实施以后,二期用户在投资会有些犹豫,因为只是觉得云管理平台能够给用户提供虚拟机、物理机、存储,但是针对用户的核心问题没有解决:
1.传统应用迁移到云平台上价值上很难显现,只是从小型机、物理机迁移到了虚拟机,但是没感觉有太大价值;
2.云平台的资源最终需要来支撑业务运行,但是用户很难从一个业务视角来快速的看到这个业务占用了多少资源,业务中的服务调用链路是什么等,增加了业务运维的难度;
3.云管理平台管理的服务器,利用率也不高,如果通过手动迁移虚拟机等,工作量增加,同时如果多个业务的多个虚拟机运行于同一服务器,虽然可以提高利用率,但是也提高了业务资源抢占风险,这对高优先级业务来说是不利的;
所以,用户需要从业务角度来看云平台能够给业务带来什么价值,这时大约14年年初我们去跟其中一个大B客户反复沟通, 最终将用户的传统架构拆分成模块化,以可独立模式的模块实现弹性伸缩计算,同时结合数据层面的迁移需求,实现数据层面在云平台的动态感知等,云管理平台针对应用的业务需求提供具体的云服务,比如负载均衡、服务中心、标准的开源中间件等服务,这些服务与云管理平台深度集成,比如实现无缝监控、业务调用log实时诊断等,从而将用户的业务深度集成到云管理平台,这时用户发现业务的响应速度加快、业务的监控能力增强、业务的资源占用情况一目了然、业务的资源利用率等有了较大的提高,用户最终的体验是非常好的,因为这真正解决了他们的业务问题,因此针对这个项目的投资一下增加了一个数量级。
我们把这种思路去跟我们已有的用户再去谈,再去实施,发现这真的解决了用户的问题。从资源管理的云到业务的云,我们经历了一个长时间的周期,云计算的一开始落地,资源先行,但是最终体现价值是对业务的支撑,这种转变,需要技术上的沉淀,比如从单纯的管理服务器、存储、网络,到懂用户的业务,能够针对业务去定制化、标准化相应的云服务,这些服务可以到业务层面,比如负载均衡、中间件、数据库、标准的业务框架服务,在这些服务上实现api组合,能够与云管理平台、业务深度集成,对人员的知识储备、项目的研发经验等都会有较高的有求。
InfoQ: 谢谢牛继宾老师,采访就到这里。