在过去的十年间,企业对管理和运营数据库的需求发生了翻天覆地的变化,进而影响到负责运营企业数据库的数据库管理员(DBA)的工作重心的转移。与确保可访问性和可用性相比,DBA现在更专注于开发满足业务需求和目标的架构、设计和可扩展性策略。为什么DBA的工作重心会有这样的转变?其中大部分始于互联网公司和新收入模式的诞生。互联网公司需要站点可靠性工程师(SRE)和DBA,不仅要保证主要收入引擎(通常是应用程序和网页)的稳定性,还要保证业务随时扩展。这远远超出了以往DBA的职责,只需要保证数据库的正常运行,备份,出现问题时及时响应即可。新的收入模式,新的挑战如今,企业在互联网上开展业务越来越普遍。如果他们想保持竞争力,就必须找到能够跟上技术和架构变化的新部署模式,例如云和“即服务”等。软件、数据库、平台,甚至基础设施都可以通过基于云的模型转变为“即服务”。基于云的数据库和基于DBaaS的数据库环境的管理也随着这种转变而改变。例如,在SaaS世界中,应用程序中断意味着收入损失。除了直接收入损失(以及解决危机的成本)之外,服务和应用程序的停机还意味着客户流失。为避免这种损失,公司关键SaaS数据库基础设施的每个部分都需要进行规划,包括内置冗余和面向未来的架构,以及它将如何扩展以适应未来的增长。增长意味着扩展服务或进入新市场,通常需要新的关键业务应用程序。在今天的“即服务”环境中,有多种开发和部署方式,例如本地或云端、作为服务或组合、容器或虚拟环境等。满足客户需求最成功的方式应该是满足企业的业务目标。企业希望应用程序和网页能够快速无缝地运行。要实现这种即时性,企业必须能够快速部署新服务和应用程序以满足新功能的需求或抓住未开发市场的新机遇。企业数据库需求在不断发展。在部署服务、应用程序或网站时,一定要计划好扩展。可能影响您的数据的第一件事是数据库工作负载的变化,这可能是由存储和访问数据的变化或流量变化引起的。数据库环境的灵活性也很重要。如果业务增长需要横向扩展,需要增加多少硬件?如果在云端,增加使用量的成本是多少?以电子商务网站为例,有很多应用程序协同工作收集电子商务数据:购物车内容、完成的订单、库存信息、补货订单等。如果将所有信息存储在一个数据库中,将数据转换为特定应用程序可用的格式可能需要额外的工作和开销。但是,如果您选择将信息存储在适合该数据类型的数据库中,那么该数据库可能会降低性能或导致其他问题,因为它处理的工作量不是为它设计的。在产品或服务上线之前,你对问题考虑得越周全,以后发生灾难的可能性就越小,所以应用开发也需要DBA和数据库工程师去搭建一个可以方便扩展的数据库接近零延迟。如果企业选择将数据库迁移到云端,云运营商将自动接管大部分运维工作。这个时候还需要DBA吗?答案当然是肯定的,因为千变万化的数据库环境并没有消除对数据库专业知识的需求,DBA的工作重心更倾向于应用程序的设计和开发,不仅仅是设计和调整数据库来支持应用程序,还可以了解云中可用的模块化部件。通过DBA高效的数据库专业知识可以为企业带来更高更清晰的ROI。DBA究竟需要做什么?随着数据库环境的发展,DBA的价值逐渐从固定解决方案转变为规划解决方案和制定解决方案策略、数据库如何为公司的整体业务目标做出贡献以及有哪些解决方案可用于帮助实现这些目标。借助云和容器化等新技术,DBA可以持续监控或评估应用程序对数据库的使用情况,以及如何在不影响性能的情况下提升性能和集成新功能、新需求。随着越来越多的公司根据不同的应用和场景选择不同的数据库,DBA也需要不断学习最新的数据库技术。事实上,这些变化不仅仅是纸上谈兵,我们在Percona都经历过。Percona中超过50%的客户参与现在与应用程序设计问题、查询性能或数据库基础设施设计有关。五年前,围绕这些问题的帮助还不到20%。在选择数据库时,必须考虑MySQL、MongoDB、MariaDB、PostgreSQL等开源数据库的成熟度,以及未来发展的相关技术。当与自主开发的自动化或基于云的基础设施技术相结合时,这会降低核心数据库软件崩溃错误的可能性。今天系统中断的大多数原因是糟糕的设计决策、糟糕的代码和初始规划中未考虑的边缘情况。总而言之,DBA的角色正在从以前简单的“运维数据库”转变为更具战略性的地位:DBA是帮助企业实现战略业务目标的专家之一。
