Kubernetes微服务实战
上QQ阅读APP看书,第一时间看更新

2.13.1 单体仓库

在单体仓库方法中,你的整个代码库都在单个源代码控制存储库中。在整个代码库中执行操作非常容易,无论何时进行更改,它都会立即反映在整个代码库中。版本控制几乎是不可能的,这对于使所有代码保持同步非常有用。但是,如果确实仅需要升级系统的某些部分,则需要其他解决方法,例如针对新的更改创建单独的副本。同样,源代码始终保持同步的事实并不意味着你所部署的服务都使用最新版本。如果你总是一次部署所有服务,那么你使用的应该是单体架构。注意,即使为第三方开源项目做贡献,你可能仍然有多个仓库(即使你在更改合并后只使用上游版本)。

相比多仓库,单体仓库的另一个优势是,多仓库可能需要大量自定义工具来管理。大型公司(例如Google和Microsoft)会使用多仓库方法。它们是有一些特殊需求的,而自定义工具方面并没有妨碍它们。多仓库方法是否适用于较小的组织,我持观望态度。但是,我将在Delinkcious(演示应用程序)中使用单体仓库,因此,我们将一起探索并对它进行进一步了解。另一个主要的缺点是,许多现代的CI/CD工具链都使用GitOps,这会触发源代码仓库的更改。当只有一个仓库时,你将失去源代码仓库和微服务之间的一对一映射关系。