敬畏生产环境

简介: 生产环境即是运行用户正在使用的系统环境。有时,一些粗心的用户会把他们的生产环境交给我们,希望我们来进行变更操作,如部署Agent等。但我们实际上并不清楚这些生产环境有多重要,有时也不清楚我们的变更操作有多危险,其中一些操作很可能导致机器宕机,出现重大生产事故,让用户受到重大损失。

生产环境即是运行用户正在使用的系统环境。有时,一些粗心的用户会把他们的生产环境交给我们,希望我们来进行变更操作,如部署Agent等。但我们实际上并不清楚这些生产环境有多重要,有时也不清楚我们的变更操作有多危险,其中一些操作很可能导致机器宕机,出现重大生产事故,让用户受到重大损失。
所以我们对生产环境需要敬畏,本文罗列出一些禁忌操作,需要大家一定要避免的。

禁忌操作

替换系统文件

系统文件包括:

  1. 动态库文件:/lib、/lib64、/usr/lib下的文件,尤其是libc.so、libssl.so等文件
  2. 系统命令:/sbin、/bin、/usr/bin下的文件,包括不能替换其下的软链接
  3. 系统程序:/opt/jdk等
  4. 系统配置:/etc

系统文件的替换隐含了极大的风险,以下是运维中发生的一个实际故障:

在部署Agent时,由于执行时报libc.so相关的错误,操作人员就从其它机器复制了一个libc.so到目标服务器。

由于libc.so替换,导致依赖libc.so的所有程序,包含ksh、sshd等系统程序均无法启动。

由于这台AIX服务器已经几年没有重启过一次了,经过协调,大家在承担极大风险的情况下,使用光盘引导并恢复libc.so后才恢复了系统。

部署或升级系统包

包括:

  1. 部署新版本的libc、gcc、openssl等系统包
  2. 执行yum upgrade等升级命令

这些操作与替换系统文件的风险是一样的。以下也是一个我们操作导致的实际故障:

在部署Agent需要的ipmitool命令时,由于需要一些依赖的rpm包,操作人员就将相关的包复制到目标机器并部署。

由于包中包含了ssl等系统包,导致目标机器上的跳板程序(依赖旧版本ssl包)无法启动。

最后经过商务协调,用户自己重装了跳板机来恢复。

此案例中,尽管操作人员已经在公司内部作过同样的测试并部署成功,但依然在生产环境中导致了故障。因为生产环境确实有其历史,其中的细节是我们无法在短时间内了解并评估出风险的。

所以对生产环境要敬畏。

rm -rf 命令

这个操作的危险性在于,有时我们会疲劳驾驶,我们以为我们在做什么,但实际上只是机械性的快速敲打键盘,结果一不小心就输入了:

rm -rf / <回车>

这样的操作。
2017年初的Gitlab误删300GB的事故,就是疲劳驾驶rm引起。

重启系统

在生产环境中,看似无害的重启系统,实际上风险很大。最好清楚这些系统的实际情况,并与有关方面沟通。

提倡操作

不使用root用户

拒绝他人提供的root用户,可以杜绝自己背锅的可能性。不使用root用户,就避免了无意的禁忌操作。

使用绿色软件

运维程序不同于生产系统,它是辅助系统,所以我们部署的运维产品或工具,都应以绿色软件的思路开发与部署,避免对系统产生变更。

目录
相关文章
|
7月前
|
存储 缓存 运维
语雀生产故障不只是运维的锅
现在想来“客户第一”真的是一件很难的事情,说着虽然简单,但是站在用户视角不是一个口号,它需要管理的手段、产品的理念、研发的视线、运维的自动化去协同,我们要暂时放下部门的隔阂、放下旧的用户遗留的定位、放下研发技术手段的局限,真正站在一起去考虑才能形成合力。这个过程,我们有很多阻碍——持续商业化和变现压力、部门的拉扯、人力的变更、繁重的产品设计任务、改不完的bug、做不完的需求、甩不完的锅,还有当下不景气的整体经济现状和已过巅峰、不在风口、进入存量竞争的互联网行业大背景。
80 0
|
8月前
|
NoSQL 测试技术 API
从程序员到架构师开发运维场景实战篇:一人一套测试环境
一人一套测试环境 本篇开始讲第16次架构经历:一人一套测试环境。同样,先介绍业务场景。 业务场景:测试环境何时能释放出来使用 当时,公司的基础设施使用的是虚拟机,而且还未迁移到容器。
|
10月前
案例10-对生产环境有敬畏之心
对生产环境有敬畏之心
|
10月前
生产环境出问题了,研发要不要罚钱?
生产环境出问题了,研发要不要罚钱?
104 0
|
机器学习/深度学习 安全 测试技术
我亲身经历的2022年软件质量工作
我亲身经历的2022年软件质量工作
|
运维 数据挖掘 测试技术
谈谈企业管理软件领域内那些很难稳定重现故障的处理技巧(一)
企业管理软件面向的是企业级用户,如果软件出现故障(bug),在某些极端情况下,可能会让企业蒙受巨大的经济损失,故而对软件开发人员在编程规范,软件测试和软件交付之前的验证等各方面都提出了更高的要求。
118 0
谈谈企业管理软件领域内那些很难稳定重现故障的处理技巧(一)
|
程序员 测试技术 BI
谈谈企业管理软件领域内那些很难稳定重现故障的处理技巧(二)
企业管理软件面向的是企业级用户,如果软件出现故障(bug),在某些极端情况下,可能会让企业蒙受巨大的经济损失,故而对软件开发人员在编程规范,软件测试和软件交付之前的验证等各方面都提出了更高的要求。
128 0
谈谈企业管理软件领域内那些很难稳定重现故障的处理技巧(二)
|
Kubernetes 安全 对象存储
大佬愤怒喊话:在大厂做 Kubernetes 开源工作难以晋升
近日,Kubernetes(简称 K8s)圈内大佬 Noah Kantrowitz 连发多条推文抨击“FAANG”科技巨头内部晋升机制对 K8s 全职员工不友好,他指出,“科技大厂们的激励措施正阻止人们全职参与开源贡献,大家的贡献积极性正在放缓。”
152 0
大佬愤怒喊话:在大厂做 Kubernetes 开源工作难以晋升
|
消息中间件 缓存 运维
A微服务稳定性保障的“痛”(项目经验教训)
Spring cloud+Spring boot微服务化后,在稳定性保障上走过的路,经历过的痛
|
存储 SQL 运维