通常一个软件从零开始到最终交付,大概会经历规划、编码、构建、测试、发布、部署和维护几个流程,鉴于智能边缘通用计算网络框架基于Kubernetes和Kubeedge这类云原生项目构建,智能边缘通用计算网络框架也将采用DevOps和CI/CD这套持续集成、持续部署技术,其中DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合;从目标来看,DevOps让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件整个开发过程更加快捷和可靠。
CI(持续集成)将各个开发人员的工作集中到一个代码仓库中,开发人员每天都要多次推送更改,通过创建一组脚本来对更改进行自动化构建和测试,这类似于单元测试。
CD(持续部署)是持续集成的下一步,目的是进一步测试,如将代码交给子良保证部门在类生产环境上进行测试,通过测试的代码可以形成可交付的Release版本。
智能边缘通用计算网络框架采用Gitlab CI做持续集成的工作,Runner做持续部署软件的运行环境。下图为Gitlab CI/CD的流程图
如上图所示:Gitlab CI是默认集成的CI功能,Gitlab
CI通过在项目内.gitlab-ci.yaml配置文件中读取CI任务并进行相应的处理,Gitlab CI通过其策划归纳为Gitlab Runner的Agent端进行build操作,Runner本身可以使用多种方式安装,比如使用Docker镜像启动等。Runner在进行build操作时也可以选择多种build环境;比如直接在Runner所在宿主机build、通过新创建虚拟机(Vmware、virtualbox)进行build等;同时
Runner支持Docker作为build提供者,即每次build新启动容器进行build(Docker in Docker)。
结合Kubernetes的流程图:
参考:
什么是DevOps和CI/CD: https://zhuanlan.zhihu.com/p/91371659
https://blog.csdn.net/weixin_44903147/article/details/96291588
Gitlab CI/CD: https://www.cnblogs.com/cjsblog/p/12256843.html
https://www.cnblogs.com/sunsky303/p/10775126.html
http://192.168.1.86/help/ci/yaml/README.md
https://docs.gitlab.com/runner/executors/custom.html
https://docs.gitlab.com/runner/executors/kubernetes.html