ris*_*shi 6 git github gitlab microservices
用于基于微服务架构的应用程序的存储库结构的更好方法?
例如,我通过 Microsoft 参考架构,即 github 存储库中的 eShopContainers [ https://github.com/dotnet-architecture/eShopOnContainers/tree/dev/src] 进行引用。但这带来了一些更复杂的动态工作环境,其中团队在各种 UI、微服务上工作,因此在一个存储库下的所有内容都使得合并/冲突等过程更加耗时。 一些团队成员希望拥有每个微服务在开发时在单独的存储库中进行更好的管理,然后在生产后导出到组存储库,即 BAU。感谢讨论利弊,以便为我们的环境做出更好的决定。
两者都完成后,这里有一些权衡:
对于 monorepo(同一个 repo 中的所有代码和服务):
多个存储库:
毫无疑问,还有其他一些,但这些是我在这两种情况下实际经历过的一些。如果您要并行发展许多服务,monorepo 可能会更好;如果您可以构建几乎彼此独立的服务,则多个存储库会更好。
使用微服务架构的主要好处之一是能够引入新技术而无需执行完全重写。人们很容易只考虑编程语言和框架 - 但事实是版本控制软件是完全相同的。我见过一些团队从 SVN 迁移到 Git 或 TFS。相信 Git 会永远陪伴我们的想法是天真的。我相信这是使用多个存储库的有力论据。
单一存储库——只要它有优势——总是会诱使开发人员进行某种跨项目依赖。也许它将是用于编译所有微服务的特定构建工具中的一个构建文件。它可能是一个公共库目录,其中包含特定版本的外部 dll 或 jar 或其他任何内容。总是会有创造这样的东西的倾向。这最终将使这些微服务以某种方式绑定和依赖。
我相信这是将使用微服务架构创建的项目存储在多个独立存储库中的好方法。
归档时间: |
|
查看次数: |
5266 次 |
最近记录: |