背景:
我是一名SW开发人员,有一些配置连续集成解决方案的经验,但我不太熟悉某些持续集成策略的优缺点,并希望就两种服务器管理策略的好处和挑战提供建议。
问题:
我们有三个独立的,复杂的,Android应用程序,我正在为其创建连续的集成服务器。我已经成功地创建了一个运行Windows 2008的虚拟机原型,它成功地编译了代码,启动了一个模拟器,并运行了android单元测试。另外,我还能够运行我们希望在这段代码上运行的静态分析,以向开发人员提供反馈。
在以前使用CruiseControl.NET而不是jenkins的配置中,我们成功地维护了3台独立的虚拟机,它们都使用独立的虚拟化硬件。此设置的好处是分区化--一个项目可以在不影响其他项目的情况下更改其构建服务器。
但是,转到Jenkins,我注意到它支持主从节点。,它允许我用多个项目配置一个Jenkins主实例,然后配置许多从节点,据我所知,这些节点将执行任何Jenkins任务--编译、单元测试、静态分析,并将此信息传回主服务器。这种设置的好处似乎是:
这种情况的挑战似乎是:
有没有其他直接的利益或挑战,我已经忘记了,或谁有经验的设置詹金斯有一个意见,哪一种方法会更合适?
发布于 2014-01-23 02:52:11
你的理解是完全的。我唯一能补充的是,在jenkins/hudson中使用的“主/奴隶”术语在我看来有点损坏。因为“奴隶”更像是触发作业/构建/项目的分布式方案中的执行者。我不认为在你的情况下有三个独立的詹金斯大师是合理的。
1) --我必须学习如何创建奴隶--这并不是真正的问题,它只是奴隶的一个jar文件。可以很容易地在不同的操作系统(Linux、Windows、Unix)上安装,可以作为服务/守护进程运行。那你就得把那个奴隶附在主人身上了。
2)我必须处理客户端和从服务器之间的通信--这也非常简单,因为您所需要的只是管理ssh键和用户帐户,以便从服务器连接到客户端。
3)我可能有问题,运行需要UI交互的单元测试--这也不应该是一个问题。到目前为止应该有足够的解决方案。
再次,我确实鼓励您在您的CI和CD开发工作流程中使用jennkins,真的没有jenkins不能做的事情。三年前就开始使用了,再也没有回头看过。
在您的特殊情况下,我看到的唯一一个角落是,它是一个新的工具,在从旧的工作流程迁移时,可能会有一些学习曲线和一些调整,但是从长远来看,它很可能对您和您的团队有很大的好处。
希望这能有所帮助。
https://serverfault.com/questions/569199
复制相似问题