Deployment 多个Scrum团队中多阶段环境中的CI管道

Deployment 多个Scrum团队中多阶段环境中的CI管道,deployment,continuous-integration,devops,scrum,Deployment,Continuous Integration,Devops,Scrum,我正在为20个scrum团队寻找一个解决方案,关于如何在不同环境中推送代码: Dev(开发人员可以在其中编写代码并运行单元测试) SIT(与存根服务集成) QA(进行QA测试的地方,有真正的集成点,没有存根,目前由一个单独的团队维护,以便他们跟踪正在发生的事情) 阶段(类似于实时,具有敏感数据,由单独的团队维护) 现场(这就是现场比赛) 这里的难点在于,许多团队都会尝试“一鼓作气”,部署工作可能需要时间,并且可能会造成潜在的瓶颈。此外,我们需要确保我们的代码与真实集成点(QA env)配合良

我正在为20个scrum团队寻找一个解决方案,关于如何在不同环境中推送代码:

  • Dev(开发人员可以在其中编写代码并运行单元测试)
  • SIT(与存根服务集成)
  • QA(进行QA测试的地方,有真正的集成点,没有存根,目前由一个单独的团队维护,以便他们跟踪正在发生的事情)
  • 阶段(类似于实时,具有敏感数据,由单独的团队维护)
  • 现场(这就是现场比赛)
这里的难点在于,许多团队都会尝试“一鼓作气”,部署工作可能需要时间,并且可能会造成潜在的瓶颈。此外,我们需要确保我们的代码与真实集成点(QA env)配合良好。 关于Scrum,我们应该在什么时候调用用户故事完成,什么时候推到SIT,或者QA

我肯定以前有人问过这个问题,但找不到确切的术语,请随意给我指一下


编辑:这是一款全新的产品,一尘不染,到目前为止还没有任何代码或管道。

好的,你确切的问题是:什么时候完成用户故事?在Scrum中,它是在潜在可交付时完成的,所以在您的设置中:Stage

现在,我认为这对你和你的团队来说是不现实的。这是因为您的流程中有许多障碍,您必须解决这些障碍才能真正完成CI/CD,并在sprint中拥有潜在的可发布代码:

  • 持续整合。我不是指你使用的服务器和平台/工具。我的意思是在每次签入时整合每个人的代码。如果你有20支球队今天没有这样做,他们不会突然在明天开始。一旦您尝试,您将遇到各种各样的实践、过程和体系结构挑战。为了实现这一目标,您需要完成这些任务。我最好的建议是,让共同领域的团队不断地相互融合,然后开始打破这些团队之间的障碍。如果这也太多了,也许可以让每个团队一天多次相互整合作为开始。老实说,如果你还没有做到这一点,其余的步骤就不是很相关了

  • 测试是发生在其他地方的事情。它发生在不同的阶段,在不同的环境中,可能与不同的团队。这是一个有两个原因的问题。如果测试发生在故事被称为“完成”之后,那么它将再次强调团队的工作是编写代码,而不是创建工作的、可用的功能。第二,那些bug报告会回来,然后那些已经完成和集成的东西必须被返工、重做和集成。如果整合以前是痛苦的,这只会增加一个乘数

  • 您是否有跨职能团队致力于增值?我在这里的猜测有点牵强,但服务存根和困难的集成往往是不同团队在不同组件上工作的迹象。这为错位创造了很多机会,可能会加剧您的挑战

  • 好的,最后一个。整个团队都在维护环境。那是一面很大的红旗。这意味着你的系统要么极其复杂,要么人们留下了很多未解决的问题,要么两者兼而有之。如果你想建立一个完整的团队来同步其他团队,你可能会给你的问题带来一个创可贴。您的环境应该是可预测和稳定的。这意味着与您的环境相关的大多数任务都应该是可自动化的,然后其他团队可以完成不可自动化的奇怪任务


  • 这可能不是您希望的答案,但这些可能是您为实现目标而必须应对的挑战。

    1。这一点很好,但是,在理想情况下,所有团队每天都会多次推送代码,这样就不会有任何需要相互集成的重大代码更改?2.我认为总会有一个测试元素涉及到更敏感的数据,或者由于很多集成点而导致的更重的环境,而且总会有一些安全团队在上面。3.团队更多的是针对同一产品的组件团队,你是对的。4.是的,我们谈论的是复杂的系统,因为有许多不同的组件。因此,需要一个维护团队。另外,在CI上,如果每个人都在不断推送代码,您如何跟踪更改以进行审核?诚然,该代码将针对某些Jira罚单,但是否有关于此主题的良好实践记录?