Continuous integration 组织saas项目

Continuous integration 组织saas项目,continuous-integration,project-management,saas,Continuous Integration,Project Management,Saas,我正在领导一个SaaS应用程序。假设它是一个通过RESTAPI交付的java数据分析系统。我有几个开发人员,我们使用 存储库(例如git、hg,比如bitbucket或github上的存储库) scrum敏捷工作流(使用jira agile、youtrack等) 持续集成(如jenkins、Bambon) 马文 我想知道将大型项目拆分为子项目(如果有的话)的最佳实践(以及优缺点)是什么 通常,我可以看到以下逻辑模块: rest接口 DataAnalytics API(无实现) 排名模块:模

我正在领导一个SaaS应用程序。假设它是一个通过RESTAPI交付的java数据分析系统。我有几个开发人员,我们使用

  • 存储库(例如git、hg,比如bitbucket或github上的存储库)
  • scrum敏捷工作流(使用jira agile、youtrack等)
  • 持续集成(如jenkins、Bambon)
  • 马文
我想知道将大型项目拆分为子项目(如果有的话)的最佳实践(以及优缺点)是什么

通常,我可以看到以下逻辑模块:

  • rest接口
  • DataAnalytics API(无实现)
  • 排名模块:模块1,模块2
  • 分类模块:模块1、模块2
  • 形象化
我想让它成为一个包含多个子项目的大型存储库吗?但是

  • 我需要跟踪版本,并且
  • 确保CI服务器在提交某些内容时只生成相关的子项目(我可能不希望在更新分类模块时生成并重新测试rest接口)
还是要为每个项目创建一个存储库

还有什么其他的事情吗? 我想让它成为一个包含多个子项目的大型存储库吗

这是一个经常争论的话题。基于以下问题的一些需求有助于确定

您的服务是否可以以不同的方式部署和版本控制?即,您是否可以使用版本x继续运行服务A,然后使用版本y将修复程序部署到服务B,而不更改服务A。如果是这样,将它们保留在单独的存储库中会有所帮助

确保CI服务器在以下情况下仅生成相关子项目: 已提交某些内容>(我可能不想构建和重新测试) 更新分类模块时的rest接口)

同样,这也是不将所有内容捆绑到一个存储库中的原因之一。您不希望可视化的更改需要重新生成RESTAPI。因此,它们是单独回购协议的候选对象。这也有助于子团队和分布式团队

但是,如果代码库和团队规模太小,那么拆分为太多回购协议可能会带来开销

I need to keep track of versions, and