1。概述在云计算、大数据等新技术的推动下,业界主流应用架构正在从松散耦合的集中式SOA架构向解耦分布式的微服务架构发展。工作方式也在从烟囱式运维、人工运维向自动化、流程化、平台化、智能化运维转变。在“去IOE”和“自主可控”的技术和政策双重背景下,传统金融行业业务系统使用的数据库正逐步从老牌厂商的DB2、Oracle向开源数据库或国内新兴的分布式数据库过渡.数据库。技术路线的变化也带来了工作方式的变化。传统数据库运维人员在这一轮发展中会遇到哪些挑战,如何应对?问题。笔者结合自己的工作经历,整理了一些感悟与大家分享。二、新形势下的挑战1、运维成本大幅增加。传统数据库运维人员面对的数据库往往是独立的。业务系统仍处于垂直隔离状态。在烟囱系统架构中,每个业务系统都有自己独立的数据库。在管理这些数据库的过程中,我们经常需要序列化操作。但是我们的数据库运维团队还比较小,但是已经承担了上百个数据库的运维工作。按照传统的数据库单点运维方式,必然导致运维时间成本和人力成本的大幅增加。2、缺乏统一的“运维大脑”作为传统金融行业,业务系统都有自己独立的数据库,每个数据库都会分配给指定的数据库管理员进行运维,导致大家之间存在信息壁垒,无法形成所有数据库运行状态的全局视图,缺乏统一的“运维大脑”,无法进行统一的数据库分析和辅助决策。是否互通,很难保证运维的及时性。3、运维方式有待丰富。在现在的烟囱运维时代,我们的数据库管理员有时间和精力直接敲命令进行运维,比如安装、巡检、备份、升级、参数调整等基础工作。那是一个“纯人工时代”;随着数据库数量的增加,手动键入命令对每个数据库进行操作已经不再现实。于是,我们开始编写脚本,放到服务器上自动执行,由操作系统完成脚本执行,管理员只需要读取每个数据库的脚本执行结果即可。这是“剧本时代”;工作人员开始使用ansible等自动化运维工具批量管理数据库,只需要读取一次批量执行结果。这就是“初级自动化运维时代”。然而,即使是在“初级自动化运维时代”,信息的终点仍然是“人”,还需要我们的管理员来做最后的判断。当出现问题时,登录数据库读取各种指标进行人工分析。在当今分布式技术蓬勃发展、海量数据井喷的时代,光靠我们“人”来判断和处理如此多的信息流,已经是力不从心了。在这种情况下,就必须引入其他的运维方式,帮助我们的管理员从繁琐高压的工作环境中解放出来。4、缺乏新技术运维经验在“去IOE”和“自主可控”的技术和政策双重背景下,传统金融行业业务系统使用的数据库逐渐从DB2、Oracle过渡等老牌厂商对于开源数据库或者国内新兴的分布式数据库,我们也在探索分布式数据库的改造。但是,并不是所有的数据库管理员都具备新的数据库技术的理论和操作能力。一些管理员已经成为传统数据库领域的专家,可能已经运维了十年甚至二十年。面对新的数据库技术,传统的技术经验无法得到充分应用,甚至可能被颠覆。三、运维人员应如何应对新挑战1、制定规范和标准,降低运维风险作为传统金融机构,我们有一套完整的运维规章制度,比如运维操作规程、应急响应规范和预案,以及综合变更和回滚流程等,确保各项运维工作有序开展,而这些规章制度的有效实施往往需要每一个细节的落实岗位,数据库运维岗也不例外。数据库运维团队就是按照这些规范的指导方针,结合岗位各方面的具体工作,制定属于数据库管理的规范和标准。例如,将升级、上线、备份、数据迁移等工作组织成标准模板文档,形成运维资产,随时调用;或者更进一步,将数据建模和数据库设计、容量规划、SQL开发、高可用架构设计等工作组织成规范文档,为所有数据库开发人员提供咨询指导。通过规范化、规范化的管理,使数据库运维工作有据可依,遇事不慌张,降低运维风险。2、借助运维工具,开发自动化、平台化的运维。大数据背景下,运维工作已经不能仅靠人力来解决,而必须借助工具和平台来完成。目前有各种开源和商业化的运维工具和平台,很多传统的手工运维工作可以交给这些工具或相应的平台。对于日常的安装、巡检、升级、备份等系列化操作,我们已经开始使用自动化运维平台;以往,手动更新数据库配置信息表,交给ITSM或CMDB管理;数据库的监控和告警可以使用近几年流行的Prometheus+grafana技术配置,或者引入商业产品搭建数据库监控平台或者数据库性能分析系统;等等。作为数据库管理员,要时刻思考哪些工作可以交给“机器”,学会使用运维工具和平台辅助运维人员,保证业务的稳定性和连续性。3、探索智能运维,构建决策中心随着越来越多的运维工具投入使用,运维管理员似乎又“忙”起来了,因为他们需要在不同的工具和平台之间切换,以及各种指标在大脑中相互关联,综合判断,实现故障分析、关系维护等运维问题,这也给运维人员造成了很大的压力。深入思考后发现,所有这些运维工具、平台、系统,归根结底都是在采集“数据”,输出“信息”。数据已经成为现代企业生存的基础。如果能够整合这些“信息”,产生更大的“价值”,那么运维人员一定又多了一个利器。如何实现对运维资产数据的有效、精准、细粒度管理,利用大数据技术形成决策中心,运维数据消费效率成为当前不得不考虑的问题。展示。平台等技术应运而生,以解决此类问题。作为智能运维的直接受益者,数据库运维人员也在朝这个方向探索。4、积极拥抱新技术,自主搭建学习和实践的测试环境是转型的开始。如果你已经有DB2或Oracle的实践基础,可以通过对比的方式学习新的数据库技术。MySQL是当今使用最广泛的开源数据库。搭建简单,网上有很多学习教程。如果能先了解MySQL的原理,再对比学习其他分布式数据库就会容易很多。目前市场上分布式数据库技术的实现方式有两种,一种是通过MySQL+中间件实现,另一种是开发新型的分布式数据库来实现。有开源版的Mysql+中间件,很多数据库厂商都基于中间件对商业版做了分布式增强,而数据库还是使用开源的MySQL;自研的分布式数据库也有很多,很多知名的大厂商和中小公司都推出了很多。如果企业已经有了向分布式数据库转型的想法,那么数据库运维人员不妨借此机会开始参与项目的前期调研,一定会收获颇丰。5、技术,还得懂业务,懂管理。大型金融机构内部的分工往往比较细。很多时候,技术人员和项目管理人员是不同的团队。但是,对于个人发展,重点应该从技术领域扩展到复合领域。上面说了,如果企业已经有了向分布式数据库转型的想法,那么数据库运维人员就必须开始参与项目的前期调研,因为research、requirements、poctest都进行了在项目初期出来都是为了了解新技术。第一步是快速了解市场上的主流技术和应用现状。在项目建设期间,更需要技术和管理方面的复合型人才。数据库运维人员已经具备技术实力,更容易将业务需求与实际相结合,有利于项目的成功实施。项目完成后推广新技术时,技术人员的优势可以进一步凸显,因为无论推广实施什么样的新技术,都需要先制定完整的技术升级规范,做一个测试提前,并获得迁移量和改造难度,制定可行的切换方案,在这一点上技术人员可以说是有着得天独厚的优势。6、引进新技术人才,注入新鲜血液。如果公司有人才招聘计划,不妨适当引进新的数据库技术人才。一方面提升团队整体对外服务能力,另一方面也为团队引入内部讲师,有利于全体成员的进步。7、与厂商开展合作,引进专业技术,支持大型金融机构。大型金融机构的技术团队规模可能没有互联网科技公司大,但更多时候金融机构作为甲方出现,与科技公司合作的机会更多。数据库运维人员可以利用这些合作机会向专业技术公司学习。4.总结以上是笔者根据自己的工作经历得出的感悟。在传统数据库改造过程中,运维人员必须运用新时代的运维理念,及时调整自身发展方向,全面提升技术和管理能力,紧跟新技术潮流,以精细化、自动化、智能化的管理思想努力工作,在变革的浪潮中思考、砥砺前行。
