什么是 SRE?一文详解 SRE 运维体系_sre运维,真是经典中的经典

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

故障响应

故障复盘

测试与发布

容量规划

自动化工具开发

用户体验


可观测性系统

在任何有一定规模的企业内部,一旦推行起来整个SRE的运维模式,那么对于可观测性系统的建设将变得尤为重要,而在整个可观测性系统中,通常我们会分为如下三个方面:

  • 指标监控:即各种指标监控,比如基础资源指标,服务性能指标,业务的调用指标。
  • 日志:各种设备以及服务的运行日志监控。
  • 调用链:业务层面的调用链分析,通常在分布式系统中帮助运营、开发以及运维人员快速识别整体调用的瓶颈点

一整套的可观测系统,它能确保你洞察系统,跟踪系统的健康状态、可用性以及系统内部发生的事情。对于整个可观测系统的建设,需要注意如下两点:

  • 确定质量标准是什么,并确保系统持续逼近或保持在质量标准极限范围内
  • 系统地关注这项工作—而不应该只是随机地查看一下系统

在整个企业级可观测系统中,我认为至少应该包括如下几个特征:

  • 完备指标采集:可以对接企业内大部分的设备与技术栈相应的监控指标;同时,支持常见设备的监控指标体系,可以快速接入监控设备和指标,避免所有设备监控都是从头构建;对于日志数据的采集支持
  • 海量设备支持:企业IT系统数量和规模越来越大,因此监控系统比以前需要监控海量设备监控。
  • 监控数据存储和分析:监控数据是运维分析、运维自动化和智能化的基础,因此海量监控数据存储以及基于监控数据的可视化分析是一个监控系统的基本能力。
  • 可观测系统是整个运维体系的基础,它需要提供整个运维体系的数据化支持。

因此,一个企业级的可观测性系统应该是平台化的。一方面可以通过配置或者开发实现更多 运维指标的接入;另一方面,亦可对接更多的专业运维工具,整合并打通多元的运维数据,为更多运维场景提供数据服务。从整体上,可观测性系统为企业运维提供了一个数据基础,让我们对事故响应以及容量预测等方面更多使用数据而非凭借以往经验和拍脑袋做出决策。

故障响应

如果有什么东西出了故障,该如何提醒大家并做出回应?工具可以帮助解决这个问题,国为它可以定义提醒人类的规则。故障响应是建立在使用可观测性系统构建的数据之上,并借助反馈循环,来帮助我们加强对服务的监控。故障响应通常包含如下几个动作:

  • 关注: 不论是主动发现瓶颈点或异常点,还是通过可观测性系统被动暴露瓶颈点,我们都应该进行主动关注
  • 交流: 及时将观察到风险点通知到相关方,并告知影响面以及相关的补救措施
  • 恢复: 三方达成一致后,根据补救措施进行修复相关风险点和异常点

需要注意的是,如果在前期整个可观测性系统能够做好,通常故障应当始于一个简单的告警信息或一个报障电话,因此,通常情况下,可观测系统做的足够好仅能起到追溯和排查的作用,但是无法起到及时发现的作用,此时就需要依赖于各个观测数据进行计算和评估告警,以及时将相关的告警通知到相关人,以暴露风险点。告警只是整个故障响应的第一个环节,解决的是故障如何发现的问题,而大多数的故障响应工作都是关于定义处理策略和提供培训的,以便人们在收到警报时知道该怎么做,通常这部分更多的是过去历史经验和运维经历的总结和沉淀,包括经验的一些抽象和工具化沉淀,以保证故障响应的效率和普遍化(即不依赖人为经验)。

而对于整个告警系统来说,需要确保的是告警的有效性,否则,整个报警系统很有可能沦落为垃圾数据制造机,告警有效性意味着需要满足如下两个需求:

  • 告警及时性: 系统有问题需要及时通过告警信息告知运维处理人员及时处理告警;
  • 告警准确性: 只要有告警信息系统必然出现问题(对于很多企业可能存在大量的无用告警,比如磁盘问题,mem等相关问题,当然这里涉及到了自动化、业务形态、告警阈值的问题);

在整个运维过程中,我们经常会发现有大量的无关紧要的告警信息,让运维人员的注意力迷失在告警海洋当中,而通常非运维领域的领导会关注整个告警的响应程度,因此,抑制和消除无效的告警,让运维人员不被告警风暴所吞没,也是告警管理中重点建设的内容。通常情况,在我们的各个可观测系统构建完成后,可以通过整合到监控平台中的各种监控数据,应用趋势预测、短周期检测、间歇性恢复、基线判断、重复压缩等算法和手段实现告警压缩收敛,强化告警的有效性。

同时,面向一线的运维人员,我们需要根据同一个系统或设备的多个监控指标进行综合性建模和分析,汇总成一个健康度的分值,给予一线运维人员系统的基于健康度的系统分层评价体系,真实、直观反映系统运行状态,实现问题快速定界。比如,通过基础资源的多个指标进行综合加权计算来整体评估该资源的利用率;通过一个应用关联的全部资源的资源利用率以及应用的运维架构整体建模分析来计算一个分值来整体评估该应用的健康程度。这个过程如果做得成熟一些,可以根据内部已有的解决方案和告警进行闭环打通,一个简单的场景就是,当磁盘满时,告警会首先触发一次标准化的磁盘巡检,并进行相关的可丢弃数据的删除,如果依然无法解决该报警,下次可直接关联到一线运维进行人工干预,之后进行标准化经验总结。

故障复盘

故障复盘就是对于过去的一些服务异常和服务中断情况进行回顾和总结,以确保相同问题下次不会再出现。为了让大家团结协作,我们希望建立一种无指责、透明的事后文化。个人不应该害怕事故,而是确信如果事故发生,团队将会响应和改进系统。备注: 其实在国内的SRE文化中,一般只有对大型,对业务有重大影响的事故才会进行复盘,但实际上如果在时间和经历允许的情况下,对于一般的普通事故也应该在小范围进行复盘,正所谓大的故障都是从不断的小问题一点一点积累的。另外,其实对于运维相关的个人而言,我们也应当及时的进行小故障复盘,以不断加强个人的故障处理和修复能力。我认为SRE的一个关键共识正是承认了系统的不完美性,追求永不停机的系统是不现实的。基于不完美系统,我们无可避免要面对和经历系统故障与失败。所以我们重要的并非找到为这个故障责任的这个人或者那个人,而是更应该创根问底地复盘这个故障和失败的根本原因是什么,以及如何避免再次出现相同的故障。系统可靠性是整个团队共同奋斗的方向,从失败中快速恢复并吸取教训,每个人放心地提出问题,应对停机,并努力改进系统。备注: 通常很多企业内部在故障复盘过程中,相关人员可能将故障和失败的根因追溯 不经意间 当做了故障定责和一系列的惩罚措施,通过一些惩戒措施来强行约定故障的发生,这种方式往往是非常不可取的,试想每个人都不想出现事故,要么是认知之外,要么是规则缺陷,永远没有一个人明知会有故障而偏偏去制造故障的。需要牢记的是: 故障是我们可以从中学习的东西,而不是让人害怕和羞耻的事情!

在日常运维过程中,出现故障等事故对于我们而言其实是一个很好的复盘学习机会。通过历史监控数据,分析事故其中的根本原因,制定后续应对策略,并且通过运维平台将这些应对策略编辑成标准化、可重用、自动化的运维应用场景,为后续相同问题的处理提供标准且快捷的解决方案。这正是事后回顾这个过程最真实的价值体现。

测试与发布

测试与发布对于整个稳定性和可靠性的主要出于一个预防的作用,预防是指尝试限制发生的事故数量,并确保在发布新代码时基础架构和服务能够保持稳定。作为一个长期从事运维工作的人,可能内心中最为恐惧的莫过于新应用版本发布。因为除了硬件和网络设备损坏这个属于天灾级别的概率事件外,新应用版本发布的第二天通常是停机与事故的高危期。所以,对于一些量级较大的产品通常会在节假日以及重要活动前夕进行封网操作,以避免新版本上线而导致的业务bug出现。而测试是在成本和风险之间找到适当的平衡活动。如果过于冒险,你们可能就会疲于应付系统失败;反过来说,如果你太保守,你就不能足够快地发布新东西,让企业在市场上生存下来。在错误预算比较多(即在一段时间内故障导致系统停机时长较少)的情况下,可以适当减少测试资源并放宽系统上线的测试和条件,让业务可以有更多的功能上线,以保持业务的敏态;在错误预算比较少(即在一段时间内故障导致系统停机时长较多)的情况下,则要增加测试资源并收紧系统上线的测试,让系统的潜在风险得到更多有效的释放,避免系统停机保持系统的稳态。这种敏态与稳态之间的平衡,需要整个运维与开发团队来共同承担。除了测试外,应用发布也是一项运维团队通常要承担的责任。SRE的一个原则是将一切可以重复性劳动代码化和工具化;此外,应用发布的复杂程度往往与系统的复杂程度成正比。因此在应用系统上规模企业,往往已经着手基于自动化框架构建自动化的应用发布过程。

通过自动化发布工具,我们可以构建流水线实现部署的过程中所有的操作(如编译打包、测试发布、生产准备、告警屏蔽、服务停止、数据库执行、应用部署、服务重启等)全部自动化。

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
[外链图片转存中…(img-OXJT3xZf-1713484259606)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 11
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值