• 快捷搜索
  • 全站搜索

从0到1——平安云的构建与运维实践

2018-01-19 14:33:25作者:平安科技(深圳)有限公司云平台事业部总经理 方国伟编辑:金融咨询网
平安云最初的定位只是平安集团内部服务的私有云平台,但随着对云计算服务技术和金融场景服务的积累,平安科技决定用自身金融IT和云平台的产品来帮助更多的中小型金融企业上云,使其能够减少运维成本,提升IT服务效率,更好地回归业务价值。

云计算是21世纪兴起的新型IT服务交付和使用模式,云服务供应商通过大规模分布式的计算、存储、网络设备和软件技术提供不同层级的服务,用户通过网络以按需自助、弹性灵活的方式获得所需服务。云服务具备随时获取、按需使用、弹性伸缩、按使用量付费等多种优势。随着移动互联网、物联网和大数据应用的不断深入,企业传统IT基础设施的交付方式已经不能满足业务的快速发展需求。以金融行业为例,传统金融业务在逐步转变为“互联网+金融”业务模式的同时,对IT服务种类和服务水平都提出了新的要求。当企业服务对象从传统的以内部用户为主转变为以互联网用户为主之后,要开始应对诸如“双十一”和“双十二”等促销活动的大访问流量,要提供7×24小时的服务支持等,传统的基础设施服务方式已经不能满足互联网应用的需求,而需要云计算这样新的服务方式来解决问题。

除了业务需求推动以外,政策环境也鼓励创新发展。以银行业为例,根据银监会《中国银行业信息科技“十三五”发展规划监管指导意见(征求意见稿)》(以下简称《指导意见》),“十三五”时期银行业要大力发展以云计算为代表的新型技术,云计算与传统金融的加速融合,成为银行业金融机构抵御风险和增强竞争力的关键。《指导意见》要求银行业金融机构积极开展云计算架构规划,制定云计算标准,联合建立行业云平台,主动实施架构转型,并要求到“十三五”末期,面向互联网场景的主要信息系统尽可能迁移至云计算架构平台。同时,《指导意见》建议联合开展面向银行业的公共云平台规划和建设,建立符合法律法规要求、市场化运作、具备金融级安全等级的行业云平台。

一、平安云平台定位

        平安集团本身具备发展云计算的先天条件和业务需求。最近几年,平安集团正在从“保险、银行、投资”逐步转向“保险、银行、投资、互联网”,通过建设开放平台的模式进行平安3.0的战略调整。在过去十余年,平安科技(深圳)有限公司(以下简称“平安科技”)作为平安集团旗下的主力科技公司,为集团下面几十个独立专业公司提供各种IT服务。所以,云平台对于平安集团的意义是从应用层面可以通过云平台实现业务能力开放,从技术层面可以通过云平台实现IT服务能力开放。

        平安科技从2013年年底开始筹备云平台建设,并从2014年逐步构建平台和应用试点。平安云最初的定位只是平安集团内部服务的私有云平台,但随着对云计算服务技术和金融场景服务的积累,平安科技决定用自身金融IT和云平台的产品来帮助更多的中小型金融企业上云,使其能够减少运维成本,提升IT服务效率,更好地回归业务价值。

        在风起云涌的云计算发展浪潮中,目前市场上已经有几十家不同类型的云计算服务商,平安云的定位跟这些云服务有什么不同呢?平安云依靠平安集团强大的金融背景,专注于服务金融客户。那么,能不能在传统的IaaS服务之上,专门提供一些针对金融机构的云服务?平安科技有很多金融业务开发、运营的经验积累,是否能通过云平台服务的方式为更多客户服务呢?有没有可能为金融客户提供一些增值服务,比如建立一个金融机构的同业网络互联眼务平台?在思考了这些问题之后,结合平安集团的发展战略,平安科技在2015年年底开始将平安云定位为“专业、增值、可靠、安全、合规”的金融云服务供应商。

        专业——理解行业特性,利用平安科技多年的金融IT咨询及研发能力,专业服务于大金融行业客户。

        增值——为金融行业客户提供软件、数据、网络、征信等一系列增值服务,构建起金融同业共生共赢的“超级购物中心”。

        可靠——利用创新的高可用架构和自动化运维平台为用户提供可靠的基础设施服务,打造可信赖的云计算平台。

        安全——打造适合金融行业的安全体系、符合CSA规范的有强防护能力的云计算平台。

        合规——满足监管(一行三会)的要求,成为金融云的标杆,为金融行业客提供合规、便利的一揽子云计算服务。

        平安云的用户主要可以分为三大类:第一类是平安集团内部各专业公司,它们是平安云推进集团开放平台战略的核心客户,目前是平安云的主要客户群体。第二类是平安金融生态系统中的合作伙伴。平安集团各专业公司有大量的合作伙伴,很多合作伙伴选择在平安云上面构建他们的应用系统。比如平安证券多个合作伙伴把他们与股票交易相关的系统部署在平安云上面。第三类用户是其他中小金融机构。平安科技在跟客户沟通的过程中发现,许多中小金融机构不愿意在基础设施层面投入太多精力,而是更愿意把重点放在业务拓展上面,因此,平安云可以帮助这些用户实现其目标。另外,平安科技还与内部各个业务开发部门合作,通过建设各种金融能力开放平台的方式,即业务云服务的方式为外部金融机构服务。

二、平安云技术构架

        1.双模的混合架构

        平安科技刚开始建设云平台的时候是基于传统的技术架构的背景。像平安集团这样的大企业在传统的技术设施上投资巨大,也有运行好多年的应用,所以平安科技一开始建设云平台的时候就决定采用双模(Bi-Modal)方式。因为对大型机构来说,一般不可能把已有的基础设施推倒重来,所以一个比较容易推进的方式就是双模方式,即旧应用采用旧模式、新应用采用基于云的模式,然后逐步将旧应用迁移到云平台的策略。

        虽然说平安科技的初期目标是建设私有云,但从一开始就是按照公有云的服务方式和要求来做,比如一开始就强调要支持多租户,通过VPC(Virtual Private Cloud)技术来隔离不同的租户。集团内的每一个专业公司或一个相对独立的产品项目,对平安科技来讲都可以是一个独立的租户。双模架构中云平台和传统基础架构共存的方式如图1所示。

图片1.jpg

        这种通过独立租户的方式给平安集团各专业公司提供应用是很容易扩展到公有云场景对外提供服务的。现在已经有许多家中小银行在平安云部署了生产系统,每一家机构都是一个独立的租户,实现了资源的完全隔离。

        2.平安云功能架构

如图2所示,平安云平台架构的最底层是IaaS,主要是计算、存储和网络服务,这是云平台最基础的三个支撑服务。IaaS上面可称之为IaaS+,这一层主要包含数据库服务和中间件服务,这些服务对应用部署的关系非常紧密。PaaS层稍微复杂,平安科技把PaaS分为两种类型。一种是技术能力开放,是水平的技术服务,如大数据分析服务、消息队列服务等。这些服务都是IT层面的服务,跟行业没有关联。另一种是跟行业有关的服务,这是一种通过标准接口实现行业能力开放的方式。对很多企业来讲,这种PaaS可以构建出自己的平台特色。平安科技的定位是建设金融云。

图片2.jpg

        图2右侧是平台的公共服务,包括产品的监控服务、账户管理、计费等。图2上部是基于平安云基础层服务构建的各种平台层、应用层的服务。如汇保云(又名“保险云服务”)是一个面向互联网的金融服务,通过标准APl支持Web和App端客户接入,提供投保、承保、理赔、授信等业务动作所需的计算资源,为大数据分析和展现提供计算资源和基础架构环境,满足行业客户精准化营销的需求。

3.自主可控的技术路线

        云平台的构建非常复杂,涉及计算、存储、网络等大部分计算机领域中的底层技术。云平台包含几十种大小不同的产品,而且云计算技术还在不断发展变化中,因此传统的从供应商购买一个软件或提供一个所谓的交钥匙解决方案的方式,并不适合平安科技的应用场景和目标=平安科技采用的策略是自己把控整体的架构设计,整个平台的产品功能设计以及具体技术架构都由平安科技团队完成。具体到某个功能模块的实现上面,平安科技会根据情况选择不同的实现方式。

        每个功能模块的实现方式主要有三种:第一种是选择商业产品,由供应商提供产品和技术支持,这也是传统企业使用最多的一种IT服务构建方式;第二种是使用开源产品或基于开源产品来定制;第三种是自研,就是自己团队根据需求进行研发。采用后两种方式对团队建设的要求比第一种高很多,因为后两种方式高度依赖团队的技术能力。

        在平安云平台构建中,平安科技混合了这三种不同的方式。如底层的网络服务使用成熟的供应商方案,当然平安科技在供应商的产品上面做了比较多的开发设计。因为不希望把平台绑定在某一家供应商上,所以采用了松耦合的架构设计方式,在网络设备上面加了一层网络管理服务平台(Network ServicePlatform,NSP)。NSP可以通过插件的方式对接不同的供应商产品,比如可以对接华为、新华三和思科的设备,这样就相当于把云平台的整体架构跟底层具体供应商的产品做了一定的隔离。在云平台构建中也采用了多种开源技术,包括基于KVM的虚拟化技术、基于Docker的容器技术、基于Open Falcon的监控技术、基于Chef的自动化部署技术、基于Ceph的分布式存储等。

        在个性化要求比较高的云管理平台(包括门户、租户管理、账单管理等),在资源的配置管理(CMDB),在自动化部署引擎等方面,平安科技就通过自研的方式来实现,以更好地满足平安科技内部的需求。

        4.云平台的框架

        平安云采用的云平台框架是CloudStack,平安科技在2013年年底到2014年年初选择云平台框架的时候主要考察了Cloudstack和OpenStack。最终选择CloudStack的原因主要有以下几方面。首先,当时CloudStack比OpenStack要成熟一些,不同版本的API接口也是CloudStack更一致;其次,CloudStack在架构和易用性上比OpenStack更胜一筹,用户也比较容易上手使用;再次,CloudStack是用Java语言编写的,而平安科技团队对Java语言非常擅长。

        OpenStack在过去两年中得到了很大的发展,社区也非常活跃,相反CloudStack由于Citrix的策略和方向问题,其开源之路走得并不顺利。不过,平安科技一开始就设定要设计一个松耦合的架构,并且定下了尽可能少依赖云平台框架的原则,再加上对CloudStack源代码进行了深入研究,因此使用CloudStack的整个过程还是比较顺利的。平安科技在CloudStack基础上做了较多的定制化工作,基本上是在向构建一个自己的“PAStack”方向前进。另外,平安科技消化吸收了一些OpenStack中好的设计和模块,如网络服务平台(NSP)就是基于OpenStack的Neutron模块构建的。

        在两年多的云平台建设实践中,平安科技发现实际上云平台建设的关键不在选用什么样的框架,云平台底层的存储服务、网络服务、自动化编排等服务的建设远比采用什么框架更为重要。开源的云平台框架的好处是可以让用户快速入门构建起一个云平台,但是真正运营好云平台的关键还在于这些基础服务的能力是否强大,包括稳定性、扩展性、安全性等。

        5.高可用的架构设计

        虽然云平台在构建中采用了许多分布式计算的技术,但是云计算本质上却是集中共享的模式。如像Ceph这样的分布式存储技术,虽然存储服务是通过许多x86服务器节点来提供服务的,但是一个Ceph群集整体上还是一个共享的存储服务。所以,如何防止云平台故障影响用户所有应用就成为一个在架构中必须要考虑的问题。除了在不同层级考虑故障域隔离以及冗余设计外,平安科技在整个架构层级引入可用区(Availability Zone,AZ)的概念。平台云分为多个完全独立的站点或者区域,每个站点至少分为两个可用区(如图3所示)。引入可用区的好处是什么呢?因为不同可用区的网络、计算、存储都是分开的,如果用户的应用是跨可用区部署的,万一某个可用区发生大故障,那么对应用本身的可用性不会造成特别大的影响。当然,这种极端情况对整体应用的容量会有影响,需要在其他的可用区内进行快速扩容。

图片3.jpg

        除了可用区设计外,平安科技还提供一个关联性组的特性来帮助用户提升应用的可用性。当用户在部署一个应用的时候,如果指定一些云主机属于同一个关联性组,那么云平台的分配算法会自动把属于同一个关联性组的云主机部署到不同的物理服务器上。这样就不会出现由于一台物理机的故障而导致所有关联云主机都不可用,从而提升应用的可用性。

        平台云采用多地多中心的部署方式,现在已经在廊坊、深圳和上海的四个数据中心中部署了6个站点。每个云的站点跟站点之间都是完全相互独立的,也就是说任何一个站点故障都不会影响其他站点的正常服务。由于平安云业务的快速发展,目前在深圳和上海还有两个新的云数据中心正在建设之中。

三、平安云产品服务

        很多企业在构建云平台的时候会将其当做一个IT项目,又通过分一期、二期这样的方式来进行大周期的迭代,这种做法的风险在于项目的迭代速度太慢,跟不上用户需求和技术的发展。平安科技从一开始就定下要把云平台当成一个产品来建设和经营的目标,云平台内的每个子产品都按照最小化可行产品(Minimum Viable Product,MVP)方式进行快速迭代来构建。平安云主要的产品发展历程如图4所示。

图片4.jpg

        目前,平安云平台上已经有二十几个不同的产品,每个产品都还在进行迭代优化。如云磁盘,平安科技一开始使用的云磁盘都是基于传统的机械式磁盘构建的.为满足对IO要求比较高的用户需求.2016年也推出了基于SSD的云存储服务。又如云主机,平安科技最开始的云主机最高支持的配置为16核,后来为支持一些大数据和高性能计算的需求,也推出支持32核的云主机产品,而且现在还在研究基于GPu虚拟化的产品,以更好地满足科学计算型的应用场景。下面简单介绍两个2016年上线的产品服务。

        1.CaaS(容器服务)

        在云计算领域,NIST曾经对云的服务模型有专门的定义,不过这个定义只有SaaS、Paas和IaaS三大类。其他的各种云服务都是大家参考这个定义来命名的,如DB asa Service,Storage as a Service等。Container as a Service(CaaS)也是类似的,就是指基于容器提供的服务以及跟容器密切相关服务的集合。所以,CaaS通常包括的服务内容有:应用部署、镜像仓库、容器管理等。这种命名方式的好处是以一种非常简洁的方式让人一下子抓住服务的重点。CaaS比较特别的地方在于它起到一个桥梁的作用,比较好地连接了底层基础架构层服务和上面的应用层服务,所以构建这个服务的时候需要非常了解这两个层面的技术,并且最好还能集成开发过程管理的一些工具或平台,这样可以更好地发挥CaaS服务的作用。

        平安科技从2014年开始关注Docker技术,然后从2015年开始投入专人研究容器相关技术并开始构建容器服务。容器服务属于平安云平台服务的一部分,平安科技做基于Docker的CaaS还是从用户的需求出发,主要解决部分应用的快速部署和弹性扩展需求。希望能够通过CaaS服务缩短应用的上线时间,并能在应用压力上升的时候实现快速扩容。平安科技构建CaaS服务主要实现两个目标:一是提供一个业界通用的CaaS服务,整个服务方式和益处跟外部公有云CaaS服务一样,给用户多一种灵活部署应用的方式;二是集成公司内部的持续集成和部署平台,这更偏向于内部应用,让用户在开发工具中(比如Eclipse)提交代码后自动化完成应用的编译、打包、验证、部署等步骤。

        在技术实现上,在多租户的场景中,为进一步提升隔离性,平安科技采用了跟亚马逊AWS的ECS容器服务类似的做法,即在底层IaaS之上部署Docker容器。平安科技多租户的容器服务环境是在Rancher开源产品基础上客户化构建的。在内部隔离性要求不高的场景中,可直接在物理机上通过MM(Mesos+Marathon)方案提供容器部署服务。

        2.自动化部署服务

        能够通过门户自助申请各种基础架构服务对用户来说是比较方便的,这种方式已经为用户提升了很大的效率。但是,平安科技的最终目标是让用户可以在云平台上实现“一键式”应用部署(One-Click Application Deployment)。有没有办法进一步提升用户的效率呢?平安科技首先想到的是通过自动化的方式来部署环境,而不需用户通过门户一个个来创建VPC网络、云主机、云磁盘等资源。这个想法有点类似亚马逊AWS的CloudFormation功能:用户先通过JSON格式的文本文件来描述需要的环境,然后通过自动化部署引擎对XML文件(JSON内部会先转成XML文件给部署引擎处理)进行解析生成具体的基础架构环境。不过,这个功能只是可以帮助用户陕速地部署底层环境,但实际上用户真正需要的是快速准备环境并部署应用。为了满足用户首次部署应用的需求,平安科技在CloudFormation的概念基础上做了一点微创新,就是除了描述基础架构资源外,还可以通过文件描述应用的部署信息,包括应用代码位置、中间件配置信息、数据库连接池的配置信息、访问账户信息等。

        平安云平台内部的大部分应用都是标准的Java企业应用,所以,通过上面这种部署方式可以做到在20分钟左右的时间里从零开始在云平台上部署并配置好应用,这极大地提升了用户首次部署应用的效率。这些配置信息可以保存下来,可以重复使用或稍微修改后使用。如果结合内部CMDB中的应用配置信息,还可以进一步简化部署过程。

        在实现了自动化部署服务之后,平安科技希望简化用户操作,进一步降低用户构建基础架构的难度。虽然提供了一些模板让用户来编辑JSON格式的配置文件,但是毕竟编辑一个文本文件是比较复杂的。平安科技进一步想到的办法是提供给用户一个图形化的界面,通过拖拽图标的方式来实现部署架构的设计,并同时完成环境的部署。

四、智能运维

        1.谁构建谁运维

        云平台产品跟一般的软硬件产品有一个很大的不同,即云平台产品是把好的产品功能和完善的运维结合在一起提供给用户的一种服务。如果只有好的产品功能而没有配以完善的运维服务,那么对用户而言,这同样是一个失败的产品。所以,从一开始构建云平台,平安科技就高度重视产品的综合性建设,强调产品的构建和运维一体化。平安科技的原则是谁构建谁运维(Youbuild it,you run it),这样做的原因主要有三点:一是这种做法职责划分最为清楚,不会发生开发和运维人员相互扯皮的情况,要求每个产品都有一个明确的负责人(Owner),由这个负责人统筹这个产品相关的研发和运维工作;二是云平台技术发展非常快,平安科技也采用了快速迭代的开发建设方式,所以产品本身跟传统的软件产品相比会有更多的变化,而且云平台产品也会更加复杂,像传统运维那样完全交给运维团队的运维方式是不能满足要求的;三是平安科技希望产品开发人员能够体会运维的痛点,从而在产品开发设计阶段把运维需求考虑在内。

        2.智能运维平台一AIphaOps

        平安云拥有自建的一套运维体系——AlphaOps,包括运维目标、运维规范、运维流程、运维平台等。这个名称的灵感来源于AlphaGo,代表智能的运维体系建设。在AlphaOps运维体系建设中,平安科技参考和借鉴了多种不同的运维模式,包括传统基于ITIL的平安内部的运维流程、互联网行业流行的DevOps、谷歌的SRE等。

        平安云一共有两个门户:云门户和AlphaOps运维门户。云门户是用户使用云平台产品服务的主要入口,而AlphaOps门户则是智能运维平台的门户,只针对云平台内部的管理员和运维人员开放,大量日常运维工作都以此为入口。各种自动化运维的工具、程序、监控都集成在AlphaOps门户中。

        平安科技的目标是构建一个智能的自动化运维平台,而智能化建设将是长期的过程。目前人工智能处于一个爆发的前期,平安科技希望把人工智能和机器学习的概念应用到云平台,减轻人的压力。传统的运维需要大量的手工操作,相当于把人喂给机器(“人肉”运维),平安科技希望人能掌控机器,因此,平安云所有的运维人员都需要至少熟练使用一门编程语言,否则自动化无从谈起。

        3.产品建设的三个层次

        王国维曾经讲过做学问有三重境界,平安科技认为云平台的产品建设也有三种不同的层次。产品建设的最高境界是在产品开发设计前期就把运维需求纳入整体来考虑,从而设计出一个自动化的产品,也就是说这个产品上线后不需要太多的人工运维工作,产品本身就能完成自主智能运行。第二种层次是产品开发上线完成后是可以被自动化运维的,也就是说产品虽然没能做到自动化运维,但是它还是对外提供了一些API接口,可以通过外部的编程、脚本等来实现自动化运维的效果。第三种层次是产品设计完全没有考虑运维需求,不能被外部编程调用和管理,需要大量的手工操作才能满足运维要求。

        平安科技坚决杜绝第三种情况,确保实现第二种,争取实现第一种。哪怕在选择第三方产品时,也坚决不选属于第三种层次类型的产品,因为没法自动化运维的产品意味着后续不断增长的人力成本。平安科技相信智能化运维是运维工作的发展方向,相信通过强化自动化的产品建设,通过AlphaOps可以逐步降低运维工作量并提升运维服务质量。

        现在市场上有许多不同的云平台,每个云平台都需要有自己的特点,就像人一样,没有特点也就不能给别人留下深刻印象。平安云的定位就是做金融领域的垂直云平台,既支持平安集团3.0战略建设开放平台的各种金融业务,同时也作为开放服务的一部分服务于众多中小金融机构。整个平安云的路线和架构都是平安科技自己控制的,这样做的好处在于不会依赖任何单一的供应商,在技术上做到自主可控。

        从云平台的规模和应用范围来看,平安云目前在金融行业处于领先地位。截至目前,平安云支撑了平安科技超过60%的生产系统(100%的开发环境和80%的预生产测试环境),同时还支撑了几百个非科技的生产系统,支持了几十家中小银行的应用系统。除了大量的传统应用外,跟平安集团3.0战略密切相关的金管家、好车主、主账户、银行一账通等都是平安云的用户。另外,就像亚马逊AWS支撑了像Airbnb、Instgram、Uber等众多互联网公司,平安云上面也正在诞生像万家诊所、平安好医、前海金融资产交易所等多家快速成长的创新公司。

(文章来源:中国金融电脑杂志) 

扫码即可手机
阅读转发此文

本文评论

相关文章