SRE网站可靠性工程师
SRE网站可靠性工程师
SRE需要做什么?
一般:
- 故障模式,尤其是SPOF(单点故障)。消除SPOFs是你作为SRE最大的挑战和乐趣。
- 基础设施组件,从应用程序到硬件(服务器、交换机、路由器、互联网连接、防火墙、isp、互联网路由(BGP)、IPS系统等)。
应用程序级别:
- 应用程序负载测试、内存泄漏和断点。
服务器级别:
- 高可用性和系统故障转移。如何使系统优雅地失败,而不会丢失事务并从最终用户的角度保持有状态。
- 备份系统。
- 硬盘的可靠性和故障转移(包括RAID功能)。在数据中心级别,应该考虑灾难恢复(确保故障转移到不同的位置)。
安全与管理:
- 了解不同类型的网络安全攻击。
- sla——把最好的留到最后,sla(service level agreements服务水平协议)是SRE工作中最重要的方面之一。设置、监视和执行sla将占用大量工作。
SRE核心组件
SRE的以下5个理念可以通过事实数据和洞察力带来更好的客户体验。可观察性和实用的度量标准是现SRE促进服务弹性和基础设施正常运行的最佳方法——满足客户的期望。
1)可用性
SRE工程师将负责制定和满足服务水平的目标、协议和指标(SLOs、sla和SLIs)。基于底层应用程序和基础设施的成熟度,以及整个团队的结构和可靠性实践的支持,SREs可以评估合理的指标,以量化客户的正常运行时间和可用性。什么样的可用性水平是合理的,可以假定您可以持续地维护,以及什么会让客户和潜在客户满意,从而带来更多的业务?
2)性能
当然,如果站点可靠性工程师要对服务可用性负责,那么他们也要对性能负责。在某种意义上,性能是看待可用性的另一种方式。在工程团队看来,经历了某种程度的延迟或另一种类型的性能下降的客户,很可能正在经历停机。如果服务不是高性能和可用的,那么它几乎是不可用的。SREs负责为这些生产系统带来见解和行动,以确保开发人员和IT团队快速修复问题,改善客户体验,并使应用程序和基础设施随着时间的推移更具弹性。
3)监控
为了确保性能和可用性,SREs需要知道在其应用程序和基础设施中监视和警告什么。可观察的服务大大提高了开发和发布团队的效率,这自然会提高面向客户的服务的正常运行时间和性能。SREs同时使用白盒和黑箱监控,以及仪表板和其他可视化工具来确保开发,组织中任何地方的IT和安全团队都能更好地了解他们的应用程序和基础设施的健康状况。
4)事件反应
SREs的随叫随到管理和事件响应,通常在不同的组织之间是不同的。虽然站点可靠性工程师并不总是需要随叫随到,但他们至少应该对事件后的评审做出贡献,并在高水平上了解事件响应过程。系统可靠性在很大程度上取决于DevOps和IT团队在处理生产中的事故和中断时的效率。站点可靠性工程师需要对他们的事件响应团队的成功负责——这通常意味着他们需要成为随叫随到过程的一部分。
5)协作沟通
SREs需要确保开发人员和IT运营团队拥有他们需要的资源,以了解他们的系统,知道什么地方出了问题,并快速响应问题。通过事件后的协作评审过程、有用的度量标准和指示板,以及对组织的CI/CD过程的全面改进,站点可靠性工程师在DevOps和IT效率方面有很大的优势。
google招聘SRE的要求
最低学历:
- 计算机科学学士学位,软件/系统工程相关技术领域,或同等的实践经验。
- 至少使用以下语言之一进行编程:C、c++、Java、Python或Go。
- 熟悉算法和数据结构。
优先条件:
- 具有设计、分析和故障排除大型分布式系统的专业知识。
- 具有调试、优化代码和自动化日常任务的能力。
- 系统解决问题的方法,加上有效的沟通技巧和驱动力。
- 了解Unix/Linux操作系统。
参考
Google’s SRE Book
Google’s Site Reliability Workbook PDF
Google Cloud Platform Podcast
Splunk’s Beginner’s Guide to Observability
SRE, Golden Signals and Happier Customers (webinar)
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (book)
The Complete Guide to Post-Incident Reviews
Reducing MTTD for High-Severity Incidents (guide)
The Unicorn Project (book)