Skip to content

一、项目介绍

PIG4CLOUD 是一款深度整合 Spring Cloud 最新生态 与 Spring Boot 3.4 技术栈的开源企业级微服务开发平台,聚焦 Java 开发者实际需求,通过预置标准化开发模板、自动化配置工具及开箱即用的微服务治理能力(如服务注册发现、负载均衡、熔断限流等),有效简化从项目初始化到应用部署的全流程开发链路,助力快速构建高可用、易扩展的企业级微服务应用。

1.1 架构说明

  • 基础架构

基础架构

  • 高可用架构

高可用架构

  • 主要技术栈

  • 核心依赖
依赖版本
Spring Boot3.5
Spring Cloud2025
Spring Cloud Alibaba2023
Spring Authorization Server1.5
Mybatis Plus3.5
Vue3.5
Element Plus2.7
  • 功能模块
前端代码: pig-ui  -- https://gitee.com/log4j/pig-ui

后端代码: pig -- https://gitee.com/log4j/pig
pig
├── pig-boot -- 单体模式启动器[9999]
├── pig-auth -- 授权服务提供[3000]
└── pig-common -- 系统公共模块
     ├── pig-common-bom -- 全局依赖管理控制
     ├── pig-common-core -- 公共工具类核心包
     ├── pig-common-datasource -- 动态数据源包
     ├── pig-common-log -- 日志服务
     ├── pig-common-oss -- 文件上传工具类
     ├── pig-common-mybatis -- mybatis 扩展封装
     ├── pig-common-seata -- 分布式事务
     ├── pig-common-security -- 安全工具类
     ├── pig-common-swagger -- 接口文档
     ├── pig-common-feign -- feign 扩展封装
     └── pig-common-xss -- xss 安全封装
├── pig-register -- Nacos Server[8848]
├── pig-gateway -- Spring Cloud Gateway网关[9999]
└── pig-upms -- 通用用户权限管理模块
     └── pig-upms-api -- 通用用户权限管理系统公共api模块
     └── pig-upms-biz -- 通用用户权限管理系统业务处理模块[4000]
└── pig-visual
     └── pig-monitor -- 服务监控 [5001]
     ├── pig-codegen -- 图形化代码生成 [5002]
     └── pig-quartz -- 定时任务管理台 [5007]

1.2 基础环境说明

工具版本备注
JDK17master分支版本要求
Maven3.8+
MySQL5.7.8 +强制要求
Redis7+
NodeJs18强制要求

二、项目实战演示

2.1 实战目的

通过本实战项目,你将系统掌握基于 Jenkins 的全链路 CI/CD 流程设计与落地,覆盖微服务架构从代码提交到生产环境部署的全生命周期管理,并深度整合 DevOps 工具链实现高效、可靠的自动化交付。以下是核心学习目标与技术场景的详细拆解:

  1. 微服务全量发布与多环境参数化部署

你将通过 Jenkins Pipeline 流水线 串联前端(如 Vue/React)与后端(如 Spring Boot/Go)微服务的完整发布流程,从代码拉取、编译打包、单元测试到多环境(测试/预发/生产)部署,实现“一次定义,多处运行”的标准化交付。

  • 多环境参数化构建:借助 Active Choices Plugin 动态注入环境参数(如目标服务器 IP、数据库配置、服务端口),支持通过下拉菜单灵活选择部署环境(测试/预发/生产),避免硬编码带来的维护成本。

  • 版本控制与回退:在流水线中集成版本号自动递增(如 Git commit ID 或时间戳),并通过 Jenkins 构建历史记录关联制品(如 Docker 镜像、WAR 包),支持一键回退至任意历史稳定版本,解决生产环境故障时的快速恢复问题。

  1. 基础设施自动化与脚本复用

针对多机器部署的复杂场景,通过 Jenkins + Ansible 组合实现轻量级自动化运维:

  • Ansible 多机编排:编写 Playbook 完成服务器初始化(如 JDK/Node.js 环境安装、Nginx 配置)、微服务进程管理(启动/停止/重启)、健康检查(HTTP 探活或 TCP 端口监听),支持通过 Inventory 文件批量管理不同环境的服务器集群。
  • Shared Library 脚本复用:将通用操作(如 Docker 镜像推送、K8s 部署命令、日志收集脚本)封装为 Jenkins 共享库(Shared Library),通过 Groovy 脚本或 Java 类实现跨项目复用,避免重复代码冗余,提升团队协作效率与脚本维护一致性。
  1. 代码质量门禁(SonarQube)

在 CI 流程中嵌入 SonarQube 代码扫描,通过静态代码分析(SCA)检测代码异味(Code Smell)、安全漏洞(如 SQL 注入)、覆盖率(Unit Test Coverage)等指标,设置质量阈值为“构建失败”条件(如覆盖率低于 80% 或存在高危漏洞),强制代码质量达标后才能进入部署阶段,从源头保障系统稳定性。

  1. 容器化与编排
  • Docker 镜像构建:基于 Dockerfile 自动化构建微服务镜像(支持多阶段构建优化镜像体积),并推送至私有镜像仓库(如 Harbor),确保环境一致性(“一次构建,到处运行”)。
  • docker-compose 编排:针对本地开发或测试环境,通过 docker-compose.yml 定义微服务、数据库(如 MySQL/Redis)、中间件(如 Nginx)的服务依赖与启动顺序,一键启动完整测试栈,简化本地调试流程。
  1. K8s 集群与 Helm 应用管理

将容器化应用部署至 Kubernetes(K8s)集群,实现弹性扩缩容、高可用与滚动更新:

  • K8s 集群搭建:通过 kubeadm 或云厂商(如阿里云 ACK)快速搭建生产级 K8s 集群,配置 RBAC 权限控制、网络插件(如 Calico)、存储卷(如 NFS/CSI),保障集群安全性与稳定性。
  • Helm 应用发布:将微服务封装为 Helm Chart,通过 helm install/upgrade 命令管理应用的版本发布与回滚,支持模板化配置(如不同环境的 values.yaml 文件),简化多环境部署的配置管理。
  1. 团队协作与反馈闭环

通过 企业微信(企微)Webhook 集成,将 CI/CD 流程的关键节点(如构建成功/失败、部署完成、版本回退)实时通知至企微群或指定成员,同步构建耗时、制品版本、部署状态等信息,确保团队快速感知交付进展,缩短问题响应时间。

2.2 实战价值

本项目覆盖从“代码提交→质量检测→容器打包→集群部署→通知反馈”的全链路自动化,帮助团队解决传统部署中“环境不一致、人工操作易出错、故障恢复慢、代码质量不可控”等痛点,最终实现高效、可靠、可追溯的 DevOps 交付体系,适用于电商、金融、SaaS 等需要快速迭代的微服务场景。

通过动手实践本方案,你不仅能掌握 Jenkins 生态的核心工具链(Pipeline、Shared Library、Active Choices),还能深入理解云原生技术(Docker/K8s/Helm)与质量保障(SonarQube)的落地方法,为团队级 DevOps 转型提供可复用的技术模板。

最近更新

采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小弟