阿里云盘崩了,滴滴也崩了,对其的思考

简介: 阿里云盘崩了,滴滴也崩了,对其的思考



前脚阿里云崩了,还在收拾战场,后脚这二天滴滴也崩了,目前崩了的原因大家众说纷纭,有说大厂“降本增效”,把真正干活的老实人给裁了,留下一群只会做PPT的员工,有说是因为被攻击了,有说是因为更新导致的。所以对这件事情,我思考了一下,主要从发布计划和回滚计划来简单聊聊。

咱们聊聊看啊,一个完美无瑕的发布计划,都得考虑到哪些乱七八糟的变化(比如代码的改动呀,配置的扩充咧,还有那啥,数据的来回摆弄啊,各种玩意儿呢)、这些变动带来啥样的影响、咱家有没有真正做到数据和接口的平稳过渡、咱需不需要搞点啥灰度(是不是看起来很高级的样子)、灰度策略又是怎么回事儿?正常的发布流程,是不是得先干掉DDL那个讨厌鬼,然后再去兴师动众地建立MQ呢,等等等等,这里头可都是学问哦!有时候呢,变更本身可能不像开发那么费事儿,但难处就在于发布的那最后一哆嗦。所以呢,咱们开发技术方案的时候,就要提前把这些事情规划进去啦。比方说,假如开发小哥觉得某个方法名实在是不够高大上,于是乎就给人家换了个名字,这样的改变理论上不会出现编译出错的状况,但是一旦被搬到了线上,那就可能会引发在线崩溃啦,毕竟这方法可能还是别人家的插件儿呢,一下子发布出去,可能调用方就找不着北了,立刻变成了线上危机了哦。有的变更嘛,可是涉及到底层数据结构的调整呢,这个时候,有没有办法做到发布过程的平稳兼容呢,还要考虑历史数据该不该移位过去。那这个新发布的功能,到底是要用在哪种场景呢,有没有能力承受流量的冲击,是否需要极高的一致性呢。

下面呀,咱们来说说在项目回滚这档事上,需要格外留意的几点:

  1. 首先得明白啥叫回滚目标吧:在咱们开始动手回滚之前,最好能明确回滚的目标,保证目标跟实际情况能对号入座,别一不小心搞错了,回头发现没法补救,那就尴尬了。
  2. 数据这东西可得保护好:在开始回滚之前,得抓住时机,把现在手上项目的所有数据都备份下来,这样就算回滚过后出幺蛾子,还能及时恢复正常状态呢,那才是真正的稳如泰山。
  3. 检查代码质量,谁也不能掉链子:回滚过程中难免要动脑筋修改几段代码,所以啊,代码审查这活儿得勤快点儿干,确保编写出来的代码质量跟预期要求相符,尤其是那些可能跟业务判断紧密相关的异常处理方法,更是千万不能马虎大意。
  4. 回滚之后还得测试!:回滚完了之后呀,对系统进行测试这事儿可不能落下,得看看恢复之后的系统功能、性能之类的,是否真的达到了预期效果,而且还不能有任何一丁点儿问题,这才算是大功告成。
  5. 遇事沉着冷静:回滚过程中,那可是小菜一碟呢,说不定就会遇到各种各样的意外情况,比方说程序崩溃,数据丢失啥的,遇到这种事儿得保持淡定,妥善处理,防止他们扩大化,影响到整个系统的稳定性。
  6. 回滚完了,版本管理得做好:回滚完之后啊,每个版本都要有个地方落脚,方便将来需要的时候能随时把他们请回来。平时咱们一般采用分叉功能或者利用 revert 和 reset 指令等手段来搞定版本管理任务。
  7. 回滚过程中的每一步,都得有记录:回滚的过程中,所有的操作和数据变化都得留档备查哦,这样碰到啥疑难杂症,回头随时就能拿出来翻阅查看,作为参考依据啦。

总而言之啊,为了保证项目回滚的顺利进行,取得圆满成功,增强日后项目开发的驱动力,我们在进行项目回滚的过程中,必须得小心翼翼,明确目标,做好数据备份工作,保证代码质量,对回滚后的系统进行全面测试,紧盯各种异常情况,做好回滚后的版本管理工作,同时还要将回滚过程详细记录下来。只有这样,才能让我们的项目回滚之路倍感顺畅,成就辉煌呀!



相关文章
|
Java 微服务 Spring
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(六)(优化篇)开发篇-如何解决微服务开发环境请求实例转发到别人机器问题
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(六)(优化篇)开发篇-如何解决微服务开发环境请求实例转发到别人机器问题
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(六)(优化篇)开发篇-如何解决微服务开发环境请求实例转发到别人机器问题
Maven之阿里云镜像仓库配置
方式一:全局配置可以添加阿里云的镜像到maven的setting.xml配置中,这样就不需要每次在pom中,添加镜像仓库的配置,在mirrors节点下面添加子节点: <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.
|
Android开发 数据格式 XML
BluetoothAdapter在Android6.0/7.0+以上startDiscovery不能发现蓝牙设备问题
BluetoothAdapter在Android6.0+以上startDiscovery不能发现蓝牙设备问题 问题的重要原因之一是Android 6.0+,Android 7.0+的权限问题引起的。
1810 0
|
12月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
372 1
|
运维 监控 安全
DevOps实践:构建高效运维团队的五大策略
在当今快速发展的IT领域,DevOps已成为提升软件开发和运维效率的关键。本文将深入探讨如何通过实施五大策略来构建一个高效的运维团队,包括自动化流程、持续改进、协作文化、监控与响应以及安全优先。这些策略旨在帮助组织缩短开发周期,提高软件质量,同时确保系统的稳定性和安全性。
331 32
|
安全 算法 网络安全
|
存储 编译器 C语言
strlen函数详解
strlen函数详解
597 2
|
设计模式 Java
Java源码中经常出现的for (;;) {}:理解无限循环
我们平常都会去阅读Java的源码,经常可以在源码中看到for (;;) {}的结构,本文将带你去理解无限循环。虽然无限循环可以在某些情况下很有用,例如在需要一直监听用户输入或执行某些后台任务的情况下,但它们也可能会导致程序变得不可响应或崩溃。因此,在使用无限循环时需要谨慎,确保有适当的退出条件或逻辑,以避免程序陷入死循环。
323 1