万字经验帖:不具备这九种能力,建议不要做SRE
SRE最早是由Google提出的概念,其大概的意思就是:以标准化、自动化、可扩展驱动维护,用软件开发解决运维难题。这个岗位面世的时候,其根本要解决的问题就是打破传统研发人员快速迭代而引发的业务不稳定性,用以保证业务维护侧重的服务质量以及稳定性之间的平衡。
不同公司的SRE定位是不同的,可能某些公司的运维岗位也是SRE,以此,不能以偏概全,国内的SRE基本是以岗位来区分的,比如,有负责网络的SRE,有负责DBA的SRE,有专门负责业务的SRE,还有什么安全SRE等等。就谷歌所提到的SRE的理解来讲,基本都是以服务质量稳定为基线的维护工程师,只是对于SRE的要求是苛刻的,下面是我的个人理解:
第一:技能全面,比如网络、操作系统、监控、CICD、研发等,对于研发能力,可能不需要你精通,但是你需要具备可以使用一门语言完成某个功能的设计、开发与迭代。
第二:打破传统运维思想壁垒,以产品角度思维贯穿整个业务架构服务质量为前提的沟通协调能力。
第三:始终以软件工程解决问题为方向的规划之路。
综上所述,国内现在的SRE,大致可以分成俩个层级,PasS-SRE和业务SRE,前者主要是维护平台基建服务质量为主的SRE,后者主要是维护业务服务质量稳定性为主的SRE,业务SRE比较像业务运维。
在《SRE谷歌运维解密》一书当中已经提到了几个关键点:
可观测性系统故障响应故障复盘测试与部署容量规划自动化软件开发用户支持Oncall制定可交付的SLI/SLO/SLA
一、可观测性系统
在任何有一定规模的企业内部,一旦推行起来整个SRE的运维模式,那么对于可观测性系统的建设将变得尤为重要,而在整个可观测性系统中,通常我们会分为如下三个方面:
指标监控:即各种指标监控,比如基础资源指标,服务性能指标,业务的调用指标。日志:各种设备以及服务的运行日志监控。调用链:业务层面的调用链分析,通常在分布式系统中帮助运营、开发以及运维人员快速识别整体调用的瓶颈点。
一整套的可观测系统,它能确保你洞察系统,跟踪系统的健康状态、可用性以及系统内部发生的事情。
对于整个可观测系统的建设,需要注意如下两点:
确定质量标准是什么,并确保系统持续逼近或保持在质量标准极限范围内。系统地关注这项工作,而不应该只是随机地查看一下系统。
在整个企业级可观测系统中,我认为至少应该包括如下几个特征:
完备指标采集
可以对接企业内大部分的设备与技术栈相应的监控指标;同时,支持常见设备的监控指标体系,可以快速接入监控设备和指标,避免所有设备监控都是从头构建;对于日志数据的采集支持。
海量设备支持
企业IT系统数量和规模越来越大,因此监控系统比以前需要监控海量设备监控。
监控数据存储和分析
监控数据是运维分析、运维自动化和智能化的基础,因此海量监控数据存储以及基于监控数据的可视化分析是一个监控系统的基本能力。
可观测系统是整个运维体系的基础,它需要提供整个运维体系的数据化支持。
因此,一个企业级的可观测性系统应该是平台化的。一方面可以通过配置或者开发实现更多 运维指标的接入;另一方面,亦可对接更多的专业运维工具,整合并打通多元的运维数据,为更多运维场景提供数据服务。从整体上,可观测性系统为企业运维提供了一个数据基础,让我们对事故响应以及容量预测等方面更多使用数据而非凭借以往经验和拍脑袋做出决策。
二、故障响应
如果有什么东西出了故障,该如何提醒大家并做出回应?工具可以帮助解决这个问题,因为它可以定义提醒人类的规则。
故障响应是建立在使用可观测性系统构建的数据之上,并借助反馈循环,来帮助我们加强对服务的监控。
故障响应通常包含如下几个动作:
关注: