问题
在微服务的devops实践中我遇到个问题。 按照gitops理论,CI文件(类似于jenkinsfile)应当是和代码在一起的。但是如果是多个微服务。我觉得在管理上是有问题的。1 .显然有些微服务是依赖于其他的微服务是否能成功构建。2.版本问题。如果是100的微服务,似乎版本的控制全在每一个微服务手上。
灵感
灵感来自tekton。tekton的原理https://zhuanlan.zhihu.com/p/143128034。在tekton里面有两个资源task和Pipeline。一个task是一个微服务构建。一个Pipeline是一个项目的构建。Pipeline包含多个task。就相当于项目包含多个微服务一样
tekton的示意图

项目示意图

解决
如果我有100个微服务。那么我需要多少个git repo?至少101个。多出来的1是什么?他是这100个微服务的图。在我的设想中这里的项目的文件内容应当是这样的
need
,是表示之前的微服务必须能构建完成。
[
{"servicename":"MicroService1", "git":"http://*****", "version":"", "need":""},
{"servicename":"MicroService2", "git":"http://*****", "version":"", "need":"MicroService1"},
{"servicename":"MicroService3", "git":"http://*****", "version":"", "need":""},
]
它的图是这样

以上想法只能作为参考。鉴于本人经验,可能在上面想法中还会有很多的漏洞。