在许多组织中,应用开发者已经利用持续集成和持续部署工具自动化了单元测试和静态代码审查等流程。然而,如果负责Oracle数据库的同事无法使用类似的工具来加速他们的工作,那么这些自动化工具的价值又如何体现呢?
将数据库变更纳入DevOps流程,与应用端实施变更的速度保持一致,并非易事。数据库开发涉及到在不影响数据库中敏感数据的情况下更改代码,然后进行耗时的单元测试和代码分析。应用团队长期以来一直在使用自动化工具进行构建流程,却不得不等待数据库团队的进度。
如果想要提升数据库DevOps的效率,首先应该引入哪些开发任务呢?
在Quest®,花费了数年时间向Oracle数据库开发者提出这个问题,试图找出能够消除阻碍他们加入DevOps流程的常见瓶颈。结果,得出了以下愿望清单:
许多数据库开发者会满足于将其中一两项任务纳入DevOps,并会非常兴奋如果能够将所有四项任务都纳入。
“如果能够自动化这些任务,”交谈的数据库开发者说,“应用开发者就不会抱怨等待了。可以更快地实施数据库变更,整个组织可以从DevOps中获得更多收益。”
当数据库团队和应用团队对齐并共享相同的流程和系统时,DevOps开始产生效益。对于Oracle PL/SQL代码来说,自动化单元测试和静态代码审查是实现这种平衡的关键。
将所有关于如何使数据库开发和应用开发对齐的知识整合到Toad DevOps Toolkit中,这是产品,旨在提高DevOps流程的速度。
该工具包允许在DevOps工作流程中执行最重要的Oracle数据库开发功能,而不会牺牲质量、性能或可靠性。这些功能源自经典的Toad for Oracle桌面工具。通过将它们暴露为可由构建服务器(如Jenkins、Bamboo或TFS)调用的可编程对象,Toad DevOps Toolkit有助于在自动化构建过程中提高PL/SQL代码的功能完整性和质量。
首先,Toad DevOps Toolkit通过让使用在Toad for Oracle Developer Edition中创建并存储在Code Tester for Oracle仓库中的所有测试套件、单元测试和测试用例,帮助克服访问正确测试的障碍。在自动化构建过程中,运行一个预定义的脚本,该脚本访问所有已检入源代码控制的代码和单元测试。然后,脚本调用工具包,执行测试,并将结果(包括通过/失败状态)输出到构建Web控制台。
接下来,可以基于预定义的Toad代码分析规则和阈值执行静态代码审查。产生的通过/失败通知表明代码是否足够健全以用于生产。
为了准备将构建工件部署到下一个阶段,可以实现一个脚本,该脚本从持续集成(CI)系统调用Toad DevOps Toolkit,并比较源数据库和目标数据库之间的数据库配置、模式对象和表数据。还可以配置工具包生成一个同步脚本,作为构建部署的一部分,更新目标对象以匹配源。
最后,一旦对CI中的比较结果感到满意,可以使用Toad DevOps Toolkit作为持续部署(CD)流程的一部分来执行部署脚本。
不再需要匆忙等待。Toad DevOps Toolkit与几乎所有的持续集成和持续交付工具兼容,包括Jenkins、Bamboo和Team Foundation Server。