微服务到底是采用多仓库还是单体仓库更好呢?

文章探讨了单体仓库(mono-repo)和多仓库(multi-repo)策略在代码管理、集成部署、代码规范和团队协作等方面的优势和挑战。单体仓库利于代码规范和整体理解,适合初创公司和小规模业务;而多仓库策略强调服务独立,便于大规模团队操作,但可能增加集成复杂性。
摘要由CSDN通过智能技术生成

单块仓库(mono-lith)

单体应用,所有代码在一个项目当中。

单体仓库(mono-repo)

所有的服务分模块都放在一个仓库当中。
优点:
1、易于规范代码。所有代码在一个仓库中,可以标准化依赖管理,集中开展code review,规范代码风格
2、易于集成和部署,所有的代码在一个仓库中,配合自动化构建工具,可以做到一键构建和一键部署,一般不需要特别的集中管理和协调
3、易于理解项目整体,开发人员可以把整个项目加载到本地的ide里进行code review,可以本地部署调试,方便开发人员把握整体的技术架构和业务目标
4、易于重用,开发人员容易发现和重用已有的代码,也更容易对代码进行整体的重构,抽取出一些公用的功能。

google twitter facebook
缺点:
随着业务团队规模变大,代码库会变得越来越庞大,复杂对也会上升

多仓库(multi-repo)

每一个服务单独放在一个仓库中。
优点:
每个服务独立仓库,职责单一,代码量和复杂性设控。服务有不同的团队维护,边界清晰。单个服务也易于自置开发,测试,部署和扩展,不需要集中管理协调。
缺点:
1、项目代码不容易规范,每个团队各自为政,随意引入依赖,code review无法集中开展,代码风格各不相同。
2、项目集成和部署比较麻烦,虽然每个服务易于集成和部署,但是整个应用集成和部署,由于仓库比较分散,就需要集中的管理和协调。
3、开发人员缺乏对于整体项目的总体的认知。缺乏对项目技术架构、业务目标整体性的理解
4、项目间冗余代码多,导致团队开发,不能复用其他团队开发的通用代码。

总结:

初创公司、和业务不是特别庞大采用单体仓库比较好。为了支持云原生,一键部署可以采用单体仓库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值