SRE 全称是 Site Reliability Engineering,最早是由 Google 提出,并且在其工程实践中发扬光大。在 2003 年时候 Google 的 Ben Treynor 招募了几个软件工程师,这个团队设立目的是帮助 Google 生产环境服务运行更稳定、健壮、可靠。不同于中小型规模公司,Google服务于十几亿用户服务,短暂服务不可用会带来致命后果。因此 Google 走在了时代最前面,SRE 产生了。
SRE 原则:Don't Repeat Yourself
SRE 理想:Automate Everything
Site reliability engineering (SRE) is a discipline that incorporates aspects of software engineering and applies that to operations whose goals are to create ultra-scalable and highly reliable software systems
Google SRE 是业内最有影响力的,也是最早提出这个概念的。他们出了一本书 《Site Reliability Engineering》 ,描述了这个岗位是如何高效协同工作的。
Google的官方对于SRE的PPT介绍~
Keep the site up
– Whatever it takes
– Site unavailable? Our problem, whatever the reason
Work at a Large Scale
– Many services
– Lots of data
– Many machines
– But not so many people (machines:admins > 4000:1)
Balance competing demands
– Improve availability and reachability
– Enhance functionality
– Improve efficiency
– Take on new services (post-launch)
看看google招聘SRE
DevOps VS SRE
很有趣的对比,DevOps 和 SRE 都会关心应用生命周期,特别是生命周期里面中变更和故障。
但是 DevOps 工作内容是主要为开发链路服务,一个 DevOps Team 通常会提供一串工具链, 这其中会包括:开发工具、版本管理工具、CI 持续交付工具、CD 持续发布工具、报警工具、故障处理。
而 SRE Team 则关注更为关注变更、故障、性能、容量相关问题,会涉及具体业务,产出工具链会有:容量测量工具、Logging 日志工具、Tracing 调用链路跟踪工具、Metrics 性能度量工具、监控报警工具等。
SRE 的首要工作任务是保证 SLA。SLA 是 service-level agreement 的缩写,没有贴切的中文翻译,我们继续用缩写好了。SLA 一般指的是系统的功能指标,比方说系统可用性(availability)达到 99.99%;对于 95% 的请求,响应延迟(latency)低于 200 毫秒等等。《SRE》第 4 章会具体讲 SLA、SLO、SLI 的含义及用法。
参考文章
https://www.jianshu.com/p/6fdd6b302a9a