大魏老师讲的很全面,但是有那么一丢丢广告嫌疑 :)
S2I设计理念很好,如果企业没有一个专门负责CI/CD的团队,那么用S2I就好。但如果有的话呢,要让这班兄弟转岗么。
S2I在强调应用系统研发人员的自给自足之外,还带来了就地处理的能力,即在当前集群可以直接制作新镜像,直接就地部署,对于研发人员来说,这是一个强大的正反馈循环。但这仅限于开发测试环境,镜像以及配置等制品的产生并没有嵌入到整条标准流程链中,还是得需要CI/CD的标准链来规范推动镜像和配置等制品在不同阶段的审核和流转。
jenkins也有plugin支持对接容器平台,将编译和打包环境通过Pod放到容器平台上去做,所以资源和扩展性可能不是什么主要问题。
收起CI构建
Jenkins集群在CI流程中调用Maven执行构建,Maven通过插件按指定的Dockerfile生成应用的容器镜像。
●常规CI方案
●每个开发团队均需要编写Dockerfile
●微服务多语言多版本混合构建时无隔离
●构建资源池不可动态扩展
●资源利用率较低
S2I
OpenShift在隔离的容器环境中进行应用的构建编译并生成应用的容器镜像。
●基于容器集群的CI方案
●开发团队通过容器镜像精确定义构建环境
●基于容器的构建环境,提供更好的隔离性
●满足多语言多版本微服务混合构建的场景
●构建资源池可动态扩展,更灵活
●构建与应用运行共享资源池,介绍运维工作量
●资源按需投入及回收,利用率较高
GitOps 的核心思想是 CI/CD 从 git 发起,因此对开发人员更友好。但 GitOps 的实现,例如通过 ArgoCD , ArgoCD 在 CICD 过程中需要借助 Jenkins 和 S2I 这样的工具来实现。
收起