基于微服务架构的应用程序更好的存储库结构方法?
例如,我通过Microsoft参考体系结构进行引用,即github存储库[https://github.com/dotnet-architecture/eShopOnContainers/tree/dev/src]中的eShopContainers。但这带来了动态工作环境的更高的复杂性,团队在这些工作上使用各种UI,微服务,因此,一个存储库下的所有内容使合并/冲突等过程变得更加耗时。一些团队成员希望拥有每个微服务在单独的存储库中进行开发以更好地进行管理,然后在生产后(即在BAU时)导出到组存储库中。赞赏进行讨论以利于我们对环境做出更好的决定。
答案 0 :(得分:2)
两者都做完了,下面是一些权衡:
对于monorepo(同一仓库中的所有代码和服务):
多个存储库:
毫无疑问,其他都是我在这两种情况下实际遇到的。如果您要并行发展许多服务,那么monorepo可能会更好。如果您可以彼此独立地构建服务,则多个存储库会更好。
答案 1 :(得分:0)
使用微服务体系结构的主要好处之一是能够引入新技术而无需执行完全重写。仅考虑编程语言和框架很容易-但是事实是版本控制软件是完全一样的。我已经看到团队从SVN迁移到Git或TFS。相信Git会永远和我们在一起会很天真。我相信这是使用多个存储库的有力论据。
单个存储库-只要具有优势-总是会诱使开发人员进行某种跨项目的依赖。也许它将是用于编译所有微服务的特定构建工具中的一个构建文件。它可能是带有特定版本的外部dll或jar或任何其他内容的公共库目录。总会有创造这样的东西的趋势。最终将使这些微服务以某种方式绑定和依赖。
我相信将使用微服务架构创建的项目存储在多个独立存储库中的好方法。