Cri*_*onX 3 continuous-integration jenkins
背景:
我是一名 SW 开发人员,在配置持续集成解决方案方面有一些经验,但我不太熟悉某些持续集成策略的优缺点,并且想就两种服务器管理策略的优点和挑战提供建议。
题:
我们有 3 个独立的、复杂的 Android 应用程序,我正在为其创建持续集成服务器。我已经成功创建了一个运行 Windows Server 2008 的原型虚拟机,它成功地编译了代码、启动了一个模拟器并运行了 android 单元测试。另外,我还能够运行我们希望在此代码上运行的静态分析,以向开发人员提供反馈。
在之前使用 CruiseControl.NET 而不是 jenkins 的配置中,我们成功地维护了 3 个独立的虚拟机,所有虚拟机都具有独立的虚拟化硬件。这种设置的好处是划分——一个项目可以改变他们的构建服务器,而另一个项目不受影响。
但是,转移到 Jenkins,我注意到它支持主/从节点,这可以让我配置一个 Jenkins 主实例与多个项目,然后配置多个从节点,据我了解,这些从节点将执行任何 Jenkins 任务- 编译、单元测试、静态分析并将此信息传递回主服务器。这种设置的好处似乎是:
这种情况的挑战似乎是:
是否有任何其他直接的好处或挑战我忘记了,或者有设置 jenkins 经验的人对哪种方法更合适有意见?
你的理解已经很完整了。我唯一可以补充的是,在我看来,jenkins/hudson 中使用的“主/从”术语有点失真。由于“奴隶”更像是触发作业/构建/项目的分布式方案中的执行者。我不会认为在您的情况下拥有 3 个单独的詹金斯大师是合理的。
1) -我必须学习如何创建奴隶- 这不是真正的问题,它只是奴隶的一个 jar 文件。可以很容易地安装在不同的操作系统上(Linux、Windows、Unix)可以作为服务/守护程序运行。然后你只需要将该奴隶附加到主人。
2)我将不得不处理客户端和从站之间的通信——这也很简单,因为您只需要管理从站连接到客户端的 ssh 密钥和用户帐户。
3)我在运行需要 UI 交互的单元测试时可能会遇到问题 - 这应该不是问题。现在应该有很多解决方案。
我再次鼓励您在 CI 和 CD 的开发工作流中使用 jenkins,真的没有什么事情是 jenkins 不能做的。3 年前开始使用它,再也没有回头。
在您的特定情况下,我看到的唯一基石是它是一个新工具,并且在从旧工作流程迁移时可能需要一些学习曲线和一些调整,但很可能它将极大地有益于您和您的团队从长远来看。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
2559 次 |
| 最近记录: |