数据库管理员们别再为“删库跑路”而烦恼了,你们的光环在放大!
今天的数据库管理员(DBA)不仅仅是只有“光环”的人,现在他们希望在实现业务目标方面发挥战略性作用。数据库管理员们为“删库跑路”而烦恼已经是过去时?
在过去十年中,在现代企业中管理和运行数据库的需求已经发生了巨大变化。负责运行企业数据库的数据库管理员(DBA)正在看到一个普遍的焦点转移:他们被要求开发满足业务需求和目标的架构,设计和可扩展性策略,而不是确保访问和可用性。
这种演变大部分始于基于互联网的公司,以及他们采用的新的商业模式。这些公司要求他们的站点可靠性工程师(site reliability engineers,SRE)或多面手DBA来确保企业的主要收入引擎(应用程序和网页)不仅保持稳定,而且可以扩展到业务所需的任何地方。这远远超出了过去DBA的标准职责:只需保持数据库,保持备份,并在问题发生时做出响应。
新的商业模式,新的应用程序问题
由于在互联网上开展业务不仅变得更加普遍,而且必须保持竞争力,因此企业需要找到能够跟上技术和架构变化的新部署模式。其中最大的趋势是云和“as-a-service”,其中软件,数据库,平台甚至基础设施都可以通过基于云的模型(软件即服务[SaaS],数据库即服务[DBaaS],平台即服务[PaaS]和基础架构即服务[IaaS]。
管理基于云的数据库和基于DBaaS的数据库环境的要求和需求随着这种转变而发展。例如,在SaaS领域,应用程序中断意味着收入损失。除了直接收入的损失(以及解决危机的费用),服务和应用程序的瘫痪意味着客户流失。这意味着经常性收入的损失(对于SaaS的客户和提供商而言)。为了保持收入流动,公司关键SaaS数据库基础架构的每个部分都需要进行规划,包括内置冗余和面向未来的架构,以及如何扩展以实现增长。
增长意味着扩大服务或进入新市场。这通常需要新的业务关键型应用程序。在今天的“as-a-service”世界中,有几种方法可以开发和部署。在内部,在云端,作为服务?组合?容器是个好主意吗?虚拟化环境?当你尝试发展业务并满足客户要求时,所有这些都是选项。
在满足客户需求方面的成功是企业满足(或不满足)业务目标的方式。在当今世界,客户希望应用程序和网页能够快速,无缝地工作,而且不费吹灰之力。当我们想要的时候,我们都已经习惯了我们想要的即时性。这意味着企业必须敏捷并能够快速部署新服务和应用程序,以满足新功能的需求或利用未开发市场中的新机会。
企业数据库需求正在不断发展
在部署服务,应用程序或网站时,你始终需要规划扩展。可能影响数据的第一件事是数据库工作负载的变化,无论是由于存储和访问的数据的变化还是流量的变化。
了解数据库环境的灵活性也很重要。它可以横向扩展以应对增长,还是需要更多硬件?如果你在云中,增加使用量会产生哪些成本?在云中购买更多实例以满足即时需求很容易,但这些实例可能会被遗忘,并且即使在需求已经过去之后,也会从你的运营支出中消耗掉现金流。
了解你正在收集哪些类型的信息,以及为什么可以提供一些有关如何的信息。这通常意味着为不同的应用程序使用不同的数据库。
例如,考虑一个电子商务网站。有许多应用程序协同工作来收集电子商务的数据:购物车内容,已完成的订单,库存信息和重新进货订单。你可以将所有这些信息存储在单个数据库中,但这可能需要额外的工作和开销,才能将数据转换为特定应用程序的可用格式。相反,你可以将信息存储在最适合该类型数据的数据库中。强制一个数据库处理它未设计用于处理的工作负载,会降低性能并导致其他问题。
在推出产品或服务之前,你可以考虑的问题越多,未来发生灾难的可能性就越小。这意味着,例如,金融交易应用程序开发人员需要DBA和数据库工程师来构建一个可以轻松扩展并避免延迟问题的数据库。为此,他们需要与开发人员密切合作,以编写更好,更有效的数据库调用,并构建一个将滞后减少到接近零的数据库。
当公司将其数据库迁移到云时(例如,使用DBaaS选项,如Amazon Relational Database Service和Aurora,Google Cloud或微软Azure),云提供商通常会接管大部分运营自动化的工作任务。
那么,你还需要DBA吗?是!不断变化的数据库环境并没有消除对数据库专业知识的需求:它将专业知识的重点更加接近应用程序的设计和开发方面。有些人不仅需要设计和调整数据库来支持应用程序,而且还必须了解如何将云中可用的模块化部件构建为一个可以满足应用程序和公司需求的内聚,可扩展的单元。这意味着通过高效的数据库专业知识实现了更高的影响和更清晰的ROI。
DBA需要知道什么?
随着数据库格局的发展,有价值的DBA将更少关注修复解决方案,而更专注于战略和规划解决方案。将询问DBA数据库如何为公司的整体业务目标做出贡献,以及有哪些解决方案可帮助实现这些目标。他们需要帮助应用程序开发人员创建数据库调用,这些调用现在不仅有意义,而且可以大规模运行。
借助云部署和容器化等新技术选项,他们需要监控并不断重新评估应用程序如何使用数据库以及如何提高性能(或在不影响性能的情况下整合客户的新功能或需求)。
最后,随着越来越多的公司为不同的应用程序和场景使用不同的数据库,DBA需要不断更新新的数据库趋势和技术,以保持自身在数据库知识方面的竞争力。
多年来,在很多企业我们也看到了这种转变。我们每天面临的问题类型随着数据库环境(以及DBA的角色)而发展。目前,也许你的客户打开的支持票据中有超过50%与应用程序设计问题,查询性能或数据库基础结构设计有关。五年前,可能围绕这些问题的帮助请求占总体案例量的不到20%。
当你考虑MySQL,MongoDB,MariaDB和PostgreSQL等开源数据库的成熟度以及影响数据库的技术进步时,这是有道理的。更稳定的数据库,加上自行开发的自动化或基于云的基础架构的进步,降低了核心数据库软件导致的一般崩溃错误的可能性。通常,今天中断和问题的原因是设计决策,错误的代码或在初始规划中未考虑的情况。
所有这一切都意味着DBA的角色正在从简单地“保持并运行”转变为更具战略性的地位:DBA是帮助企业实现其战略业务目标的专家之一。