中国人寿如何基于容器搭建金融PaaS云平台


6月28日,Rancher Labs在北京举办了Container Day 2018容器技术大会。在大会上,Rancher Labs CEO及联合创始人梁胜博士、中国人寿研发中心开发五部副总经理王川、技术处高级经理郑晓勇、开发五部云计算架构师张青南、ZStack CEO及创始人张鑫进行了一场圆桌讨论。

本文整理摘取自圆桌讨论环节的内容,由中国人寿的嘉宾分享了中国人寿使用容器技术、搭建金融PaaS云平台的心路历程,以及存储、网络、CI/CD、微服务、数据库拆分等具体技术细节和经验。


中国人寿容器使用情况如何?


中国人寿从2016年底开始做技术调研,于2017年正式开始利用容器技术搭建金融PaaS云平台,用了半年多的时间完成了两朵云环境的搭建,一朵是开发测试的云环境,一朵是生产的云环境。中国人寿在开发测试云环境里做了持续集成,两朵云之间通过持续交付进行打通。最后又用了半年多时间在内部进行推广。

中国人寿的容器使用已经比较深入了。开发团队Java类的应用基本全部在开发测试云上进行了容器化,这占中国人寿总应用数量的一半以上。在生产云环境上,从2017年底开始,我们先将内部应用往生产云环境上搬;2018年6月一些对外的业务应用也陆续完成往生产云的迁移,目前有两个对外业务应用已经跑在生产云环境上。

在云规模上,目前中国人寿整个的云规模有服务器160多台,云化的、容器化的应用有94个,运行托管的容器有1700多个。


具体技术细节的补充?


中国人寿两朵云的最底层的容器调度与管理都是使用了Rancher平台。Docker用的是17.03的版本。主机环境之前也尝试过使用红帽,最终迁到了Ubuntu上,使用的是Ubuntu 16.04。

重点说一下网络和存储,中国人寿在网络和存储方面的选择,在不同云环境上有不同的考量,开发测试云和生产云是不同的。


在网络方面,中国人寿在开发测试环境上,使用的是IPsec管理的Overlay网络。选择Overlay网络是因为,虽然它可能架构比较复杂,但最终使用时管理起来会比较容易,我们不用额外去给它准备IP资源。在生产环境上,我们使用的是扁平网络,扁平网络的一个好处在于,它的IP跟整个大网里的IP是互通的。存在的问题是我们要提前规划网络,规划IP资源的使用。

在存储方面,中国人寿在开发测试环境上用的是Sun存储,这样的选择和我们的实际情况有关,因为我们在开发测试环境上没有足够的NAS设备。但是中国人寿在生产环境上使用的就是NAS存储了。


中国人寿最初为何决定采纳容器、搭建PaaS?


我想来参加Rancher Container Day大会的在座各位肯定都是容器、PaaS的专家,大家也许会觉得,这个问题的答案不是显然的吗?容器、PaaS能带来这么大好处,当然需要去建一个金融的PaaS平台,不是吗?但对中国人寿这样一个传统的金融国企而言,使用容器搭建PaaS平台,其间也是有一些心路历程值得分享的。

相信在不少组织中,研发程序员和运维人员的关系都很微妙,中国人寿也是这样,我们曾面临下面这两个问题。

第一,程序员天性崇尚自由,但原先他写的程序都是局限在一个虚拟机上,程序员经常需要向运维小伙伴要求多加一台机器,他们常觉得不方便、被限制。

第二,是发布新版本的问题。中国人寿很多年前就希望能有快速的版本更新,比如看能不能每月都发一个版本,但后来并没有成功。到了互联网时代,我们对发版的频度要求更高了,而中国人寿这样一个传统企业怎么去发版?到凌晨12点,然后停机。运维小伙伴负责去升级,程序员也得在一旁候着。这么一个长期的工作环境和形式,我们的程序员他们都心情很郁闷。


虽然我不是什么心理辅导师,但是我觉得我们应该致力于给程序员创造一个良好的研发生态环境,实际上这也确实是很重要的。

当时中国人寿也正好想要做X86的改造。我们以前很多应用是跑在小型机上的,包括一些非常重的应用。决定采纳容器、拥抱PaaS,对整个中国人寿而言都是一次重大的变革。我们集结的PaaS实施团队在PaaS、容器这些方面都非常专业且很有兴趣。对中国人寿这样的传统金融企业而言,上一个PaaS并不容易。Rancher产品功能很全面,帮我们快速解决了很多底层的基础的问题,不过我们仍要做很多传统应用的适用性改造。不过最后事实也证明这样一个变革、这样一种投入是值得的。容器轻量、快速、标准,在资源调配与节约、应用快速发布等等方面都解决了我们原先的痛点与困境。


有哪些挑战、哪些经验可以分享?


我们刚刚提到了【变革】这两个字,的确,在中国人寿PaaS云平台的搭建过程中,我们遇到过一些挑战,其中有两方面我想在此分享。第一个是用户心理层面的问题,第二个是中国人寿自身能力提升方面的问题。

首先,新技术的使用和推广,在用户心理层面存在什么问题?那就是,拍手叫好的多,但真正推广、上线、迁移的时候,大家的实际心理接受程度又不一样。我们怎么有效地解决这个问题?中国人寿的PaaS云平台,所面向的大部分用户都是人寿内部团队。于是我们选择一些热爱并拥抱这个这个系统和平台的人来从头到尾参与这个系统,让接受度高的团队先做出一个样板工程,以最终的优秀成果为标杆进行更大范围的推广,让其他团队的领导和成员看到实际的各项指标,如性能、效率、成本等各方面的成果,以数据和指标说话,最终达到了中国人寿内部大部分团队的应用的容器化改造与迁移。

另外,还有自身能力的提升的问题。毕竟中国人寿是一个传统企业,对新技术的上手和落地可能不如互联网公司那么快。所以我们一方面是加强自身团队的打造,一定要建立自己的容器技术团队;另一方面则要选择借力一些已有的产品和解决方案,不新造轮子,比如选择跟Rancher这样的合作伙伴深入合作,这样就能整体把这个事情给解决。


容器和PaaS给中国人寿带去了哪些实际益处?


中国人寿使用容器技术、搭建PaaS平台之后,两大最显著的益处,一个是资源和成本的节约,一个是研发效率的提升。

首先是资源和成本的极大节约。中国人寿正在做新一代整体架构的改造,其中有很多新一代的核心系统。举一个实际的例子,原先,有个团队去做一个新的架构模式的开发,申请了80台虚机,然后发现这远不够他做新一代建设,80台虚机甚至搭不起一个开发环境。当时我们正好启动PaaS项目,就按照这80台虚机的资源,把这80台虚机托管到云上,在云环境下进行新一代核心系统的开发。原先,80台虚机连一套开发环境也托不起来;实际上在云环境下,我们托起了三套环境,资源才使用了2/3。这是一个资源的巨大节省。

我们后来也分析了一下,为什么搬到云上能节省到这么多资源?因为在虚机环境下:第一,团队通常会超配申请资源,超额申请但最后并没有使用到,从而导致了资源浪费;第二,很多时候我们实际使用的系统很多,运行的技术环境不同,有的运行在红帽上,有的运行在Ubuntu上,有的中间件是Tomcat,有的是WebLogic……很多系统不能部署在同一台机器上,必须分开部署,需要的机器资源自然更多。


而使用容器之后,情况则不同了。针对第一个问题,他只有在真正使用时才会占用资源,不用到的时候资源并没被预先占用。针对第二个问题,因为容器进行了一层又一层隔离,并且容器是一种标准化打包,所以在环境上也可以更加灵活,就不存在虚机那种强制要求分开部署的情况。这就是容器给我们带来的资源上的巨大节省。

另外一个就是研发效率的极大提升。就以申请环境这么一个过程为具体例子吧。因为中国人寿有研发中心和数据中心,通常是研发中心向我们架构团队提出要求,架构团队内部讨论审核这个资源要求合不合理;如果合理就给到数据中心的架构团队,数据中心架构团队再内部沟通审核;如果数据中心架构团队觉得要求不合理,那双方再开会来达成共识吧;之后再把这个达成共识的需求给到数据中心的运维团队,运维团队去制作虚机,然后安装软件,然后再交还给我们研发团队。这个流程相当的复杂,一般我们申请一些机器、一些设备,需要大概一周左右的时间才能到位。但也没有办法,规模大、结构复杂的企业团队就是常面临这种问题。

而上了PaaS之后,我们用到了PaaS里面的应用商店,把一些基础的应用打包成镜像上架到应用商店。后续使用时基本上是秒用,需要一个环境的话,基本上一点用商店就能立马拉起来。这是一个上百倍的环境准备效率的提升。


持续集成


另外还有一点值得分享,中国人寿在做PaaS的过程中,不只是用了容器技术,另一个很重要的是自动化技术。

并不是中国人寿的所有开发人员都清楚什么是Docker,什么是PaaS。他不太了解也不需要了解,他可能只是关注一套业务代码的开发。所以我们在帮助应用团队将应用迁到PaaS的过程中,先给应用团队的应用进行持续集成。这个开发团队只要提交代码,剩下的由我们通过持续集成为他们进行代码编译、镜像打包、做PaaS平台的托起,整个过程是不用项目组参与的,而是通过持续集成、通过自动化去完成的。如此一来,有效降低了他们技术上的使用门槛。


同时,完成了自动化的持续集成这个过程之后,也能大量地、快速地提升他们的研发效率,起码在集成效率上的提高非常大。拍个脑袋说个数,原来的集成可能需要30分钟,从代码编译、到检查、到部署;而通过持续集成去做的话,我们最终能在5分钟之内完成整个流水线的工作,大概是这么一个提升。


微服务的拆分或改造经验


我们觉得做微服务,最简单的方法是从头到尾来做,在最初新建系统的规划阶段就按微服务架构去做。我们基于微服务架构新建系统时,使用的是Spring全家桶,即SpringBoot、SpringCloud这些。

以今年6月我们刚上线的对外业务系统为例,它原先面临着非常大的运维问题。为了高可用、非停机升级、灰度发布,我们将这个上线的微服务拆成了两个独立的、相同的栈。最后一共是有70多个微服务,运行着128个应用容器。如果是用传统方法、在非云的模式下,我们数据中心甚至不会同意去接这个项目,因为它的运维难度、甚至光上线难度就非常大。但是PaaS云平台让我们得以解决这一难题,我们在云上用到了应用商店、Rancher的应用发布,只用10分钟就完成了整个系统的上线和128个容器的部署。我们的经验是,如果条件可行的话,微服务架构这种的还是从头新建可能更好一点,碰到的坑可能会少一点。

另一个一定要提的建议就是,一定要跟云相结合。中国人寿的整个过程都是做的持续集成、持续交付,都是用的自动化技术去对接。跟云结合,这个技术是很好的。这是我们这边的一点体验。


数据库拆分


中国人寿没有做额外的数据库拆分,因为目前这个云对数据库拆分起不到太大的帮助。若是新建系统,我们进行原生设计时就会考虑好数据结构。原有的老系统,目前我们碰到的正在拆的系统都还没有从数据层面去下手。

我们的Oracle、MySQL都在容器上实现容器化,都能在云环境上运行。在开发环境上,如果说如果项目组急切需要一个数据库,我们会直接用镜像在云上给他托起Oracle、MySQL或MangoDB这些,直接给到项目组。生产环境上,我们没有把数据库运行在生产云上。

因为就中国人寿的情况来看,我们的开发测试云和生产云的定位和目标都是不同,因而策略不同。在开发上是为了方便项目组快速去用,所以提供这个服务。不过我们也知道有不少公司会把所有的数据库(MySQL)都搬到云上。只能说,各公司有各自的情况和需求。中国人寿拆分数据库的需求不那么强烈,我们根据自己情况评估认为,将数据库拆分或者部署在生产云上所花费的成本可能得不偿失。一切决策都是跟不同公司数据量的大小、系统的具体情况有关的。


后续Rancher将会继续为大家带来更多大会演讲实录,请保持关注Rancher 公众号的最新推送~

原文地址:http://blog.51cto.com/12462495/2149333

时间: 2024-10-09 21:09:39

中国人寿如何基于容器搭建金融PaaS云平台的相关文章

打造企业级PAAS云平台--不容忽视的几个关键问题与挑战

导语:2017年是中国云计算的转折之年,中国企业争相上云的热度空前高涨.2017年4月,×××信息化和软件服务业司发布了<云计算发展三年行动计划(2017-2019年)>,将发展云计算提高到国家战略层次并提出到2019年我国云计算产业规模达到4300亿元的发展目标,中国云计算进入史无前例的增长快车道. 随着企业的积极上云,新的多样化的需求和特征也随之表现出来,从以往单一的建设私有云到转变为大胆采用公有云加私有云的混合云架构,或者从多个云厂商采购异构资源的多云架构,企业的云架构正在逐步向混合云.

基于 HTML5 的工业互联网云平台监控机房 U 位

前言 机柜 U 位管理是一项突破性创新技术--继承了 RFID 标签(电子标签)的优点的同时,完全解决了 RFID 技术(非接触式的自动识别技术)在机房 U 位资产监控场应用景中的四大缺陷,采用工业互联网云平台监控机房 U 位的方法,具有高可靠性.高准确性.精准定位.免维护的特点,满足了 U 位级实时监控.智能运维闭环管理的需求.设备上架.下架与迁移,自动变更和实时记录,(用户评价):部署工业互联网云平台监控机房 U 位后节省了 99% 的登记变更记录的时间,而且实现了变更后数据 100% 的准

基于ZStack构建深度学习云平台

前言 深度学习是机器学习和人工智能研究的热门分支,也是当今最流行的科学研究趋势之一.深度学习方法为计算机视觉.机器学习带来了革命性的进步,而新的深度学习技术也正在不断诞生.由于深度学习正快速发展,新的研究者很难对这一技术实时跟进.国内各大公有云厂商都提供了相应的深度学习相关产品,但对于初学者并不那么实用.本文将介绍基于产品化云平台--ZStack,来构建对初学者友好.易运维.易使用的深度学习云平台. 由于ZStack的轻量性,我们仅通过一台普通PC机就能部署云平台,进而实现深度学习平台构建.读者

有容云:容器驱动的PaaS平台实现方案(上)

编者注: 本文基于上海容器大会现场演讲内容,立足于实战跟大家分享了新一代PaaS平台构建中遇到的问题.当下主流PaaS平台解析.企业交付经验及心得体会等.文章较长,分为上.下两个部分,本文为上篇. 嘉宾介绍: 马洪喜,有容云联合创始人兼首席架构师.此前担任Rancher Labs中国区技术负责人.Citrix公司资深架构师.Oracle公司虚拟化产品开发经理等职务,在容器云.IaaS云.桌面云建设方面拥有较为丰富的经验. 本次大会的大部分朋友都是以用户身份分享了自己家的故事和经验,我作为厂商代表

【转载】基于Docker的CaaS容器云平台架构设计及市场分析

[转自]http://www.cnblogs.com/darkprince/p/5115739.html 基于Docker的CaaS容器云平台架构设计及市场分析 ---转载请注明出处,多谢!--- 1 项目背景---概述: “在移动互联网时代,企业需要寻找新的软件交付流程和IT架构,从而实现架构平台化,交付持续化,业务服务化. 容器将成为新一代应用的标准交付件,容器云将帮助企业用户构建研发流程和云平台基础设施.缩短应用向云端交付的周期,降低运营门槛.加速企业向互联网技术和业务的双转型. 容器云将

【原创】基于Docker的CaaS容器云平台架构设计及市场分析

基于Docker的CaaS容器云平台架构设计及市场分析 ---转载请注明出处,多谢!--- 1 项目背景---概述: “在移动互联网时代,企业需要寻找新的软件交付流程和IT架构,从而实现架构平台化,交付持续化,业务服务化. 容器将成为新一代应用的标准交付件,容器云将帮助企业用户构建研发流程和云平台基础设施.缩短应用向云端交付的周期,降低运营门槛.加速企业向互联网技术和业务的双转型. 容器云将对接各类代码托管库,实现自动化持续集成和DOCKER镜像构建,为新一代应用交付和开发运维一体化奠定了基础.

博云 x 某股份制银行信用卡中心,容器云平台建设项目最佳实践

近期,BoCloud博云收到了一封感谢信: 由BoCloud博云(全称:苏州博纳讯动软件有限公司)承建的某大型股份制银行信用卡中心(以下简称:卡中心)容器管理平台建设项目,在面对工期紧.任务重.要求高等诸多困难和压力下,我司高度重视与配合,在项目组全体成员的共同努力下,扎扎实实.勤勤恳恳.严谨负责.保质保量地完成了阶段性建设目标,为该卡中心应用的容器化工作提供了有力的技术支持与保障. 数字化转型发展到今天,其核心是促进业务变革与创新.伴随互联网+对银行业的深度渗入,使得To C场景与互联网的结合

PAAS云服务平台

云计算是一种可以方便.按需从网络訪问的.可配置的.共享的资源池(如网络.server.存储.应用程序和服务)模型,且仅仅需最少的管理(服务提供方交互)就可以高速供应和公布该模型. 云计算平台的核心部分是平台即服务,也即PAAS(Plat form as a Service). PAAS是以服务的方式提供计算平台和软件组合.在PAAS所提供的环境中.企业或个人能够使用不论什么预置的组件或接口,进行应用平台的构建和执行.换言之PAAS就是云环境中的应用基础设施.也即云中间件.因此PAAS也能够说是中

亚马逊AWS在线系列讲座——基于AWS云平台的高可用应用设计

设计高可用的应用是架构师的一个重要目标,但是基于云计算平台设计高可用应用与基于传统平台的设计有许多不同.云计算在给架构师带来了许多新的设计挑战的时候,也给带来了许多新的设计理念和可用的服务.如何在设计应用的时候充分利用云平台的各种特点是基于云计算设计的一个重要条件.在这个在线讲座中,我们将以亚马逊AWS云平台为例,讨论如何设计一个高可用应用. 我们先会根据AWS服务是否天然高可用.高容错的特点把常见的AWS服务分类.比如AWS把下面服务设计成高可用和高容错的服务: ·     Amazon S3