Deployment 如何持续部署由多个应用程序组成的大型系统

Deployment 如何持续部署由多个应用程序组成的大型系统,deployment,integration,agile,scrum,continuous,Deployment,Integration,Agile,Scrum,Continuous,目前,我们正在将整个应用程序链部署到一起,并立即部署到生产环境中,因为系统具有许多依赖关系 我们的Scrum团队是基于业务主题的,以确保每个用户故事在每个Sprint结束时都有真正的业务价值,因此经常发生的情况是,用户故事需要在多个应用程序中进行更改 我们有几个Scrum团队,在同一个系统上工作。从逻辑上讲,我们最终在一个巨大的验收和(半自动)回归测试中完成验收测试 但是,在生产中进行大规模的推广非常耗时,容易出错,而且不再具有可扩展性。。。(或者是吗?)通过持续部署,我们希望使团队能够自助服务

目前,我们正在将整个应用程序链部署到一起,并立即部署到生产环境中,因为系统具有许多依赖关系

我们的Scrum团队是基于业务主题的,以确保每个用户故事在每个Sprint结束时都有真正的业务价值,因此经常发生的情况是,用户故事需要在多个应用程序中进行更改

我们有几个Scrum团队,在同一个系统上工作。从逻辑上讲,我们最终在一个巨大的验收和(半自动)回归测试中完成验收测试

但是,在生产中进行大规模的推广非常耗时,容易出错,而且不再具有可扩展性。。。(或者是吗?)通过持续部署,我们希望使团队能够自助服务到生产,因此业务部门可以在需要时推出功能,而不是基于it计划

但是,我们如何设法展开分布在多个代码库上的更改(代码、数据库脚本),并找到一种策略来处理应用程序之间的依赖关系呢

实现可扩展的连续部署的策略是什么?你如何过渡到这一点


你觉得怎么样

我使用CruiseControl进行持续集成。设置它很容易,这样,每当有人检查主干时,就会触发构建和自动回归测试。如果构建或测试失败,则自上次构建以来提交代码的所有开发人员都会收到一封电子邮件,其中列出可能的罪魁祸首修订。破坏构建(尽管不是回归测试)的开发人员必须在第二天带来甜甜圈

用于持续集成和测试的特定工具可能取决于您的语言和平台,但概念是相同的。看

希望有帮助。

(这是一个大问题中的几个问题。)

但我会参考连续交付手册

编辑: (正如你已经读过这本书的评论) 您可能已经提出了一些建议,但对于其他有类似问题的人:

  • 通过使用,确保耦合较少的接口
  • 用于在相互依赖的应用程序中逐步推出功能
  • DBs的进化脚本
  • 符号链接是切换独立应用程序卷展栏的一种简洁方式
  • 看看其他大企业是如何推出的:
    • :
    • 使用短期云实例

但对于您实际要求的相互依赖自动部署策略,我没有可靠的解决方案:|

没有一个银弹可以解决您的问题,但是Kwatee()可以朝着正确的方向走很长的路。Kwatee可在需要时处理多台服务器上的分布式/协作应用程序,并可使用部署前和部署后操作触发必要的DB ugrade脚本等。您还可以为各种部署环境(dev、test、prod)配置参数。Kwatee有一个web界面,可以简化配置,但通过将其(通过python CLI命令或Ant task)包含在一个持续集成工具中,您可以获得最佳效果。

我在这里回答了一个非常类似的问题:


这可能值得一看

我可能会误解,但我认为您所说的是,整个系统的验收测试很难,您希望每个Scrum团队都能够提高自己的能力?我认为,即使每个Scrum团队都可以进行一些测试,但在发布之前,如果不经过系统测试阶段,就无法发布这些测试。换句话说,系统测试是必须的,但如果每个组件都可以使用替代依赖项单独测试,则频率可以调整。如果独立测试和小规模测试可以由单独的Scrum团队完成,那么系统测试可以每2到3个sprint完成一次,测试人员的重点是系统测试,而测试人员则更多地关注bug修复。

感谢您的建议。我可以看出我并不完全清楚我们的需求,对此我深表歉意。我们使用Jenkins以类似的方式进行连续集成,对于一个代码库来说,它是完美的。但是,我们希望在连续部署多个应用程序的多个代码库的方向上更进一步,这些应用程序在某种程度上都是依赖的。我们已经整理好了工具堆栈,但我们正在寻找一种策略,如何将“所有应用程序同时部署”转换为几个独立的连续部署。我知道;-)也许我要求太多了。我读过这本书,书中关于如何处理单个部署管道的内容非常精彩,但是我没有找到太多关于如何处理在多个相互关联的部署管道中连续部署的内容。或者这可能是不可能的,我们必须坚持迭代部署当前的“单一部署”管道。我知道有很多问题要问,但我很感谢有人给我指出了正确的方向。你没有一个可靠的解决方案,因为可能没有,但你用一些具体的战略例子给我指出了正确的方向。谢谢确实值得一看。谢谢