银行基础软件 PaaS 平台建设实践
【摘要】基于人工或者脚本半自动化的交付方式及运维方式,部署维护时间成本高,交付效率低下、业务等待时间长、运维误操作风险高,明显不能满足业务快速增长和稳定运行的要求。快速交付和自动化运维的重要性越发突出。基础软件PaaS建设的指导思想是一切皆服务,利用PaaS理念将基础软件产品和技术能力服务化,提供完整的数据中心基础软件服务能力,最终实现基础软件运维模式从人工模式向智能模式的转型。本文详述了民生银行对基础软件PaaS的探索与实践,对相关行业具有参考意义。
1、项目背景
•基础软件运维的挑战
银行为什么用db2数据库随着民生银行业务的不断发展,目前我行数据中心运行着几百套生产系统,并且持续的有新系统上线以满足日益增长的业务需求。不同业务系统使用的基础软件如操作系统、数据库、中间件等也有所不同,即使采用了较为严格的品牌收敛和软件准入策略,目前需要管理和维护的基础软件仍然种类众多。同时,基础软件的运行环境也正在从物理主机逐渐转变为虚拟化主机、容器,使得基础软件部署场景更加复杂多样。另外,每套应用系统还有相应的开发、单元、集成、性能、版本等多套测试环境,数量上是生产环境的若干倍。原有的基于人工或者脚本半自动化的交付方式及运维方式,部署维护时间成本高,交付效率低下、业务等待时间长、运维误操作风险高,明显不能满足业务快速增长和稳定运行的要求。快速交付和自动化运维的重要性越发突出。
•云计算概念的兴起
云计算是与信息技术、软件、网络相关的一种服务,这种计算资源共享池叫做“云”。云计算把许多计算资源集合起来,通过软件实现自动化管理,这些资源能够像商品一样被快速提供。云计算按服务类型分为:IaaS(基础设施即服务),PaaS(平台即服务),SaaS(软件即服务)。PaaS通俗地说就是底层平台的云化。在云计算时代,计算能力在云端而不是本地,将底层平台的能力以服务的方式提供在云端,
这就是PaaS。
•基础软件PaaS的建设目标
我行于2018年启动基础软件PaaS建设项目。基础软件PaaS建设的指导思想是一切皆服务,利用PaaS理念将基础软件产品和技术能力服务化,提供完整的数据中心基础软件服务能力。基础软件PaaS建设的整体目标是与现有业务系统及现有工具类平台有效整合,实现基础软件在生产环境及测试环境的部署上线、弹性扩缩容、变更、巡检、回收下线等工作的自动化;实现基础软件资源展示、容量管理、性能管理、基础运维、问题管理等管理功能的集中化、可视化;减少运维人员直接登录目标服务器操作的比例,降低人力实施成本,提高资源交付效率;实现有效的性能管理和容量管理,提高资源利用率;提前发现基础软件潜在
的问题、风险,提高由基础软件故障引起的生产问题的解决效率;实现基础软件运维模式从人工模式向智能模式的转型。
2、技术架构
•基础软件PaaS建设方向
从面向的用户来讲,主要面向行内基础软件资源申请人员、科技开发人员、应用运维人员、系统管理中
心基础软件管理员。从支持的基础软件运行环境来讲,优先支持容器化运行环境,同时也支持物理机、虚拟机等多种运行环境。从平台自主可控维度来讲,采用的技术框架首选开源和行内自主可控的框架,前、后端分离,平台可扩展性要强,采用微服务思想将不同的功能模块构建成独立的服务,应用容器化,对外提供标准化的基础软件PaaS服务能力。从与我行现有工具平台集成的维度来讲,与我行数据中心现有工具和平台集成,持续提升数据中心统一运维能力,同时因地制宜,有效利用现有工具平台,避免重复造轮子。从支持的产品维度来讲,覆盖我行数据中心支持的主要基础软件,包括不限于操作系统、数据库、中间件、容器、Redis、Kafka、访问代理、分布式存储、NoSQL、大数据、分布式日志平台等。
•基础软件PaaS逻辑架构
基础软件PaaS逻辑架构如下图所示,包括公共模块层、执行层、产品层、统一运维集成层、数据层、门户层等。
公共模块层:对接行内统一身份认证平台实现行内用户的同步、管理;通过基于角的访问控制实现用户的权限管理;通过对执行层的自动化执行引擎模块、容器执行管理模块、Kafka执行管理模块等进行封装对外提供流程执行服务接口;另外还包括批量处理、CMDB服务、资源管理、配置管理、操作审计、密码管理等基础功能模块。执行层:基于Ansible(一个能实现批量部署的开源自动化运维工具)实
现了自动化执行引擎模块,能够实现批量远程命令执行,由此实现对依托于物理机、虚拟机运行环境的资源的自动化部署及管理;基于
Kubernetes(简称K8S,一个开源的、用于管理云平台中多个主机上的容器化的应用)实现容器执行管理模块,能够对容器化资源进行管理;针对Kafka、大数据等专有集,实现大数据执行管理模块、Kafka执行管理模块,能够对大数据集、Kafka集进行管理。产品层:以产品为导向,遵循基础软件PaaS统一规划,实现特定基础软件产品端到端的全生命周期管理。统一运维集成层:对接行内统一身份认证平台,实现用户登录验证及用户信息获取;对接CMDB实现应用系统、服务器信息获取,及基础软件信息的准实时推送;对接数据中心服务平台,实现测试环境基础软件标准化资源的自服务申请及生产环境部分基础软件产品的自动化部署实施;对接审计平台实现资源自动化审计纳管等。数据层:采用关系型数据库、NoSQL数据库、Elasticsearch等作为数据层存储介质。门户层:实现对各种基础软件的统一运维管理门户。
3、项目一期主要功能概览测试环境资源自服务
基础软件PaaS依托数据中心服务平台提供测试环境基础软件自服务申请。目前基础软件PaaS 支持的标准化产品服务列表如下:
上述标准化产品在测试环境满足特定的申请场景(如项目组申请的资源数小于等于限定值等,具体可参
见内网confluence申请指南),可以不需要经过评估、审批环节,实现自服务申请。同时申请参数大大简化,提升了项目组资源申请效率。为避免资源浪费,提升资源利用率,测试环境自服务申请应按需申请,已申请的资源平台会定期统计资源使用情况,针对使用率低的资源,基础软件PaaS会启动资源回收流程。非标准产品或不满足免审批条件的标准产品需要经过资源评估、架构评估、系统管理中心领导审批后分配资源。交付效率无法保证,建议申请标准基础软件产品。生产环境资源交付自动化实施相较于测试环境基础软件资源自服务申请流程,生产环境资源分配策略更加谨慎,流程要求更加严格,需要申请流程各个环节审批人的评估和审批。生产环境基础软件资源申请同样依托于数据中心服务平台,当流程流转到资源实施环节后,实施人员通过点击执行按钮,由数据中心服务平台调用基础软件PaaS提供的流程执行接口,自动化实施,分配资源。工单每个实施步骤可以由原来的几天缩短到小时级乃至分钟级,整个基础软件资源交付时间可以从一个变更周期有效缩短到3天以内。数据库PaaS