DevOps应用:民生银行IT一体化管理与自动化发展(转发)

背景与挑战

近几年,随着业务的增长、数字化转型加速、互联网金融业务快速发展和迭代,银行数据中心传统的IT架构面临着巨大的挑战。数据库作为最重要的IT基础设施组件,数据库的数量出现井喷式增长,同时数据库的技术架构和运行环境也越来越复杂。数据库种类上从使用某单一企业级数据库产品转变为混合使用多种商业数据库产品和开源数据库产品;数据库架构也从依赖单机性能的集中式,转变为读写分离、分库分表、分布式多活等各种复杂架构;数据库的运行环境也从物理主机转变为各种虚拟化、私有云、公有云甚至容器。 在这样的背景下,传统的运维方式同样面临巨大挑战,对传统的DBA团队也提出了更高的要求:

更高效:互联网化开发运维模式的兴起如敏捷开发、多重迭代、DevOps等,对数据库系统的快速交付提出了更高的要求,如从原来的每月发布版本变成了每周甚至每天发版;用户群从柜台转为了线上,这意味着更短的数据库停机时间,并且出故障后的影响程度大大增加,对故障的处理时间也提出了更高的要求。

更低成本:目前金融行业受外部环境等因素影响,面临着巨大的成本压力,数据中心越来越重视降本增效,更多的采用通用的廉价的硬件基础设施,减少商业软件,拥抱开源。数据库从部署到运维,也应减少对商业软件的依赖,采用基于开源软件的定制开发或者完全自研与行内环境更加适配的运维平台体系,这对DBA团队提出了新的要求。

更智能:智能化程度决定着效率提升和成本降低的上限,随着数据库数量快速增长、数据库环境的更加复杂多样、监控指标纷繁芜杂,没有智能化的技术做依靠,也难以达到海量运维的要求。

用智能运维应对挑战

数字化经济、互联网金融的发展对金融领域带来的是挑战,也是机遇。作为一家拥有强大创新基因的金融企业,民生银行正在加快推进全面改革转型,致力于成为“民营企业的银行、科技金融的银行、综合服务的银行”。为此,民生银行正加速推进科技金融建设,以“数据+技术”双轮驱动改革转型,着力打造数字化智能银行。

为了助力我行顺利转型,我行数据库团队基于自身的特点和经验,提出了民生银行数据库智能运维新理念,并且通过持续的建设,完成了部分的系统的开发和上线。该理念的主要内容包括如下几点:

标准化:数据库产品逐渐收敛,按照场景固定使用某一种数据库产品;数据库配置固定,标准化场景后只能采用标准化配置进行部署和运行;流程固定,申请、变更、评审和问题处理等都采用标准化流程。

自动化:自动化是对标准化的进一步提升,通过自动化脚本和程序,进一步控制标准化的执行,对安装部署、监控预警、变更管理、上线审核和问题处理等标准流程全部实现自动化处理。

集中化:集中化将各种自动化工具集中起来,通过统一的界面、接口、流程提供给用户。通过集中化的管理,可以更好的节约运维成本,提高运维效率。

智能化:智能化是未来数据库运维的重要方向,作为DBA,需要借助人工智能来应对海量的数据库和海量的运维指标,提高问题定位的准确性和预测能力,加快解决问题的速度。

智能运维的体系架构

我行数据库团队基于“标准化”、“自动化”、“集中化”、“智能化”的运维理念,设计开发了一整套的流程、工具和平台,形成了智能运维的体系架构。

DevOps应用:民生银行IT一体化管理与自动化发展_IT一体化

标准化:标准化对应了各种规范、流程、制度等,制定这些规范、流程、制度的目的是让数据库运维更加精细、风险更低、效率更高。

DevOps应用:民生银行IT一体化管理与自动化发展_DevOps_02

标准化

自动化:由各种自动化工具组成,通过这些工具来更好的辅助标准化的实施,这些工具大部分为自研开发,通过使用这些工具,减少了DBA大量的重复性劳动,也使标准更容易实施落地。

DevOps应用:民生银行IT一体化管理与自动化发展_IT智能化_03

自动化

集中化:集中化指通过采用集中管理、开发统一的界面、提供统一的入口来将所有零散的数据库工具进行整合,使操作更加人性化、更加便捷,提高DBA的工作效率。

DevOps应用:民生银行IT一体化管理与自动化发展_DevOps_04

集中化

智能化:为了在有限的人力的情况下应对将来海量的数据库数量和种类繁多的监控指标,我们必须借助机器的力量自动完成原来靠人力完成的工作,甚至借助机器学习的能力提前发现人力所不及的深层次问题。目前这层的很多工作还处于预研和试点阶段。

DevOps应用:民生银行IT一体化管理与自动化发展_DevOps_05

智能化


数据库PaaS平台的技术架构

通过近几年我行的持续投入,已经实现了该体系架构下的若干子系统和子模块,初步建成了我行的数据库PaaS平台。该平台从上到下由数据库网关层、数据库层、资源层、物理层以及管理层组成。其平台架构如下图所示:


物理层:主要是机房、网络设备等基础设施,目前主备机房已经实现二层打通。

资源层:为了提高资源的利用率和弹性缩扩容,资源层主要由容器和虚拟机组成,由IAAS平台实时分配,同时为了支持高负载的应用,还需要兼容部分物理机的场景。

数据库层:支持我行主流的数据库,包括DB2、Oracle、MySQL,以及正在试点的各种分布式数据库产品。为了降低存储成本、提高部署的灵活性和切换速度,数据库层采用数据库日志复制技术进行主备的搭建,比如DB2 HADR、Oracle ADG、MySQL主从、MGR等。

数据库网关层:为了对应用屏蔽底层的数据库主备关系和提供主备自动切换的能力,需要自研数据库网关,提供路由转发、探活切换等能力。目前这层我们还处于研发阶段,路由转发模块可以考虑用类似LVS的反向代理或DNS的客户端路由来实现。

管理层:提供数据库PaaS平台所有的管理功能和自助服务,由各种功能模块组成,采用了微服务、Ansible等技术,对外提供统一的入口。目前包括资源申请、监控告警、性能容量管理、基础运维、问题管理、SQL审核、SQL执行、元数据管理、备份恢复等模块。

总结和展望

我行数据库团队通过持续坚持“标准化”、“自动化”、“集中化”、“智能化”的运维理念,高效维护着全行几百套系统、上千个不同类型的数据库,同时经过近几年持续的研发投入,逐渐打造了民生银行的数据库PaaS平台。

我们期望未来民生银行数据库PaaS平台的三个方向分别是云化、分布式和智能化:云化指实践各种容器化、虚拟化技术,让资源分配、部署、监控、管理、回收、变更更方便快捷,平台更加自助式,最多程度的减少DBA的介入;分布式指接入企业级分布式数据库,提高分布式数据库的覆盖率,同时推进存量系统的分布式架构改造;智能化指开发推广智能预警、根因分析、数据库画像等智能化场景,提高海量数据库的运维能力。我们相信通过持续的投入和努力,一定可以达到更高效、更低成本和更智能化的运维要求。

作者:

  • 朱彬,多年数据库的运维管理经验,目前正带领数据库团队打造数据库PaaS平台,完成从传统运维向智能运维的转型。
  • 郝庆运,资深DBA,加入民生银行之前曾在IBM从事DB2研发和三线支持工作多年,现负责数据库运维和运维架构管理工作。
  • 周鹏,DBA,负责数据库运维,数据归档管理平台、基础软件PaaS平台建设等工作。