敬畏生产环境

简介: 生产环境即是运行用户正在使用的系统环境。有时,一些粗心的用户会把他们的生产环境交给我们,希望我们来进行变更操作,如部署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用户,就避免了无意的禁忌操作。

使用绿色软件

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

目录
相关文章
|
28天前
|
消息中间件 数据采集 运维
一份运维监控的终极秘籍!监控不到位,宕机两行泪
【10月更文挑战第25天】监控指标的采集分为基础监控和业务监控。基础监控涉及CPU、内存、磁盘等硬件和网络信息,而业务监控则关注服务运行状态。常见的监控数据采集方法包括日志、JMX、REST、OpenMetrics等。Google SRE提出的四个黄金指标——错误、延迟、流量和饱和度,为监控提供了重要指导。错误监控关注系统和业务错误;延迟监控关注服务响应时间;流量监控关注系统和服务的访问量;饱和度监控关注服务利用率。这些指标有助于及时发现和定位故障。
78 1
|
3月前
|
数据挖掘 项目管理 调度
「软件项目管理」一文详解软件项目质量计划
该文章全面介绍了软件项目质量计划的制定方法,涵盖了质量模型、质量管理过程、质量保证与控制技术,并提出了软件质量改善的具体建议,帮助项目管理人员有效地提升软件产品的质量水平。
「软件项目管理」一文详解软件项目质量计划
|
4月前
|
存储 运维 应用服务中间件
【实用经验分享】JumpServer部署教训:避免自信陷阱,谨慎行事
本文是关于使用JumpServer作为堡垒机进行服务器运维管理的经验分享。作者讲述了选择JumpServer的背景、从2.5.0版本升级到2.9.2版本的过程,以及在大厦断电后重新部署服务时遇到的挑战。文章详细描述了解决nginx和https配置问题的方法,并强调了在部署过程中保持谨慎、利用官方文档以及社区支持的重要性。最后,作者提到了数据迁移的问题,指出虽然旧数据无法直接融合到新版本中,但通过手动重新添加,能够顺利完成数据迁移。
159 2
【实用经验分享】JumpServer部署教训:避免自信陷阱,谨慎行事
|
4月前
|
监控 jenkins 测试技术
怎样做才能实现持续集成、部署
【8月更文挑战第28天】为了实现高效的持续集成与部署,需从技术、流程与文化三方面着手。技术上采用如Git的版本控制、自动化构建工具(Maven、Gradle)、自动化测试及持续集成服务器(Jenkins、GitLab CI/CD),并通过Docker与Kubernetes进行容器化与编排。流程层面强调团队协作、代码审查、持续部署策略以及系统的监控与反馈机制。文化层面上,提倡持续学习、改进及风险管理。这些措施共同促进了软件开发的高效与质量提升。
59 1
|
4月前
|
监控 Linux Shell
"揭秘!一键掌控Linux服务器健康的秘密武器——超实用系统检查脚本,让你的服务器稳如老狗,告别宕机烦恼!"
【8月更文挑战第14天】服务器宕机或资源耗尽会严重影响业务。为此,你需要一个Linux系统检查脚本来守护服务器健康。它可以自动检测潜在问题如磁盘满载、内存泄漏等,避免服务中断。脚本应包括磁盘空间、内存/CPU使用、系统时间准确性、关键服务状态及系统日志分析等检查项。通过编写并定期运行这样的脚本,可以显著提高服务器的稳定性和可靠性。
59 1
|
7月前
|
测试技术 API 开发工具
带你读《代码管理实践10讲》——四、打破代码评审“小步快跑难落地”的魔咒
带你读《代码管理实践10讲》——四、打破代码评审“小步快跑难落地”的魔咒
125 0
生产环境出问题了,研发要不要罚钱?
生产环境出问题了,研发要不要罚钱?
146 0
|
机器学习/深度学习 安全 测试技术
我亲身经历的2022年软件质量工作
我亲身经历的2022年软件质量工作
|
测试技术 数据库
阿里研究员:测试稳定性三板斧,我怎么用?
如何治理测试稳定性问题?很多人会说:环境、流程管控、监控、工具化、加机器、专人负责、等等。这些都是对的。不过这些都是解决方案层面的,而不是方法论和理论体系层面的。今天,阿里研究员郑子颖来说说测试稳定性的三板斧。据说,阿里同学们都非常认同这三板斧,看完文章感觉很多做的事情有了理论基础。
2732 0