郭晓:各位下午好,今天的题目可能跟大家在门口看板上看到的不大一样,因为我这边要讲这个话题之前跟我们的客户沟通了一下,我们客户可能不愿意把他的应用部分公之于众,所以我话题变了叫云模式转变,也没有关系,因为这还是非常的贴合我们开源的峰会议题的。
就从客户说起,这是客户的需求,我们这家客户是一个国内的保险公司,他们所在的集团有个针对互联网大数据金融这块有一整套的规划,他也是我们华云数据的投资方之一,所以他给我们注资的时候顺便给了我们价值一亿元的云数据中心建设的项目,这是他的初始需求。第一步是先建立一个SaaS的平台,第二步是刚才都提到的,整个有数据驱动,云服务驱动的业务,第三就是把它的整个产业链打通,针对这个需求我们规划了四个阶段,我跟大家介绍一下背景,有云数据中心建设、平台打造、大数据深度需要、区块链金融部分,这是我们给他设计的整个系统架构,架构我们可以看出来,这下面有三个数据中心,在北京上海,还有一个是在深圳,雁来有一堆的Power,有680等服务器,现在他决定全部转到云平台上来,所以我们三个数据中心都开始着手打造,这下面的和上面的云服务,大数据的服务,一些中间件还有客户自己的应用都在这里,因为客户可能也不希望透露,所以他把名字打了马赛克。支撑这套业务系统的有我们的运维管理和安全管理,这全部都是使用微服务的架构设计,整个项目会在今年年底进行交付。我讲一下针对这个项目的IaaS服务,我们怎么保证优化的,这个下面有标准的管理数据库、大数据服务、人质系统、托管私有云、CDN、SDN相关服务,这些服务我会挑一些重点讲,我们怎么样把这些技术真的做产品化,真的能为金融行业提供服务。主要围绕六个点来说,业务驱动自上而下的云数据中心,我们这边包括要用开源项目打造完整项目,抓住这六个点,性能可靠性、统一化、可视化等,这六点怎么解释?统一化,我们考虑我们所有的异构资源,客户有Power,有N多的中间件,也有S86的服务器,还有之间采购的云平台,加上我们新给他的东西,比如我们的服务器,我们新的虚拟化,网络设备,大的微模块机房、MDC、UPS等等,这些东西单独看都有一个监控系统,但是如果有客户的IT能力不是很强的,一个保险公司的IT部门来看,这个里面对他们运维来说难度非常大,所以我们第一个要做统一,把他们所有的系统监控起来,统一的用户访问统一的运维监控入口,统一的安全管理,因为客户的数据中心第一期会有将近270多个机柜,所以我们会重新设计提供统一化的监控。统一化的管理由我们平台的云服务和微服务完成。第二就是可视化,掌管这样的数据中心,总下面的物理设备到上面的应用还有应用上跑的数据必须要做到可视化才能有高效的管理,我们机房环境可视化,监控可视化,业务运行状态的检测还有应用场景的可视化,这里面我们可能就会提供一些图表大屏幕以及整个包含的应用的逻辑拓扑,让用户通过拖拉拽的方式就把整个业务集成好。下面讲到标准化和自动化,大家用了不同的公有云,这么多云大家可能进去以后都会感觉不同的平台提供的体验不一样,有的好,有的坏,有的说不上好,但是客户这么多异构环境,虚拟化就有很多,我们再塞给他我们基于DevOps做的平台他变得很复杂,客户怎么统一的管理好?所以我们就提供的标准化的界面,在同样一模一样的下面提供了异构的操作管理能力。大家知道很多都提供的流程管理,但是老外的开源软件并没有,这个领导科长审批,处长审批,老外就没有,我们需要让用户定制审批的流程,我们会有一个流程管理的标准化,但是流程化的时候会有一个图,运维管理的标准化,我们希望将来数据中心的运维工程师不需要在技能那么全面了,所有的硬件都了解,所有的网络设备都了解,只要对我们的界面,我们就可以帮他把所有的设备完全好,故障都报告出来,而且是准确的报告出来,这就涉及我们运维管理的操作标准化。
说到自动化,自动化的运维还有故障迁移自动化的开发集成部署上线,刚才周总也说到,我觉得很多金融行业都是有这个通用的需求的,都需要有快速的上线,安全的回轨,我们把自动化的功能做好,其实自动化的云要说涉及就很广了,我举一个很简单的例子,很有代表性,我们的客户既然已经选择了要用云数据中心,那么它以前的跑在物理服务器上的业务怎么才能平滑的迁到云端,我们给他做了一个迁移的工具,就是可以帮助客户在不停机情况下,把他原来的这些业务直接都转到链子上,我们可以提起来,在某一个时间点完成切换,就只需要有很短的离线时间就可以由T到B的过程,这个自动化其实还会涉及到很多了,比如说我们平台里面有很多模块,大家可以看到,IaaS、PaaS都会涉及到,但是这些模块怎么打通?我们虚拟化运行平台也会产生很多的日志告警,但是这些日志告警我们按常规的报警措施,那很有可能就会被淹没在误报信息的海洋里了,一天收到三万份告警报告你一个也不会看,只有把准确的错误日志发出来,是一个错误信息才会通知管理员,这里面就需要有一个联动,我们可能会有类似于采集存储筛选,然后再用我们的大数据的平台去分析,做到故障的准确报告,甚至故障的预警,故障没有发生的时候我就提前通知管理员这个可能现在会发生故障,这个自动化的流程我们也需要帮客户打通,而且这里面其实除了网络和服务器还要看机房的UPS、温湿度都要统一的设计。
这个流程申请审批交付,需要流程化的申请还需要有流程化的编排,流程化的工单报表、流程华的IT资源的生命周期管理,这些流程我们全部都可以很灵活的让客户自己定义,根据自己的需求,提供的流程的编排引擎给到客户定义,所以这个其实在开源项目里也具备了,但是我们要满足适用性的需求,我们肯定就要这样考虑,让客户在这个平台完成所有的工作,不要跳到OA申请,批完以后再回来换一个用户操作,对用户来说就非常的不方便了。
最后说性能和可靠性,这是今天重点要说的内容,我们用开源的时候发现了很多性能和可靠性的问题,我们先说性能,为什么现在容器那么红火,虚拟机执行的时候有一定的资源的开销,肯定会造成浪费,我们有些产品必须用虚拟机完成的时候,我们就希望把资源的开销减到最小,或者让虚拟机的性能真正的提高,所以我们针对计算能力做了一些我们独到的地方,第一个是CPU指令集的透传,比如我希望我在我虚拟机上再开一套虚拟机,给我的运维人员学习我的虚拟化的技术,那没有问题,我可以把BT的指令透传到虚拟机上,他就可以在虚拟机上再开虚拟机,我需要用到SSE或者什么指令集去做一些媒体的图形的渲染,那没有问题,我可以传给用户。还有我直接把物理机的核给到虚拟机来用,所有的公有云都可以看到,但是国内都采用共享核的模式,一台虚拟机一个核可能会有四五台的VCPU在上面跑,我们肯定希望给用户提供高性能的,直接就把物理核分配给一个用户,其他所有的服务还有其他的虚拟机以及系统下面的基础服务都不会占用到物理核,包括整个IOS的操作系统也不会占用到,这样就可以让虚拟机获得接近物理机CPU的性能。我们一台虚拟机要启动,操作系统的引导过程肯定不可避免的,我们有自己的专利技术,实现了一个VM开设出来以后,我从开机到进入系统,可以使用IP通了,这个登陆过程只需要一秒钟就可以完成,对很多的业务可以达到接近容器的效果,创建过程涉及到一些拷贝,所以磁盘已经决定死了。大家有试图开发或者特性的时候就会发现这个时候你的虚拟机要做热迁移非常困难,要把一台虚拟机从一个物理机A迁到B的时候,你要做这些特性,其实你就会很有问题,但是我们可以支持热迁移的,这是我们开源上对计算能力的优化,接下来说我们的网络性能和功能,这是我们华云做的比较好的一个地方。有原生的OVS,也有人在做OVSDPDK,但是有很多现实的问题的导致它没有办法正式的使用,比如我不支持大包,也不支持无状态的防火墙,这会导致很多的问题,那我们重新开发了OVSDPDK,而且我们有社区共了,这个DPDK很多的社区大牛都在我们的公司,我们开发了一套全新的无状态的防火墙,可以让OVSDK在Open Stack上顺利的跑起来,因为用原生的OVS虚拟机跟虚拟机之间跨了通信,可能实际的网络你能获得2、3G的性能,这还是测试的环境,如果实际使用各种各样的数据包可能会耿晓,综合性能提升到了8.5个G,明显的提高,整个的数字也得到了成倍的增长,另外我们的整个网络延迟也非常关键了,甚至我们可以考虑在网络环境允许的情况下跟一些专业的交换设备配置的时候我们也可以跑。整个性能提高的时候CPU性能降低了60%以上,这是我们饱受的估计,我们提供的一些测试数据,DPDK是因特尔开源的工具,这两个东西坑都非常多,要正式的用起来还需要非常多的改造以及填坑,以及我们的VPP加DPDK正是在环境跑起来了,跑起来就是单节点的时候性能提升了八倍,这个数值还是可以横向扩展的,因为我们是无状态工作的,可以一直扩展,扩展到16台的时候就是16×8倍性能提升,这个结果导致我们内网的处理能力得到很高的提升,我们测试数据可以看得出来,我们这边是VPP+DPDK的结果,这边是原生的结果。我们网络性能的提升,这个网络性能,刚才说的是虚拟机和虚拟机之间,这个是南北向的网络性能,整个测试结果比我们社区原生的也会有了非常大的提升,然后再说一下我们存储方面的改进,其实刚才说了那么多网络的部分,我觉得就是大家可能没有用到这种场景,但是一旦碰到网络的要求特别高,延迟特别低,吞吐要求好,网络的包数据非常复杂的情况你就会发现使用开源的软件会直接有问题,使用的时候需要谨慎,需要动手能力变得更好一些,接下来说一下我们的对象存储,我们的对象存储其实业界非常通用了,但是要尝试提高它的IOPS模式提高的,大家可能会发现一个是成本奇高无比,但是你要做高IO的时候用这个是非常独立的,会对CPU造成额外的开销,还有SSD的成本最近是天降,最近一年时间翻了好几倍。为了解决这个问题,我们在开源上也做了一些改造,本身它是有一个缓存层,但是会导致路径非常的冗长,就是延时下不来,所以我们就抛弃不用了,我们要重新考虑,客户端这块我们的也建立了一个缓存层,使用内存大家都知道一停电里面所有的信息都得丢失,我们把这个换成了SSD,也有同样的问题,SSD本身也可能有缓存,如果掉电的话还是有可能丢失,丢失数据的可能性比内存小很多,我们做了一个分布式的缓存,用速度机组成一个集群,集群互相之间的缓存对方的信息,如果有一个机器掉电我们可以直接把它的掉电没有回血的数据还原回来写到这里,这样的话只要提升小小的成本,在每一个速度机加两块SSD,比哪个好很多,但是性能会得到极大的提升。小IO读写有两倍,大IO有三倍,如果你换成其他的PCIE的SSD效果会更好,这个我们也在进一步测试,但是可靠性是没有问题的,我们自己的公有云也在用,我们跑了二十万台以上的虚拟机。如果大家用Open Stack去接可能就会发现我们San也需要厂商提供驱动,但是这个对于用户选择来说就会突然变得选择面很窄了,因为大家去看新的会发现有的厂商对应的型号不一样,这种时候你的新版本就不支持了,旧版本也不支持,所以我们就抛开了这一层,我们重新去设计,只要你的存储能够挂到计算节点上,看到一个快设备,就可以把它驱动起来,而且可以使用Open Stack原生的API提供的新的功能,这是一些总结了,也是希望大家在实际使用的时候如果真的碰到这些问题也是可以来找我们公司沟通,有高性能的使用产品的需要,有高可靠性能需要的时候我们都可以提供产品解决问题,谢谢大家。