3

云时代下,数据库的关键趋势与DBA发展之路

 2 years ago
source link: https://www.51cto.com/article/712449.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

云时代下,数据库的关键趋势与DBA发展之路-51CTO.COM

云时代下,数据库的关键趋势与DBA发展之路
作者:蔡鹏 2022-06-27 11:02:41
希望通过汇集蔡鹏的研究成果和实践经验,带大家明确新数据库时代,DBA的个人发展之路。

​伴随着云计算、分布式技术的逐步落地,近十年来数据库的形态发生了很大变化,各类数据库不断涌现,数据库架构也随之演进。在云时代下,企业该如何选型并构建数据库架构?如何应对业务上云带来的数据迁移挑战?数据库有何“新解”?DBA的未来发展趋势如何?

今天为我们解答以上问题的嘉宾,是来自货拉拉的DBA负责人蔡鹏老师。希望通过汇集蔡鹏的研究成果和实践经验,带大家明确新数据库时代,DBA的个人发展之路。

图片

货拉拉  DBA负责人

前饿了么、蚂蚁金服技术专家,现任货拉拉数据库部门负责人。负责货拉拉全球化业务场景下整体数据库、消息队列、缓存、数据库中间件的稳定性建设工作,主持过饿了么数据库异地多活建设,对数据库库中间件、分布式数据库和自动化运维平台设计开发有丰富的实践经验。

数据库进步、颠覆传统DBA、塑造行业

云数据库进入百家争鸣的时代,云商间的激烈竞争,再加上现实的业务需求,迫切需要促进数据库技术的进步。近几年业内涌现出了大量新式数据库,这些新式数据库,一方面对传统关系型数据库做了大量改进优化(分布式、云原生等);同时在新硬件能力加持下(我们看到了恐怖的几百核心CPU、超高容量高性能的存储),数据库性能进一步飞跃甚至“性能过剩”。数据库形态的改变正在深刻的影响整个IT行业,相信新技术下DBA也有新机会。

Q1如何理解:云时代,要让研发具备DBA的能力?

个人理解:让研发具备DBA的能力,本身是“开云时代的倒车”。因为云本身,不管是在屏蔽底层基础设施的稳定性上,还是在自身产品内核的完善建设上,都具有更强的容错及兼容能力,因此云不仅要提供一个稳定的基础设施,更是屏蔽了诸多研发过程中的一些复杂性、容错性,让研发更加注重对业务自身的建设上。

不管是在云时代,还是自建时代,研发都需要对数据库本身做一定程度的理解,比如合理的设计范式、结构设计、索引设计、SQL写法等,但是我们也看到云数据库越来越智能化,甚至能对SQL智能改写、索引自动优化做到了很高程度的自动化,这进一步削弱了研发对数据库本身的关注度。

但凡事也有例外,比如数据库类型越来越多,不同场景可能使用不同类似的数据库更加具有优势,过去这种选型由DBA来主导完成。基于云DB对研发复杂度的屏蔽,研发可以根据自己对云数据库产品的理解程度,进行合理的选型,不过这里面是有潜在的风险的。

比如早期货拉拉就有类似的实践:研发自行做了很多数据库选型,最终导致的结果是服务治理失控,同时也带来很严重的业务风险(比如一条数据既写MySQL,又写MongoDB,跟ElasticSearch最后还要刷一份到Redis缓存,有吐血的修数据历史)。因此这部分工作仍旧需要DBA来指导完成,因为DBA在这方面相对而言会有更好的大局观。

Q2云时代的DBA职责有什么转变?应该提前做些什么?

职能转变:

①数据库的可靠性稳定性在云能力加持下不在是核心工作比如部分SLA的工作由云来保障;

②如何科学合理的使用云能力赋能业务在架构设计方案规划、节约成本显得更重要。

提前准备:

①在对云的理解上:对云产品进行积极学习,了解各家云的套路玩法;

②个人能力建设上:需要加强复合多元化的能力建设,做到懂数据库、懂平台、懂研发、实现DBA到架构师的转变。

Q3云时代,企业IT设施呈现集中化、规模化效应,对效率、性能的要求提升,我们对云数据库产生了哪些技术新需求?

数据库发展至今基本在满足用户无止境的既要(高性能)、又要(稳定性)、还要(可扩展性、可运维性等)的“过分”需求:

  • 能力多元化需求上:AP+TP(HTAP)、行列一体化、SQL与NoSQL共存、持久与Cache共存、存储计算分离无限可扩容;
  • 架构上:要求基于云原生的异地多活/容灾(两地三中心、三地五中心)能力;
  • 治理上:更加智能化的自治能力;
  • 成本上:越便宜越好(用户跟老板一样,总是不讲道理)。

Q4数据库存储未来分层的设计,有没有可能在混合云环境自由迁移或者自动迁移?实现的难点在哪里呢?

个人理解是很难的,实现的难点主要在云商间的壁垒,或者自身产品的封闭性与产品间的兼容性上:

  • 云商壁垒:由于商业原因云商产品间存在天然的隔阂,云商间短期看不到相互产品间打通的需求;
  • 产品封闭性:不同云产品底层技术原理不一致不公开,虽然只对用户层暴露了统一的标准协议,但是对实现跨云跨产品间的迁移,还是存在关键原理上的障碍;
  • 产品兼容性:不同云产品,甚至在基础协议层,都不兼容跨云迁移的前置条件。

当然对于基础协议层兼容,比如常用的MySQL及其变种系列(Binlog格式兼容)的跨云迁移技术实现上,还是相对比较简单的,不管是借助云自身的能力(如DTS),或者自己开发一个迁移工具都是可行的、但是这种情况毕竟是少数。

不过随着未来数据库逐步往开源方向发展(封闭是没有未来的),这会促使更多技术人对云产品做更多深入的理解,这会给跨云间的数据迁移提供更多技术支撑,当然这对技术本身有很高的要求。

不过我也注意到:近几年出现了很多三方技术服务公司,专门提供云上各种解决方案,或许基于云会诞生一些新的商业机会,也是技术人技术变现的一种途径,这似乎也变相让“DBA消亡论”不攻自破。​


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK