我是一名有抱负的 DBA(我想说大约 3 年内我就可以申请工作了),目前我是一名程序员。我向我的一位朋友传达了我未来的目标,他是一家规模庞大且快节奏的软件开发公司的敏捷 SCRUM 团队的一员。(SDLC 的核心)。
他表达了他对我职业道路目标的担忧 - 指出由于过去 5 - 7 年 ORM 的增加和发展,大多数软件开发公司的 DBA 都是一个垂死的职位。他说,公司信任程序员,他们中的大多数人有能力完成DBA所做的大部分工作。(存储过程、加密、SQL、备份、ddl、分析等)
任何人都可以讲述一下他们的经历或者他们是否对 DBA 职位有相同的担忧/信念?
我指的是 NHibernate 和那些类型的系统。
为了与本网站的问答格式保持一致 - 如果所有内容都转换为并使用 ORM,并且 DBA 职位不再像过去一两年那样重要,那么将来将会面临哪些问题?
老实说,我承认,除了基础研究之外,我没有 ORM 的第一手经验。我知道这个网站应该供专业人士使用,这就是为什么我觉得那些对这种情况了解更多的人将能够更好地识别顾虑/问题。
这就是它在小公司中的工作方式,但这也是过去一直为小公司工作的方式:在小规模上,当所有开发人员都可以完成基础工作时,专家数据库人员通常被视为一笔巨大的开支。这实际上并不是 ORM 和 noSQL 最近流行的一个因素。
ORM 背后仍然有数据存储,需要有人理解并能够监控、备份、修复、分析、扩展和优化,并且随着公司和/或项目的发展,拥有该领域的专家仍然是值得的。信任没有数据处理专业知识的开发人员在小规模上通常没问题,但在扩大规模时可能会导致严重问题。人们经常会滔滔不绝地谈论 ORM 或 noSQL 解决方案,并声称这意味着他们不需要担心数据库,但后来当他们在几千条记录上测试的东西在被要求时却掉到了地板上时,他们却苦苦抱怨。处理数万、数百万或更多(或者有时甚至是“几千加一”对于非常糟糕的设计),并且他们很快就达到了投入更多硬件来解决问题是没有用的地步。您经常会发现创建了大量复杂的缓存层,如果在数据存储的初始设计(或后来的重构)中多加考虑,则不需要这些层 - 这些层也需要开发和维护,因此这些项目是由于没有“数据专家”,通常无法长期省钱。事实上,如果你能同时涉足两个阵营(开发和数据),那么在某些“架构师”角色中就会有很多有趣的工作(并且赚很多钱):人们要么为项目设计模型,要么通过过于复杂的工作来谋生。低效的怪物并帮助开发团队将它们变成相对时尚且可扩展的创作。
另外,不要限制自己成为开发团队的 DBA:我们所有的客户(银行类型、议会、一两家小型航空公司)都有一个基础设施部门,部分由 DBA 组成,他们负责确保他们的数据适当处理。他们向我们(和其他供应商)提出挑战,以确保我们遵循良好的做法,他们负责更广泛的问题,例如整合来自绝望供应商的系统的数据,他们当然负责维护内部数据库(镜像、备份、监控,...) - 所以还有其他地方需要 DBA 优化技能。
当然,你必须保持最新的工具,这是不言而喻的,但是虽然这项工作在过去十年中总体上发生了一些变化,但它并没有像某些人让你相信的那样发生了那么多变化(我也没有想到)。预计在不久的将来会出现这种情况,但请密切关注新的发展,以保持最新状态并避免过时(如果我的观点是错误的)。