非IT人员的数据库登台环境


10

我正在向我的IT部门建议一个数据库登台环境。这个想法是,像我这样的非IT人员(公共工程数据分析师)将有一个测试解决方案的地方,然后自己在实际环境中实施解决方案,或者在需要时要求IT部门实施解决方案。有几种原因/场景可以使该环境受益:

  1. 在我们的实时数据库环境(,等)中create table,我具有一些基本的数据库特权create view。我大约每周进行一次模式更改,但是在实时环境中测试和实现这些更改似乎很疯狂。数据库上有无数的依赖关系,因此,如果出现问题,可能会造成灾难性的后果。我宁愿提前在单独的环境中进行测试。
  2. 我没有一些更高级的特权,如create triggercreate function在现场数据库。很好,但是我确实有一些可以通过触发器和/或函数解决的问题。我计划建议在登台环境中向我授予这些权限,以便我可以开发和测试一些想法,如果它们起作用,则建议IT在实时环境中实施它们。
  3. 通常,我的IT部门没有时间或资源为我开发解决方案。真的就是这么简单。因此,如果我可以自己做腿部工作,那么我的问题就更有可能得到解决。

“非IT人员的暂存环境”对我来说似乎是一种足够合理的方法,但是老实说,我只是想出了办法。我不知道在IT /数据库世界中通常是如何完成的。

是否有适合这种情况的已建立的IT /数据库实践?(为非IT人员提议数据库登台环境时,我走的路正确吗?)


1
您不应该访问数据库中的任何超敏感数据吗?似乎很容易解决,就是让他们向您发送数据库的备份,以将其还原到您的个人计算机上,您可以在不担心中断生产的情况下使用它。这将不需要任何其他资源,而他们所需要做的就是为您提供备份。但是,这在很大程度上取决于环境的安全需求。
Shaulinator '16

1
然后,我认为在您自己的环境中使用备份和还原是一种低成本且简单的解决方案。不过,理想情况下,您应该具有多个环境,它们之间的处理能力相互模仿,并且在您进行更改时,您需要逐步在整个环境中对其进行分级。我们有一个开发人员参与其中并进行更改,促进其测试要进行质量检查的地方,然后是另一种环境,几乎是Prod硬件的1:1,然后是Prod进行生存的地方。这显然是昂贵的。在服务器上拥有另一个类似的数据库是另一个想法。
Shaulinator '16

1
不过,我更希望将环境完全分开,以防万一您有失控的查询,从而将问题最小化。
Shaulinator '16

1
Oracle数据库快速版可能是您的轻松选择。将其安装在计算机上,并在主数据库上安装表。加载具有代表性的数据,您可以根据需要进行尽可能多的开发/测试。准备就绪后,可以将更改发送给他们以进行测试/评估。
拉吉2016年

1
@ Raj,Express Edition的问题在于其中几乎没有可用的功能。威尔逊,因为Oracle的任何真正功能仅随Enterprise Edition一起提供,所以Oracle许可可能是我尚未见过的最大障碍之一,尽管Shaulinator在一定程度上也涉及到它。据我所知,Oracle没有为非生产环境提供更便宜的许可证,因此仅凭许可证就面临相当昂贵的障碍。纯粹由于预算问题,云可能是您的理想选择。
John Eisbrener

Answers:


2

我同意@Marcin Gminiski的回答,您理想地希望拥有一个模拟生产环境中可用功能的环境。尽管我在这件事上的2美分全都归结为:“您能负担得起什么?” 预算约束通常是良好流程的杀手,因此,您真正负担得起的费用将决定最终解决方案的复杂性/优雅程度。

因为您提到您的IT部门缺少时间和人员来为您安排环境,所以您(或者您的部门/经理)是否有能力筹集资金?获得少量的年度资金将打开查看云的可能性。云提供商可提供您所需的一切,某些解决方案甚至包括适当的许可证,这通常是与Oracle相关的最大费用。如果您不将敏感数据放入此环境中,云将变得更具吸引力。

那里有各种各样的云选项可用,但我将您带到AWS上的Oracle RDS实例,仅因为它们提供了“ 包括许可证”选项,您可以在不使用它时将其关闭以进一步降低成本。在其他云提供商上可能存在同等的产品,但是我熟悉的许多云提供商都要求您为基于Oracle的解决方案提供自己的许可证(BYOL),而不是提供包容性许可证。

最后要注意的是,AWS RDS实例仅是数据库,因此,您还需要考虑您还需要的任何应用程序服务器基础架构。如果您需要一种快速的环境来测试功能,同时又是一种经济高效的方法,那么云是一个不错的选择。只需确保您紧紧抓住它并关闭电源,就不必为空闲服务器付费。


3

通常,一个良好的环境至少应由DEV-> TEST-> PRE-PROD-> PROD组成。开发通常可以访问DEV中的开发,可以在TEST中进行验收测试,并可以在PRE和PROD中发布IT。如果您使用源代码控制,则可以避免由不同开发人员同时编辑同一段代码的问题。

从技术上讲,您只需要与产品中的模式相同,并且不需要低于产品前的产品数据,但是如果您可以在产品环境之外使用产品数据,则可以将其自动还原到开发/测试中。我在Visual Cron上也做过类似的工作,而且效果很好。

为了保持合规性,IT人员必须将变更发布到生产前和生产中,以便使此操作更容易且更具弹性,您可以采用自动部署的方法。


2

这是我的经验:

最初,我们有一个名为的中央开发环境simserver。开发人员会同时测试事物,结果变得一团糟

现在,每个开发人员都有一个simserver部署到的本地以进行测试。一旦他们说它准备好了,它就会被推送到quality assurance (QA) environment。我们jira为需要检查的任何事物提供了测试用例,并且我们再次测试了新添加的组件(我们有专门的质量检查人员,他们不从事开发工作;只是质量检查)。

然后将其推向现场。

使本地simserver成为逻辑且容易。一旦VM准备好模板,开发人员便将其部署在他们的个人计算机上(而不能访问网络的其余部分-仅是本地计算机)。


1
我认为,对于simserver来说,他的意思是一个本地托管的SQL环境,该环境具有产品环境的某种级别的镜像(简单的备份还原?)...您在该本地环境上执行开发任务。Jira是一个项目管理和问题跟踪平台,允许开发人员和质量检查人员跟踪更改。我认为他是在说,在本地实例上完成的拟议变更已发布到jira供开发人员使用。评论。VM是虚拟机。
韦斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.