我们如何停止花一周的时间发布开发平台

每个开发人员都希望拥有自己的开发人员立场。 每个测试人员都想要自己的测试平台。 每个试生产专家都希望拥有自己的立场-为了最终检查所有内容并排练产品中的发布。 当所有这些“愿望清单”都集中在处理上时(银行最大,最活跃的系统之一),基础架构成本使您无法自拔,寻找“选择权”。 我们将讲述在这篇文章中发现的内容。


我们公司的处理数据库量约为6 TB。 在数据库的一个副本上,开发人员会互相干扰,因此,数据库所占用的实际空间量会迅速并成比例地增长。 尽管速度太快……对于陪同服务来说太快了,而对于那些需要数据库副本的人来说还不够快。 这就是为什么。

为了进行测试,测试台必须与当前的生产版本完全一致(预生产台也是如此)。 系统的主备份将整天复制,然后部署到展台。 在这些冗长的操作中,无法使用看台,因此在没有人使用看台的情况下,复制将被转移到周末和节假日。 我们会延迟1到5天。 要初步同意复制过程本身,还需要时间-我们有几个测试台,通常是3到6个。 我们增加2-3天来协调展位的空闲时间。 在获得管理员批准之前,该应用程序仍在队列中。 总的来说,我们得到了很大的延迟。

是什么帮助了Delphix


什么可以加快流程并节省空间? 数据库虚拟化。 我们考虑了不同的选择:Oracle SnapClone,NetApp + Oracle Cloud,仅是阵列上的快照。 一切都需要复杂的设置。 而且,Oracle解决方案仅适用于Oracle数据库。

然后我看了看Delphix。 它易于实施,并且支持不同的数据库-Oracle,SQL Server,DB2,Sybase ASE。 提供了用于所有操作的接口。 通过它,开发人员和测试人员可以独立管理其副本-更新,保存/还原状态,停止/启动等。 还有用于与CI / CD系统或其过程集成的API和CLI。

Delphix本身的部署不需要花费很长时间-几个小时。 信号源可以连接更长的时间,这里的时间与大小成正比。 在我们的例子中,源是数据库的销售副本,并且连接花费了将近一天的时间。 为数据库克隆准备源服务器和服务器不需要特别的工作。 在目标服务器上,您需要安装适当的ORACLE_HOME,并创建一个特殊的用户进行连接。 对于虚拟测试副本,我们使用以前具有物理副本的服务器。

Delphix允许您几乎实时地创建测试台,而无需任何协调,因为测试台彼此完全隔离。 花一些时间仅将数据库更新到当前状态-从20分钟到几个小时,没有几天的问题。

我们尝试在尽可能接近产品的条件下进行压力测试。 如果产品位于物理磁盘上,那么负载也将承受。 在这种情况下,Delphix V2P按钮会有所帮助,这使您可以从虚拟数据库创建“诚实的”数据库。



至于节省磁盘空间,Delphix仪表盘的读数当然是令人着迷的-将体积减少73倍实在是太神奇了。 在我们的处理中,带有2天(每天200 GB)的每日快照和归档的交易日志的销售副本占用4.5 TB磁盘空间。 另一个1.5 TB-9个克隆,大小从50到500 GB,每个克隆还存储每日快照的历史记录。 总共可获得6 TB。

我们再添加15%的可用空间(900 GB),以便Delphix可以正常工作。 因此,仅花费大约7 TB,我们就可以得到一份测试副本,其中包含过去两周中任何时间点的相关数据。

以前,为了将9个数据库的物理副本存储在6 TB中,我们需要54 TB(或考虑到存储压缩2-3倍的压缩量,大约需要20 TB)。 而且,与新系统不同,开发人员在这里无法管理这些副本并恢复以前的状态-数据被破坏时,只能从销售副本中重新加载。

Delphix还允许您为不同的项目快速创建同一容器的不同分支-并在最短的时间内完成所有这些工作。 开发人员不怕破坏数据,他们可以回滚并恢复其先前状态。 这可以提高性能。

但是有细微差别...


尽管并非一切都完美,但来自Delphix的印象大多是正面的。 最大的问题是使用磁盘。 每个数据块对于所有虚拟副本仅存储一次,并且在所有虚拟副本停止使用该块之前,无法将其删除。 这里可能会出现组织问题-并非所有用户都准备好支持其摊位的短生命周期。 如果测试平台使用旧版本,我将出售它。 我们通过扩展磁盘来广泛解决此问题,这可以在不中断服务的情况下完成。 我们确保始终节省15%的可用空间。 如果较小,则系统将仅停止对虚拟副本执行任何操作。 尽管基地本身仍然可以使用。

对于具有大量磁盘I / O的系统,网络带宽可能是一个限制因素。 根据特定的负载配置文件,系统可能会开始通过虚拟化更好地工作。 根据负载,平均db文件顺序读取延迟为5-10毫秒,即使对于工业系统也相当不错。

Delphix“经典”驱动器以任何支持ESX的方式连接,并且供应商提供了有关如何实现此性能的建议列表。 我们使用SAN。 系统本身仅通过NFS协议显示虚拟数据库文件所在的磁盘。 因此,您需要注意通道的带宽及其拥塞。 在我们的案例中,仅将Delphix的数据文件放在磁盘阵列上是有意义的,这样库中的任何活动都不会影响虚拟数据库的I / O速度。

现在,我们正在使用Delphix 5.1.9,但请看5.2版-在其中,用户界面已不再可用,并且据供应商称,它变得更加方便。 Delphix给我们的同事留下了深刻的印象,经过处理,我们正在考虑将配置文件,CRM和Internet银行业务转移到该开发人员系统。

Source: https://habr.com/ru/post/zh-CN416815/


All Articles