Netezza CI / CD工具

时间:2016-02-04 14:57:36

标签: continuous-integration netezza devops

Netezza是否有可以管理版本的CI / CD工具,可用于跨环境迁移代码?我们已经将flywaydb用于其他数据库,并对此感到满意,但这并不支持Netezza。我已经google了,没有找到一个工具,所以任何回复都有利于我开始进一步分析

1 个答案:

答案 0 :(得分:1)

据我所知,没有专门针对Netezza的。也就是说,通过对目标环境的一些了解,它当然是可能的。

我们使用git和GitHub Enterprise(GHE)。 GHE的原因并不是特定于这个解决方案,而是因为我在医院工作。这就是我们的工作。

设置

  • 在生产服务器上的/home/nz处构建存储库。根据您使用nzlogs,nzbads和其他临时文件的方式,您可能需要使用.gitignore文件进行相当多的操作。我们有专门的日志目录,临时文件应该驻留在这里。
  • 将该回购推入GHE。
  • 如果您有开发服务器,请在该服务器上的/home/nz目录中克隆repo。很明显,在此之前,您将失去所有开发工作,并且希望确保.bashrc之类的内容不会被版本化。或者,您可以设置不同的分支和repo,并尝试合并prod和dev版本。我们这样做了,但我建议只用缓慢的一天用生产代码擦拭你的开发盒。
  • 在git中为您的生产箱分配一个专用分支。对于此讨论,我会称他们为proddev。如果有的话,也要做同样的发展。这主要是一种心理上的东西,而不是一种科技的东西,但它至关重要,比如为HerokuAzure设置遥控器。
  • 查找或开发可以收听GitHub webhooks的小型网络服务器。我用一个简单的配置文件构建了一个Sinatra服务器。什么都行。将Web服务器部署到每个环境并对其进行调整,以便在对服务器的proddev分支的更新时执行以下活动。

    • git reset --hard
    • git clean -f
    • git pull
  • 在GHE存储库中设置webhook,以将推送事件发送到Web服务器。

当然,如果您希望得到花哨的(可能update cron from a versioned file或更新所有新文件中的模式),您可以随时让Web服务器在分支更新上执行其他操作。

过程

相当简单,请遵循GitHub Flow工作流程。您可以完全遵循您想要的任何流程,同时理解您的proddev分支应该受到保护,并且只能作为管理任务删除或使用。创建一个功能分支,按下dev进行测试,然后对prod分支发出拉取请求。

为何选择GHE?主要是因为它保留了我们的代码可用的开放区域。你可以通过直接推送到Netezza的git仓库来做到这一点,但是你的工作流程会受到影响 - 它不像在一个清晰的地方将所有代码放在拉动请求的讨论中一样干净。