项目实战典型案例11——生产环境重大事故

简介: 项目实战典型案例11——生产环境重大事故

生产环境重大事故

一:背景介绍

对于arpro这个项目。生产环境上布置了两套环境,一套A环境,一套B环境。

这样做的意义是如果线上A环境出现意料之外的问题(A环境大面积崩溃不可用,A环境服务器出现问题等等)我们能够立即切换B环境供用户进行使用。
A环境与B环境是完成一致的。


这一次arpro生产环境出现好几个重大的问题。


1.生产A环境没有及时进行构建,导致生产A环境与生产B环境版本不一致

2.禅道上2022年5月1日的发版日志没有关联需求,导致发版流程上出现疏漏,会影响此后的发版流程。

3.B环境构建异常,没有及时进行处理,导致将影响项目的及时发版。

4.目前线上运行的是B环境,实际应该运行A环境;没有及时做升级的切换。

5.系统跑一段时间,内容占用会随时间的增加而剧增;大约在一周左右时间内存会达到系统不可用(这里的一周时间说的是现在的业务量,可能随着业务量的增加时间会缩短)




二:思路&方案

上面问题1—4都是偏向于生产发版的问题 ,问题5偏向于技术问题。

对于上面的五个问题,我们都需要清楚生产环境不是儿戏需要有足够的责任心。需要对生产环境有一份敬畏之心。

对于问题1-4的思路&方案

在明确生产环境有两套环境的价值和意义;生产环境的重要性的基础上。

流程制度上

  1. 有严格的上线流程,完成一项勾选一项
  2. 有严格的上线审批流程,审批通过之后才能进行后续的上线操作
  3. 有严格的闭环流程(如环境检测,上线后的测试)
  4. 只有具有一定职级的人可以操作生产环境的构建

上线流程示例:




对于问题5的思路&方案

一般的原因是代码中存在不合理的情况,导致创建出了大对象,对象一直存在着引用导致GC无法进行回收,随着时间这些无法被回收的对象越来越多导致内存逐渐上升。


对于这类问题需要具体分析可以通过打印jvm快照的方式生成
dump文件,可以使用jdk1.8自带的内存分析工具Jvisual进行内存分析。寻找照成内存上升的原因。

四:总结

  1. 对生产环境有一份敬畏之心
  2. 通过一定的形式来保证内容
  3. 通过划分角色来进行权限隔离
目录
相关文章
|
3月前
|
新零售 供应链 数据挖掘
推三返一系统开发|成熟案例|源码部署
“新零售”的商业生态构建将涵盖网上页面
|
5月前
|
设计模式 前端开发 Java
KnowStreaming系列教程第二篇——项目整体架构分析
KnowStreaming系列教程第二篇——项目整体架构分析
48 0
|
2月前
|
消息中间件 存储 负载均衡
精华推荐 | 【深入浅出 RocketMQ原理及实战】「底层源码挖掘系列」透彻剖析贯穿RocketMQ的消费者端的运行核心的流程(上篇)
精华推荐 | 【深入浅出 RocketMQ原理及实战】「底层源码挖掘系列」透彻剖析贯穿RocketMQ的消费者端的运行核心的流程(上篇)
22 1
|
7月前
|
敏捷开发 测试技术
推三返一开发稳定版丨推三返一项目系统开发详细指南/方案需求/步骤逻辑/流程功能/案例设计/技术架构/源码程序
推三返一系统开发是一种软件开发模式,也被称为迭代增量开发模式。它是一种敏捷开发方法的一种,通过将整个开发过程分为多个迭代周期,每个周期都会增加新的功能和特性,并在每个迭代周期结束后进行测试、反馈和修改。推三返一系统开发的核心思想是“推进三步,反馈一步”。
|
8月前
|
存储 缓存 负载均衡
《大型网站技术架构:核心原理与案例分析》读书笔记
《大型网站技术架构:核心原理与案例分析》读书笔记
【项目实战典型案例】11.生产环境的重大事故
【项目实战典型案例】11.生产环境的重大事故
|
10月前
|
测试技术
【项目实战典型案例】10.对生产环境以及生产数据的敬畏
【项目实战典型案例】10.对生产环境以及生产数据的敬畏
|
10月前
|
存储 负载均衡 应用服务中间件
项目实战典型案例17——环境混用来带的影响
项目实战典型案例17——环境混用来带的影响
58 0
|
10月前
|
存储 应用服务中间件 测试技术
【项目实战典型案例】17.环境混用带来的影响
【项目实战典型案例】17.环境混用带来的影响
|
消息中间件 存储 中间件
【分布式技术专题】「架构实践于案例分析」总结和盘点目前常用分布式事务特别及问题分析(中)
【分布式技术专题】「架构实践于案例分析」总结和盘点目前常用分布式事务特别及问题分析(中)
128 0
【分布式技术专题】「架构实践于案例分析」总结和盘点目前常用分布式事务特别及问题分析(中)