数据库管理员已死
英文原文:The Database Administrator is dead
在一辆拥挤不堪、从某处飞往犹他州的支线飞机上,我开始思考 15 年前作为 Oracle 数据库管理员(DBA)的那些酸甜苦辣的过去。
数据库为特定应用存储和提供信息,而 DBA 以往是负责数据库策略、优化、容量规划以及安全的人。然而,我发现,过去几年,数据库管理员的角色已经发生了急剧变化,而且未来的变化还要多得多。
作为这一变化的迹象之一,我们 ObjectRocket 的很多客户都已经没有 DBA 这个角色了。
这算不上什么惊奇。随着开发者受累或受惠于越来越快的开发周期,随着应用匆忙推向市场,DBA 的角色则继续暗淡。推向市场的时间变短,创新加快了,促进此类敏捷性的编程语言变得流行—node.js、php 以及 python 应用已成新的司空见惯。一切都变得越来越快。
这一趋势导致开发者要去寻找和接受那些适合设计属性的技术。传统的运营部门已无法适应这种节奏。以云为基础的开发者开始崛起,原型开发和概念验证的速度大为提高。
然而,这迅速演变为在云端部署成熟的产品应用。这段时间技术决策者热衷于用 Sublime Text 写代码、在 Chrome 做云控制面板这些时髦的东西。的确,新一代的开发者除了云几乎不知道使用任何东西。
为什么要懂呢?开发者从云端获得的体验往往要比那些本地解决方案(如果有的话)有用得多。而且云端的体验也还在改变,变得越来越丰富,变得越来越习惯。或者说,也许开发者只想有一个应用引擎可以用,至于底层的基础设施是什么他们已经完全不关心了。
于是数据被摆到了我们的面前。
在物联网、大数据的时代,急剧膨胀的数据越来越成为所有应用的一个分量越来越重的组件。(云)应用成为了给移动设备输送数据的用户界面。这些应用依赖于复杂的地理或社交设计。需要具备极强的伸缩性和超高的性能。需要易用的 API。时刻都不能停止。
这些新的复杂的数据类型、核心的 API 设计以及对伸缩能力的需求导致了一类全新的数据存储的出现。NOSQL 你应该听说过了吧?不过,云端的数据存储即服务还没有像应用即服务那样流行。其原因主要是因为数据存储的运营要比应用栈的托管难多了。
此外,静态数据问题以及把数据交给云服务商托管引发的信任问题也很棘手。不过这个问题也在发生变化。Rackspace 有 MySQL 服务、Redis to Go 以及 ObjectRocket。Amazon 提供了 RDS 和 Dynamo。还有像 Cloudant (NoSQL 云数据库)和 Clustrix 这样服务细分市场的玩家。
除非你的公司像 非死book 或苹果那么大,否则的话采用数据存储及服务的方案是具有真正价值的。首先,开发者可以即时获得许多关键的功能。从而可忘掉其他东西,将关注点放到 API 交互上。
在这种模式中,开发者就是 DBA,过去的那种专门 DBA 角色已经过时了。开发者无需担心碎片化、索引重建以及数据文件空间之类的事情,把它们交给磁盘、RAID、Ubuntu 内核版本等处理就好了,那一堆的问题全都移交给了提供商。
这一切都很好,但供应商必须取得你的信任并加以维持,毕竟这是你的数据。如果数据被盗用、被破坏或丢失的话,一切就都完蛋了。成功的提供商会确保产品能给开发者带来流畅的体验,同时还能接受那些流行的开源 API。
所以,也许 DBA 的角色未必是死了,只是转移到了数据存储即服务的新位置。成功的 DBA 会理解新世界意味着处理 PB 级的数据,以及对成千上万个逻辑数据库的数十亿次的操作。他们要在日益困难的负载环境下应对不那么成熟的数据库技术。他们要么自动化,要么去死。
DBA 万岁。