运维:对数据要有敬畏之心

网友投稿 1020 2022-10-02

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

运维:对数据要有敬畏之心

简述“对数据要有敬畏之心”这个主题是同事在一个早会分享时提出的,却直接引起我心中的共鸣。前几年各种删库跑路事件、Facebook宕机事件仍不绝于耳,虽然大家将“删库跑路”当作一个调侃与谈资,但上升到“对数据要有敬畏之心”的高度,作为运维我们就要居安思危,防患于未然。数据的定义从运维的角度,数据不是独立存在的,它存在于日常运维过程中的各个环节,如例行维护、变更、故障处理等。因此如果我们只考虑数据本身则意义不大,要从数据存在的各个环节去分析。在此我们将其大体概括为:数据备份文件系统+例行维护数据库大数据业务版本发布需求变更数据备份从数据安全的角度出发,我们最先想到的肯定是数据备份,下面我们来看下数据备份的几个关键点。首先,根据备份空间和从备份恢复的速度情况下,我们可以将数据备份分为本地备份和异地备份(不考虑多机房容灾)。其次,无论是何种备份方式,我们都需要考虑备份保存周期,因此无规则限制的归档会带来存储成本的不断升高。最后,针对数据丢失或误删等各种场景,我们需要确定就是备份哪些内容。对此我们总结需要备份的内容如下:系统级配置文件内核参数、hosts解析、crontab计划任务、环境变量、防火墙等应用级配置文件nginx、java应用、中间件、dns等日志级数据应用日志、nginx日志等数据库备份binlog日志、逻辑备份、配置文件、慢查询日志如果你还没有思路,看参考以下这篇文章:ansible自动化:备份管理实践文件系统+例行维护和文件系统联系最紧密的莫过于日常例行维护了,如磁盘清理、文件处理等所有与数据丢失风险相关的操作。当我们在例行维护过程中,运维必须精神高度集中,非常清醒的注意每个指令,执行危险操作时可以和同事进行二次确认。操作文件系统虽然都是简单命令,但也是有窍门的,在此给大家推荐下。【运维小贴士:巧用Linux冒号命令,实现rm防误删】Linux系统中冒号(:)在bash中是一个內建命令,而不单纯是一个分隔符,它的主要作用是空命令、参数扩展、重定向、注释等。我们可以使用其参数扩展特性实现rm的防误删功能,下面我们来通过实例讲解下其用法。格式:${parameter:-test}功能:如果parameter没有设置或者为空,替换为test;否则替换为parameter的值。命令:rm -rf ${dest:-test}用法:当变量dest为空时,删除test;当变量dest不为空时,删除test用例:rm -rf $dest。当变量dest没有设置或为空时,则命令变成rm -rf ,这将误删系统根目录,导致系统崩溃。改进:rm -rf ${dest:-test},当变量dest没有设置或为空时,会使用test代替,则命令变成rm -rf test,删除此目录不会产生任何影响。除了以上方法,如果我们的服务器都使用堡垒机登录的话,那么福利来了。我们可以使用堡垒机自带的命令过滤功能,禁用操作系统的危险命令。数据库+大数据数据库和大数据都作为基础数据,虽然有单独的DBA和大数据运维对其负责,但是我们仍可以借鉴堡垒机的命令过滤功能:对数据库操作过滤,如:drop、truncate、delete等对大数据操作过滤,如:hdfs dfs -rm等除了堡垒机的助力,我们还是需要从标准化流程出发,使用工具进行规范化管理。例如数据库可以使用Archery SQL审核查询平台,而大数据生态由于组件较多,可能无法找到一个统一的管理工具,这个我没有太多的经验,就不在此造次了,但是做好数据备份以不变应万变是必须的。业务版本发布业务版本发布绝对是运维工作中紧张又刺激的一项工作了,导致发布失败的原因也很多:配置文件混乱多环境污染git分支管理混乱版本发布比较随意缺少测试环节,如回归测试、冒烟测试等等等导致版本发布的原因很多,我这面只是列举了一部分。解决这部分问题需要研发、运维、测试的多方面配合,也就是我们耳熟能详的DevOps。我们从代码托管开始梳理:代码管理必须严格,按功能区分分支,不能随意合并代码至master;按环境区分配置文件,以免混淆;测试、生产等环境最好严格的物理隔离或逻辑隔离,避免环境互通;版本生产发布前,需要经过严格的功能测试;确定统一的版本发布日,非发版日严禁变更;标准化的版本发布流程,实现参数化自动版本发布;屏蔽/回复发版过程中的告警,实现更精细化的监控;以上几点不是只靠运维就能解决的,而是需要规范+流程+研发/运维/测试+工具的整体配合。常见的开源组合如下:Jira+Jenkins+Git+Sonar+Pipeline+监控。需求变更生产无小事,生产故障很可能就是因微小的变更操作导致的。在这方面曾经的基础运维同学和DBA同学都吃过亏,就是一个很平常、甚至有过很多实操的动作,触发了一个bug,进而影响业务。为什么要把需求变更单独拿出来讲,因为这是一个很容易让人忽略的点。对于不可预知的事情,我们必须提前做好预案:确定变更操作影响的业务范围通知相关责任人,确定变更关键节点确定变更方案及具体操作步骤做好数据备份及数据恢复方案确定变更时间,避免业务高峰期通过预案可以更充分的暴露风险点,帮助我们更好的应用突发问题。总结数据无处不在,数据风险也就如影随形,因此运维要对数据有敬畏之心,这和运维经验是否丰富无关。要想做到数据的安全性,我们需要一直保持警惕性。

运维从零认识云原生

Archery:数据库工单平台

Pipeline支撑运维自动化:Zabbix屏蔽/恢复监控

后话:PipeLine支撑运维自动化

运维思索:自动化运维体系如何入手?

ansible自动化:备份管理实践

札记:对的那条路,往往不是最好走的!

喜欢这篇文章,记得点赞+在看哦~

上一篇:21_Elasticsearch运维_集群节点分片
下一篇:做好智能化运维从做好指标开始
相关文章

 发表评论

暂时没有评论,来抢沙发吧~