组织一个saas项目

时间:2014-09-06 16:08:18

标签: continuous-integration project-management saas

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

  • 一个存储库(例如git,hg,比如bitbucket或github),
  • scrum敏捷工作流程(使用例如jira agile,youtrack),
  • 持续整合(例如詹金斯,竹子)
  • 行家

我想知道将大项目拆分为子项目(如果有的话)的最佳实践(以及优点/缺点)是什么。

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

  • rest interface
  • DataAnalytics API(无实施)
  • 排名模块:Module1,Module2,..
  • 分类模块:Module1,Module2
  • 可视化

我是否希望将其作为一个包含多个子项目的大型存储库?但是接下来

  • 我需要跟踪版本,
  • 确保CI服务器在提交内容时仅构建相关子项目(我可能不希望在更新分类模块时构建并重新测试其余接口)

或者我是否想为每个项目创建一个存储库?

我应该考虑的其他任何可能性/事情?

1 个答案:

答案 0 :(得分:1)

  

我是否希望将其作为一个包含多个子项目的大型存储库?

这是经常有争议的话题。根据您的问题,您的一些要求可以帮助您确定。

I need to keep track of versions, and

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

  

确保CI服务器在何时构建相关子项目   事情已经提交了> (我可能不想建立和重新测试   更新分类模块时的其余界面

同样,这是不将所有内容捆绑到一个存储库中的一个原因。您不希望更改可视化以要求重建rest API。所以他们是单独回购的候选人。这也有助于子团队和分布式团队。

但是,如果代码库和团队规模太小,分成太多的回购可能会产生开销。