SRE是什么?如何做好运维转型

uptime

运维工程师一定很熟悉 uptime 这个命令,如果用服务器的 uptime 时长来衡量我们运维的效果,你觉得是否合适?很多的应用场景,服务器从来没有发生过宕机,但是服务的响应速度很慢,那这样的运维是不满足用户要求的,那你说这是运维的锅还是开发的锅?

如果运维仅仅盯着 uptime 是远远不够的,因此传统运维需要向 SRE 转型。

SRE是什么

SRE 的全称是 「Site Reliability Engineering」,最早在 2003 年由 Google 的工程师 Benjamin Treynor 提出。与传统的运维工程师相同的是,Benjamin Treynor 的团队也是负责生产系统的运维工作,不同的是,他们更关注服务的可靠性和服务的质量。

从 SRE 的角度来看,我们更应该关注的是我们运维的服务是 可靠 「Reliable」的,也就是要保证我们的 SLA 水平「Service Level Agreement」。比如说系统可用性是 99.99%,响应延迟低于 200 毫秒等等。

四条法则

  • 关注延时。关注交易链路上各个环节的请求,确保延时都在满意的范围内。例如实时查询接口最好在500毫秒内返回结果,报表类的复杂业务最好也不要让用户一直看着转圈圈。
  • 关注流量。不光关注底层技术上的流量,也要适当关注业务层面的流量,诸如每日总访问量、最高峰访问量等等。
  • 关注监控。基础的运维需要能够监控到系统错误,例如HTTP的500错误,或者Java应用中的Error报错。进阶的运维则更需要关注业务错误,如果系统报大量的404,我们同样需要判断是否有异常访问或者存储上是否有问题。
  • 关注容量。系统容量考量的是我们对于突发问题的预见性,如果系统高可用架构设计了两个节点,则每个节点的日常流量不应超过总流量的1/2,如果高可用架构设计了三个节点,则每个节点的日常流量不应超过系统容量的60%。

SRE 更加强调从设计之初就考虑未来可能的故障问题,并鼓励用自动化的手段来代替人的操作,其本质是利用软件工程的思维和方法解决复杂的运维问题。

「认真」是最难能可贵的品质。

cocowool

A FULL STACK DREAMER!