您的位置:首页 > 数据库

平静及其与数据库开发的关系

2018-10-30 17:30 531 查看

Calms是一个框架的缩写,它允许企业评估他们在前往DevOps之旅中的准备程度,以及他们可以改进的地方。CAMS(不含L)是由达蒙·爱德华兹和约翰·威利斯在2010年第一次在美国的DevOps日之后。杰斯·汉布尔后来又加上了L,代表着精益,这个缩略词的全部意思是现在:

有趣的是,数据库开发软件的进步现在意味着可以使用相同的框架来评估业务是否也为数据库DevOps做好了准备。

文化

当谈到DevOps时,文化是它所能激发的转变的中心。DevOps文化改变了企业的工作方式,使团队能够产生令用户高兴的好结果。

文化的很大一部分是打破组织中存在的筒仓,这样Dev和Ops就可以更好地朝着同一个目标-那些快乐的用户-一起工作。不再有它在我的机器上工作,或者这不是我的问题气氛。现在,让我们共同努力,使这成为我们的用户最好的体验。这是关于授权团队为用户做最好的事情,并确保他们能够根据需要发布。

当涉及到数据库时,这一点非常重要。传统上,DBA在他们自己的部门中被很好地隔离,并且常常被看作是更快地释放变更的瓶颈。他们完全负责生产数据库的性能及其数据的安全。现在整个团队-开发人员和DBA-应该考虑如何使发布尽可能平滑,如何在生产中运行,以及在哪里构建安全性。

自动化

当涉及到DevOps时,自动化是关键。如果您希望更频繁地发布,则发布管道是自动化的最佳选择。它完全重复,自动化将有助于消除任何手动错误。

自动化的另一个好处是它提供了可跟踪性。您将能够确切地看到哪些更改被应用于哪些环境和时间。您甚至可以看到是谁做了这些更改,以及原因;可能它们与用户故事有关,也可能是bug修复所需要的。如果在执行过程中有任何手动批准步骤,您还可以看到是谁检查了更改并签署了发行版。

与一组完整的自动化测试进行持续集成对于自动化版本非常重要。CI的输出是一个包,包含发行版所需的所有文件,这些文件将用于部署到其他环境,因此您只构建一次,并且部署是一致的。自动化测试(单元、烟雾、集成、性能、GUI)对于在版本中提供信心并在其到达生产并影响用户之前捕捉到任何问题也很重要。

自动化并不意味着持续部署。在连续部署中,每次提交更改时,它都会通过发布管道源源不断地流过,直至被部署。为了做到这一点,您需要对您的自动化测试有很大的信任。

相反,我说的是持续交付,在这种情况下,自动化被用来将更改进展到可以在需要时发布的程度。这在应用程序开发中越来越常见,这个过程如下所示:

一个典型的部署管道,它将数据库开发作为一个独立的过程。

当许多DBA听说将数据库更改的发布自动化到生产时,他们都会感到害怕。但我再说一遍,我说的是自动化和持续交付,而不是连续部署。作为自动化管道的一部分,包含一个审查步骤也是非常容易的,这样DBA就可以在产品发生任何变化之前准确地看到将要发生的事情。

在连续交付中包含数据库,而不是使过程复杂化,实际上它看起来要简单得多。如果用于数据库开发的工具与已经用于应用程序开发的工具集成并插入其中,那么引入这些工具也会容易得多:

将数据库开发作为连续交付过程的一部分的部署管道

自动化和数据库的另一大优点是能够在尽可能接近生产的阶段/生产前环境上进行测试部署。这为在生产上运行部署脚本之前最后一次测试部署脚本提供了最好的成功机会。

精益

精益是在最初的谈话之后添加的,是DevOps的一个重要价值。精益专注于增量改进,并将工作分成几个小批。小批量允许您在开发过程中频繁地释放。这一点很重要,这样你就可以得到用户对你的工作的真实反馈,并从中吸取教训,这样你就可以根据自己需要学到的东西进行调整和调整。

很难仅将精益应用于数据库。你真的应该关心整个系统。数据库是该系统的一部分。这进一步强调了将数据库作为区域性(分解筒仓)和自动化的一部分的重要性,以便您可以对这些频繁的增量版本进行改进。

量测

测量对于获得快速反馈和不断改进是很重要的,因为你只能知道你在做什么,如果你有一个基线来衡量,你就只能知道你在做什么。首先要测量的是内部进程,比如提交的代码在生产中运行所需的时间、发布的频率、故障率以及从故障中恢复的平均时间。

您还可以包括遥测-您的用户如何使用您的系统,他们是否发现了一个新的功能,以及如何改进它。

要测量的第二个方面是系统的健康状况,要理解这一点,就需要进行监视。这样,如果出现问题,或者更好的情况下,您可以迅速做出反应,主动修复可能成为问题的东西,这样您就可以让用户满意。

对于数据库,测量您的内部进程和遥测是系统的一部分,因为您的数据库应该包括在您的发布过程中。监视数据库允许您确保它们正确执行,并且可以将其配置为在出现问题之前提供有关性能问题或较低磁盘空间的警报。

共享

分享让我们回到第一个价值,文化。如果你想对公司文化产生巨大的影响,那么与公司的其他成员分享你所学到的经验教训和最佳实践是很重要的。这有助于打破那些筒仓,使人们共同努力,不断改进和做什么是最好的为您的用户。

对于DBA来说,与整个组织的其他DBA和团队共享发现也很重要,这样他们也可以利用将数据库包含在他们的DevOps进程中的所有好处。这样,障碍就会减少,DBA将看到在开发过程早期与开发团队一起进行复杂更改的价值,而不是在变更到达生产时发现问题。

结语

平静是重要的DevOps值,它使您能够打破筒仓,更好地一起工作,并为用户提供可持续改进的频繁价值。这些值也与数据库相关,而且分解这个筒仓也很重要,这样您才能真正地飞起来。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 关系