想知道对此有什么看法
我们有一个CI服务器在数据库服务器上运行一些集成测试,而且......在CI服务器上安装数据库服务器似乎是错误的
更多信息,以回答评论: 为什么有必要这样做? 测试的这一特定部分检查数据库模式生成和迁移,并在此基础上运行一些方法。
您使用的CI系统是什么? 团队城市,但我不认为这是一个相关的问题TBH
如果将CI与数据库服务器分开,是否关注性能? 不是真的,你我意识到分离将使测试运行得更慢,这是一个坏主意。
我很想听听其他开发者对这个主题的看法
答案 0 :(得分:3)
如果该数据库仅存在以便从CI构建运行集成测试,那么它对我来说似乎并不那么糟糕。然而,如果在几个月之后,它开始被其他方式转用于其他方式并被其他客户使用,那么也许值得重新思考。
说实话,它似乎不是客观地回答的东西。许多其他因素起作用 - 许可,机器的规格,其他服务器的可用性,美化的使用水平,您工作的支持政策等等。
如果它顺利运作那么需要担心吗?
答案 1 :(得分:1)
理想情况下,您可以将所有“系统”(数据库,CI,数据仓库,Web服务器,预生产等)放在不同的服务器上,因为您可以获得隔离,性能和良好的分离效果。顾虑。
但是,如果您的物理机器受限,那么在同一台服务器上安装这两个项目本身就没有任何错误。你只需确保你知道他们如何互动,你就确保它们不会占用过多的资源。
答案 2 :(得分:1)
我不一定认为让两者共用同一台服务器是一个坏主意,尽管它在很大程度上取决于你的情况。
如上所述,将它放在不同的服务器上是理想的方法,可以更轻松地解决问题。
为什么您需要CI服务器在数据库服务器上? 您是否以某种方式与此紧密结合?
您是否考虑过虚拟化两者? 我使用http://www.virtualbox.org/免费并且做得很好。 您可以获得上述优势,而无需额外的硬件成本。
如果硬件出现故障,这也可以让您轻松进行备份/恢复过程,这很可能发生在您希望在发布之前进行测试之前: - )
HTH
拉尔夫
答案 3 :(得分:0)
我不确定我是否正在密切关注你的测试。
我肯定不会在CI服务器上拥有 only 开发数据库服务器,因为那时你不能在不影响服务器的情况下对其进行压力测试。那么,如果您正在讨论添加另一个开发数据库服务器只是为了在CI过程中运行此测试(为什么它甚至需要在CI服务器上),那么您将添加更多管理,管理和备份。
答案 4 :(得分:0)
您可以在本地为每个构建构建数据库。对于我们的一个构建,我们实际上有sql脚本,它们将从头开始创建数据库,表和数据(导入CSV文件)。我们在本地对这个数据库运行集成测试。
我认为持续集成的原则之一是您可以使用任何原始机器并通过单击运行构建。