3

Git 与 GitOps

 2 years ago
source link: https://yanhang.me/post/2019-09-12-git/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Git 与 GitOps

2019-09-12 约 636 字 预计阅读 2 分钟

伴随着 GitOps 的盛行, Git 本身的影响力也在逐渐增大。从最开始只是为了管理 linux kernel, 到支撑起了 Github 这个最大的软件社区,Git 本身的应用范畴早已超出了 vcs 本身,我们还用它来存储配置文件,文档,制作电子书,维护 blog (由 Github 等平台展示)等等。在 GitOps 的范畴内,它更是成为了 the single source of truth

但 Git 最初的设计目标只是针对于 linux source code, 大量的小文件,而伴随着 git 应用范围的增多,明个明显的问题便显现出来

  • 大文件的管理:大文件通常都是难以 diff 的二进制文件,跟 git 本身的设计理念完全背道而驰
  • 大仓库的管理: 像 Google 的 Single Repo 以及微软的 windows 等巨型仓库,在使用 git 时都都会遇到非常多的性能问题。

对于前者来讲,目前的主流的解决方案都是 LFS, 主流的托管平台都支持。但在 GitOps 的大前提下,这个问题仍然算是未解决,因为在企业场景下又多了一个 Git 大文件管理的 dashboard, 而 GitOps 得了理念是为了减少 dashboard, 将所有的一切都统一起来。 一个可能的选项是用Cloud Native Artifact Registries的理念,用distribution 作为 LFS Server。

大仓库的管理微软的贡献比较显著些。像 Windows 这样的巨型项目,他们必须提前做很多改善才能把 Windows的代码放到一个仓库里。最终的实现原理跟 Google 类似: 与普通的 Git 仓库不同,他们使用一个 virtual filesystem 来作为底层存储,当用户使用 git 时,只有那些被访问的文件才会被实时从 Server pull 下来。这种方式带来的一个附带好处是也解决了大文件的管理问题。

期待 GitOps + CNAR + DevOps 完全成熟落地的那一天。

参考链接:

文章作者 涯余

上次更新 2019-09-12

不成文章(1) GitOps


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK