生产环境发布管理

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

在明确发布之前,我们需要明确一下每个环境的主要职责和角色:
DEV:也叫开发环境
● 事项:前后端接口联调,修复代码基础缺陷
● 角色:前端-后端
TEST:也叫测试环境
● 事项:测试集成测试、压力测试,开发修复bug
● 角色:开发(前端后端)、测试
PRE:也叫灰度环境
● 事项:生产环境冒烟测试,切5个左右真实生产数据,回归流程是否有问题
● 角色:开发(前端后端)、测试
PROD:也叫生产环境
● 事项:发布代码,做真实环境验证,有问题第一时间修复(sql止血订正或代码回滚)
● 角色:开发(前端后端)、测试、运维
1.你们公司如何部署发布
方案一:Linux原生部署
我们公司的部署呢,还是比较原始的,就是直接部署在原生的Linux系统,我们平时dev发布就在idea构建好一个jar包,然后用XShell上传上去,用指令:nohup java -jar tj-learning.jar启动。测试环境和生产也是一样的操作
方案二:基于Jenkins的自动化部署平台
我们公司的部署都已经非常成熟了,有一套自动部署平台,底层是Jenkins+K8S实现自动化部署发布,我们只需要在dev、test、prod等环境勾选需要发布的分支就行,它全帮我们做好了自动部署。
2.你们公司怎么排查错误
方案一:Linux原生环境
我们公司的部署呢,还是比较原始的,就是直接部署在原生的Linux系统,所以排查日志也需要自己去找到error.log,然后手动找到报错的堆栈信息,分析出原因。比如有个NPE(NullPointException-空指针异常),就会显示具体哪行报错,我们就会分析、修复。
方案二:基于Docker的原生平台
我们公司目前的部署就是原生的Docker,通过docker logs命令人肉排查
方案三:基于Skywalking的日志检索平台(CI/CD平台)
对于日志排查,我们公司是有Skywalking的,只需要测试给我对应的traceId,我输入进去就可以看到完整的调用链路和报错的堆栈信息,然后就可以分析报错原因并修复了

相关文章
|
2月前
|
消息中间件 人工智能 NoSQL
RocketMQ:A2A协议实现多智能体优化
Apache RocketMQ 推出轻量级通信模型 LiteTopic,专为 AI 多智能体协作设计,支持海量会话、上下文持久化与断点续传。结合 A2A 协议与阿里 AgentScope 框架,实现高可靠、低延迟的智能体通信,助力企业构建稳定高效的多智能体应用。
|
2月前
|
存储 API 数据库
向量数据库的相关概念
向量数据库将文本、图像等非结构化数据通过嵌入模型转化为高维向量,支持高效存储与近似最近邻检索。具备多模态处理、混合查询、分布式扩展、实时更新等特性,广泛应用于推荐系统、语义搜索等场景,助力AI应用实现快速精准的相似性匹配。
|
2月前
|
XML 算法 安全
详解RAG五种分块策略,技术原理、优劣对比与场景选型之道
RAG通过检索与生成结合,突破大模型在企业应用中的局限,支持知识动态更新、降低幻觉风险。分块策略是其核心,直接影响检索效率与答案准确性。本文系统解析固定大小、语义、递归、结构化及LLM-based五种分块方法,对比优劣,提出选择建议,并探讨RAG在高风险领域的可验证性挑战与前沿优化方向。
|
5月前
|
监控 Kubernetes 安全
Istio 服务网格技术详解与实践指南
本文档全面介绍 Istio 服务网格的核心概念、架构设计和实践应用。作为云原生领域的关键技术,Istio 提供了透明的、语言无关的服务间通信解决方案,实现了流量管理、安全加固和可观测性等功能。本文将深入探讨其数据平面与控制平面架构、Envoy 代理机制、流量治理策略以及与 Kubernetes 的深度集成,帮助开发者构建可靠、安全的分布式系统。
436 5
|
6月前
|
存储 移动开发 Ubuntu
设置Ubuntu 22.04 LTS上的rsync同步服务
通过以上方法可以实现Ubuntu系统间基础且高效率得数据备份与共享。根据具体需求调整参数并测试以确认一切按预期工作。
362 14
|
存储 Kubernetes 数据库
剖析 Kubernetes 控制器:Deployment、ReplicaSet 和 StatefulSet 的功能与应用场景
剖析 Kubernetes 控制器:Deployment、ReplicaSet 和 StatefulSet 的功能与应用场景
918 0
|
存储 Kubernetes 安全
在k8S中,Secret 有哪些使用方式?
在k8S中,Secret 有哪些使用方式?
|
存储 Kubernetes NoSQL
k8s学习--资源控制器StatefulSet详细解释与应用
StatefulSet 是 Kubernetes 中用于管理有状态应用的控制器,提供稳定的网络标识符和持久化存储能力。相较于 Deployment、DaemonSet 等无状态服务控制器,StatefulSet 支持有状态服务如 MySQL、Redis 等集群的部署和管理。本文详细介绍 StatefulSet 的概念、特点及部署方法,并通过具体示例展示了如何配置 NFS 存储及 StatefulSet 应用,确保每个 Pod 拥有独立且持久的数据存储空间。
553 0
|
存储 canal Kubernetes
在K8S中,什么是CNI?平时K8s集群常用什么网络插件?
在K8S中,什么是CNI?平时K8s集群常用什么网络插件?
|
存储 Kubernetes 数据安全/隐私保护
在K8S中,如何下载harbor的私有项目镜像?
在K8S中,如何下载harbor的私有项目镜像?