物源平台部署模式(CI&CD)

物源平台:物源平台是针对工业物联网行业在软件层面从无到有平台快速构建的解决方案。
本文将详细介绍物源平台的整体部署流程。

整体部署流程

部署流程采用当今比较流行的技术组合,即Gitlab+Jenkins+Maven+Harbor+Kubernetes,从而实现代码在开发过程中的一键完成代码上传+打包处理+单元测试+docker镜像制作+推送镜像仓库和K8s集群对外服务更新。
整体流程图如下:
在这里插入图片描述

详细流程

流程分解:
1.用户向Gitlab提交代码;
2.Gitlab利用WebHook向Jenknis发送事件;
3.Jenkins监听Gitlab代码库的推送和变更事件;
4.Jenkins调用maven插件对源码进行编译打包;
5.Jenkins调用docker工具根据Dockerfile文件生成镜像;
6.Jenkins推送镜像到Harbor仓库;
7.Jenkins通过SSH远程调用Kubernetes集群的master节点,更新Pod的模板YAML文件,并调用kubectl命令进行发布操作;
8.Kubernetes集群的Node节点从Harbor仓库拉取镜像,启动Pod和应用容器。

这样的流程好处在:除了第1步的PC端提交代码到Gitlab是需要手动来完成,后续的所有步骤都实现了自动化的流程模式,一次配置成功,永久实现自动部署,这里的自动部署包含自动打包+自动单元测试+自动构建镜像+自动推送私有镜像仓库+自动更新服务+自动服务发布。

相关概念和软件介绍

CI&CD

CI&CD ,即持续集成和持续交付,是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。
在CI环境中,开发人员将会频繁地向主干提交代码。这些新提交的代码在最终合并到主干前,需要经过编译和自动化测试流进行验证。
在CD环境中,通过自动化的构建、测试和部署循环来快速交付高质量的产品。

Jenknis

Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。

Pipeline

要实现在Jenkins中的构建工作,可以有多种方式,比较常用的Pipeline这种方式。Pipeline,简单来说,就是一套运行在Jenkins上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。

Harbor

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐