-
Choerodon平台版本:0.21
-
运行环境:自主搭建
-
问题描述:
请尽量详细的描述您遇到的问题,以便我们能更快速的提供解决办法。
我有一个历史项目,想要迁移到c7n内使用。这个项目是基于springcloud/springboot构建的,一个git repo里有多个独立的springboot项目。这种情况下,CICD应如何进行?我自己分析有两个方案:
- 改造原有项目结构,把多个微服务从同一个codebase拆分到独立codebase里,每个微服务单独CICD。
- 所有不同微服务项目依然共享同一个codebase,靠gitlabci脚本写多个job来构建不同的微服务、打包成不同的镜像,但chart似乎依然只能复用同一个,所以chart里要把这些微服务当成一个整体。
问题:方案2可行吗?在c7n里有应用服务的概念,方案2中所有微服务依然属于同一个应用服务,就算CICD能走通,是不是依然是个糟糕的方案?会给后面的使用带来什么负面问题吗?
你好,建议方案一。
- 我们这边建议是拆成多个应用服务,目前我们用猪齿鱼托管猪齿鱼这个微服务的架构的代码也是采取多个项目,多个应用服务的方式,每个项目组有自己的若干个服务。
- 但是如果你还是希望在一个代码库中放置多个应用的话,采用你的方案二,可以根据需要深度定制
gitlab-ci.yaml
这个文件,对你打包方式和生成版本的方式进行修改。例如:代码库中有A,B
两个模块,分别在同一个应用服务下生成A-0.2.0
和B-0.2.0
版本,部署时选择同一个应用服务,但是实际不同的版本进行部署即可。但是这仍然不是一个好的方案,猪齿鱼不建议这么做,暂时也没有对这种方案有特意的支持,也许之后关于应用服务的功能,就无法让这种模式的应用服务使用。
谢谢您的答复,赞同您的观点。我再想想应该如何取舍吧。