生产环境发布管理

简介: 本文介绍大型团队如何通过自动化部署平台实现多环境(dev→test→pre→prod)高效发布。涵盖各环境职责、角色分工及CI/CD流程,结合GitLab与Jenkins,实现分支创建、构建、部署一体化,支持热更新与回滚,提升发布效率与系统稳定性。

在一个大型团队中,生产发布是一件复杂的事情,从dev(前后端联调)-->test(测试集成&压力测试)-->pre(灰度测试)-->prod(生产环境)的多环境推进,以及生产环境的热更新、回滚等问题一直在困扰着各个公司,今天我将基于公司的自动化部署平台为大家讲解下我们是如何做到多环境部署。

在明确发布之前,我们需要明确一下每个环境的主要职责和角色:
DEV:也叫开发环境
● 事项:前后端接口联调,修复代码基础缺陷
● 角色:前端-后端
TEST:也叫测试环境
● 事项:测试集成测试、压力测试,开发修复bug
● 角色:开发(前端后端)、测试
PRE:也叫灰度环境
● 事项:生产环境冒烟测试,切5个左右真实生产数据,回归流程是否有问题
● 角色:开发(前端后端)、测试
PROD:也叫生产环境
● 事项:发布代码,做真实环境验证,有问题第一时间修复(sql止血订正或代码回滚)
● 角色:开发(前端后端)、测试、运维

随着自动化部署CI/CD(DevOPS)成熟,目前大型公司都开始搭建自动化部署平台,形如下图:
image.png
当用户进入应用主页后,会发现有不同的发布环境,每一个环境对应一台服务器、一个访问域名、一组中间件环境(即dev、test等环境的nacos-mysql等都是分环境部署的)。
image.png
同时自动化部署平台会自动整合公司的gitlab,将分支展现在发布平台,以便用户可以界面化操作和部署
image.png

当用户需要创建分支时,不再需要像传统的那样去git创建,或者idea创建,而是可以直接在当前发布平台创建(底层是一样的,都是创建一个新的git分支)
image.png
当用户需要发布时,只需要进入对应的环境(这里我们以test为例),勾选所需要发布的分支,即可实现自动化部署。下图可以看到test环境同时部署分支约20个。
image.png
需要注意的是:假设我们需要对A分支进行发布,只需要勾选A分支,底层Jenkins会自动完成jar包构建,并执行底层的Docker run指令完成容器部署,这里部署的jar包每个环境都是隔离的。
即dev的jar跟test无关,每次都是新构建自己的。即使是test,点击两次发布也是构建了两个jar,只不过第二次的会覆盖第一次。这点各位需要明晰。
当测试提出我们有bug时,对应的开发人员就需要在idea中,A分支上完成代码修复并push,然后在自动化部署平台重新勾选分支,然后提交部署,完成一次重新发布,循环此过程,直至缺陷被修复。

相关文章
|
Linux Docker 容器
CentOS7离线安装Docker
CentOS7离线安装Docker
3296 0
|
3月前
|
人工智能 安全 机器人
AI智能体的开发费用
AI智能体开发已分级定价:轻量级5–15万(单场景MVP),中级20–60万(多步工作流),企业级100万+(多Agent协同+合规部署)。成本聚焦架构编排、工具集成、提示工程与安全评估,另含Token消耗、算力及数据治理等隐性支出。建议先做PoC验证效果。
|
2月前
|
SQL 人工智能 算法
2026大厂校招笔试指南(高频考点+真实趋势)
本文直击校招笔试痛点:题刷得多却过不了?问题不在努力,而在准备错位!详解大厂笔试新趋势——重工程能力、轻纯算法量;拆解选择题核心考点、算法真实难度分布、高频必掌握题型,并强调输入输出等易忽略细节,提供科学备考路径。
@Documented注解
该注解可用于生成Javadoc文档,结合@Target、@Retention等元注解,是实现自定义注解的基础。掌握其用法可提升代码可读性与开发效率。详情可参考“自定义注解”教程。
|
5月前
|
Java 测试技术 Apache
安装Jmeter
JMeter依赖JDK,需先安装并配置JDK环境变量。前往Apache JMeter官网(http://jmeter.apache.org/download_jmeter.cgi)下载最新版本,解压后即可使用,适用于性能测试与负载模拟。
|
人工智能 监控 数据可视化
什么是低代码平台,低代码平台有哪些优势?
低代码平台通过可视化建模和模块化设计减少编码需求,加速应用开发。其核心技术包括描述式编程和模型驱动开发,支持数据结构自动化管理、业务规则自动执行和模块间自动集成。相比传统开发,低代码平台提高了开发效率,支持微服务架构、事件驱动架构和自动化测试。低代码平台适用于数据分析、智能应用集成和跨平台应用开发等多种场景,未来将结合AI技术,实现更灵活的配置和自动化开发。访问官网:http://www.jeelowcode.com,演示地址:http://demo.jeelowcode.com:8088,源码地址:https://gitee.com/jeelowecode/JeeLowCode。
532 0
@Target注解
@Target注解用于指定自定义注解的作用目标,如类、接口、字段、方法、参数、构造函数、局部变量、注解类型及包,确保注解只能在指定程序元素上使用,提升代码规范性与可读性。
|
5月前
|
安全 Java 开发工具
整合SpringSecurity
本文介绍了Spring Security与Spring Boot的整合步骤:引入依赖、启动验证及登录测试。通过日志变化和自动跳转至login页面验证集成成功,使用默认用户名user和控制台生成的动态密码登录后,可访问受保护资源。完整代码见GitHub仓库Day01分支。
|
5月前
|
Java 容器 Spring
SpringBoot怎么过滤不需要的组件
Spring Boot中IOC容器确实存在,若不想某些Bean在启动时注入,可通过@ComponentScan指定扫描范围,或自定义TypeExcludeFilter排除特定类,也可在配置文件中设置过滤规则,灵活控制Bean加载。
|
5月前
|
Java
@SpringBootConfiguration注解
@SpringBootConfiguration是@Configuration的封装,标注主启动类,使其所在包成为组件扫描的根路径。因此主类需置于外层包,确保所有组件被扫描到,实现自动配置与组件注入。

热门文章

最新文章