组织一个saas项目
问题描述:
我正在领导一个SaaS应用程序。假设这是通过Rest API提供的Java数据分析系统。我有几个开发商,和我们使用组织一个saas项目
- 存储库(如混帐,汞,说的到位桶或github上),
- 的Scrum敏捷流程(例如使用JIRA敏捷,youtrack)
- 持续集成(例如詹金斯,竹)
- 行家
我想知道什么是最好的做法(和优点/缺点)在分裂大项目为子项目(如果有的话)。
一般来说,我可以看到以下的逻辑模块:
- 其余接口
- DataAnalytics API(未实施)
- 排名模块:模块1,单词数,..
- 分类模块:模块1 ,Module2
- visualization
- etc
我想让它成为一个拥有多个子项目的大型仓库吗?但随后
- 我需要跟踪的版本,并
- 确保CI服务器建立只有相关的子项目当一些承诺(我可能不希望构建并重新测试REST接口时,分类模块被更新)
或者我想为每个项目创建一个存储库吗?
任何其他的可能性/我应该考虑的事情?
答
我想让它成为一个拥有多个子项目的大型仓库吗?
这是经常讨论的话题。根据您的问题,您的一些要求可以帮助您确定。
I need to keep track of versions, and
可以将您的服务进行部署和版本不同,即。您是否可以继续使用版本x运行服务A,然后使用版本y在服务B上部署修订,而不更改服务A.如果是这样,将它们保存在单独的存储库中会有所帮助。
确保CI服务器建立只有当 一些致力于相关的子项目>(我可能不希望构建并重新测试 其余的接口时,分类模块更新)
再次,这是没有将所有内容捆绑到一个存储库中的一个原因。您不希望对可视化进行更改以要求重新构建其余API。所以他们是单独回购的候选人。这也有助于分组和分散的团队。
但是,如果代码库和团队规模太小,可能会导致分解为太多回购的开销。