网站可靠性工程师

图标
建设者图标
图标
剪贴板图标
图标
拼图图标
Related roles: SRE Engineer, DevOps Engineer (SRE), Systems Reliability Engineer, Operations Engineer (SRE), Infrastructure Engineer (SRE), Site Operations Engineer, Production Engineer (SRE), Platform Engineer (SRE), Site Availability Engineer, Reliability Engineer

聚光灯

类似标题

SRE Engineer, DevOps Engineer (SRE), Systems Reliability Engineer, Operations Engineer (SRE), Infrastructure Engineer (SRE), Site Operations Engineer, Production Engineer (SRE), Platform Engineer (SRE), Site Availability Engineer, Reliability Engineer

工作描述

在DevOps诞生之前,谷歌有一个问题,不知道如何解决。该公司正在运行大型网站,但需要改进它们,并进一步扩大其规模。它的解决方案是什么?谷歌标记了一个软件工程师团队来解决这个问题,他们的努力为网站可靠性工程(SRE)奠定了基础。今天,这个软件巨头将SRE定义为 "当你把运营当作一个软件问题时,你会得到什么"。

SRE的做法非常有益,被其他大公司采用,并随着时间的推移,得到加强和补充,形成了一个职业领域,与今天的DevOps有许多共同的特征,但有一些重要的区别。虽然两者都存在于开发和运营中间,但SRE更注重于自动化。事实上,谷歌曾经将工程师的目的描述为:"以自动化的方式摆脱工作"。

不同的组织以不同的方式进行SRE,并可能将其称为生产工程或基础设施工程。不管它的标签是什么,在一天结束的时候,工程师的工作是成为一个团队成员,不断努力提高网站的可靠性,使用事件管理KPI(关键绩效指标),编写代码,建立服务,并使人工流程自动化。由于网站一天24小时都在运行,SRE经常随叫随到,在需要时随时作出反应。 

职业生涯的回报
  • 在工作中对项目进行大局观
  • 作为团队之间的重要桥梁 
  • 改善流程,帮助提高组织利润
  • 慷慨的经济补偿
内幕消息
工作职责

工作时间表

SRE是一个报酬丰厚的职业领域,所以希望通过全职工作来获得这些薪水正如ParkMyCloud所解释的那样,网站可靠性本质上等同于业务可用性。换句话说,网站可靠性工程师有责任尽量减少昂贵的停机时间。这可以转化为下班后的工作或待命,以快速响应问题。 


典型职责

  • 创建或改进与运营和支持有关的软件
  • 优化和自动化流程
  • 确保发布工程的一致性做法
  • 解决并尽量减少支持升级问题 
  • 捕捉和记录新学的信息,供以后参考,例如通过创建运行簿。防止 "孤岛 "或囤积可共享的知识
  • 故障排除问题
  • 进行事件审查(也称为事后分析、回顾性分析或根本原因分析),以确定问题发生的原因,而不推诿责任。 

额外责任

  • 随叫随到地处理故障和其他事件响应问题
  • 确保遵守组织规程 
  • 创建行动项目清单,在软件开发生命周期内解决问题并减轻未来的类似问题。
工作中需要的技能

软技能
 

  • 有能力促进团队之间的合作
  • 解决分析性问题
  • 注重细节
  • 客户服务 
  • 同理心
  • 灵活性
  • 以目标为中心
  • 高度的组织能力;良好的时间管理能力
  • 调查性和好奇心强
  • 领导和管理技能
  • 客观性
  • 以过程为导向
  • 质量保证的心态
  • 强大的沟通能力

技术技能

SRE需要具备与以下方面有关的若干技能。

  • 建立自动化工具
  • 建设配置语言
  • 编译器
  • 数据库
  • 分布式系统设计
  • 与系统管理、开发、配置管理、集成测试相关的领域知识
  • 一般的源代码管理
  • 安装人员
  • 联网
  • 操作系统
  • 包装管理人
  • 安全问题
  • 软件工程
不同类型的组织
  • 计算机系统设计机构
  • 公司/企业
  • 政府/军事机构
  • 医疗保健 
  • 高等教育机构
  • 媒体和娱乐
期望与牺牲

如果一个组织有一个或多个网站非常重要,需要一个网站可靠性工程师,那么期望值就会很高。根据Netguru的说法,雇用SRE的四个主要原因是最大限度地减少停机时间,预测和减轻风险,实现更快的发展,以及通过这些和其他实施的流程来节省资金。显然,网站可靠性工程师的工作很充实,在他们努力应付工作量的同时,他们还必须保持对IT世界变化的领先。

当问题发生时,工作时间可能会很长,更不用说全员轮换了......这意味着即使你不在,你在技术上还是在工作。事件响应时间可能很短,而且每个雇主在补偿下班后的工作方面都不一样。有些人可能会给予带薪休假,有些人可能会给予额外的工资,有些人可能会提供一个衷心的 "非常感谢",而没有其他。 

当前趋势

对于许多成长中的组织来说,SRE仍然是一个相对较新的概念。因此,一个趋势是,企业仍在试图弄清楚如何最好地管理它。推动网站可靠性工程的一个主要因素是事件解决,这表明企业只是厌倦了救火,想更好地处理这些事件。

当然,这也减轻了管理层的压力,而把压力放在了SRE身上。这反过来又要求雇主想办法让这些压力过大的工人保持健康和良好的状态,以便劳动力能够以最高效率运作。有些公司在这方面做得比其他公司好,但趋势是认识到照顾忙碌的工人的价值,因为他们正在照顾业务。

从事这一职业的人在年轻时喜欢做什么样的事情...

网站可靠性工程师 "这个名字给了我们一些关于在这个领域工作的人的线索。他们喜欢在网站上工作,这是大多数SRE在年轻时培养的兴趣。他们负责确保网站是 "可靠的",也就是说,在应该工作的时候,一切都能正常工作。因此,工作人员本身应该是可靠的,这也是一个人早年经常磨练的另一个特点。

这样的人喜欢守时和准备,而且很可能在学业上表现良好。事实上,成为任何类型的工程师通常需要很强的学术能力,当然,特别是在数学和科学方面。但是,这个领域的一个有趣的事情是,有许多软技能在起作用。

一个SRE需要是一个人,一个能与团队合作的人,并且能够促进这些团队之间的合作。因此,他们可能在学校里担任过领导职务,或者仅仅是有很多兄弟姐妹要与之抗衡!SRE是效率专家,被训练成通过研究问题和确定基于其研究的解决方案来找到使事情变得更好的方法。这需要一种创造性而又分析性的思维方式,就像大脑的两个半球都在协同工作一样。有可能许多SRE都是双刃剑,或者擅长演奏乐器。 

需要的教育和培训
  • 网站可靠性工程师需要有学士学位,最好是计算机科学或相关领域的学位
  • 成为SRE并没有一个固定的路径。一些工人通过实习进入;另一些人可能参加训练营,然后在做其他IT工作时发展技能,同时自己练习其他技能。
    • 充足的工作经验是大多数雇主的关键要求(许多SRE员工首先在DevOps、sysadmin、或作为开发人员或软件工程师。)
  • 熟悉Java、Python、Ruby或C++,以及Linux、Kubernetes和MySQL的课程
  • 培养英语、写作、口语、团队合作和领导力等软技能的课程
  • 可选的认证包括。
    • 美国质量协会的可靠性工程师认证
    • DevOps研究所的SRE基础认证 
    • CompTIA的Linux+认证
  • 通过参加以下课程自学。
    • edX - DevOps和网站可靠性工程简介
    • Lynda(来自LinkedIn)--DevOps基础。网站可靠性工程
    • Udemy - 可靠性工程简介
    • Coursera - 网站可靠性工程。测量和管理可靠性
      • 注意,同样的课程也在Pluralsight提供。
在一个项目中需要注意的事项
  • 要成为一名成功的网站可靠性工程师,你需要知道的很多东西都可以在你的大学课程之外学到。
  • 理想情况下,寻找在上述领域提供课程的项目
  • 阅读教师简介,看看他们的专业领域和背景是什么。
  • 有哪些类型的学生俱乐部和组织?许多软技能和技术技能是通过充分的同龄人互动最有效的学习。
  • 确保学校得到认可
  • 寻找那些公布毕业后工作统计数据并有可靠记录的项目
  • 权衡报名参加在线课程的利弊。校内参与对培养软技能非常有益,所以有时混合课程是有益的
计划列表

美国新闻与世界报道》的最佳计算机科学课程可以帮助你开始学习,但不要只依赖一个排名。你不想错过好的机会,所以我们建议考虑诸如Great Value College's 50 Great Affordable Colleges for Computer Science and Engineering for 2020或Best Value School's Top 25 Computer Science Programs With the Best Return on Investment等列表。

大学可能会变得贵得离谱,但请记住,许多雇主是非常实际的。他们可能对你的硬技术技能更感兴趣,而不是你从哪个学校毕业。换句话说,仅仅拥有昂贵的私立大学的学位并不能保证在这一行中找到工作。专注于学习培养技能所需的具体课程,并尽可能多地获得实践经验。 

高中和大学里的事情
  • 如前所述,成为SRE的道路并不单一,所以要规划出几个选项
  • 看一下你想工作的公司的招聘启事。注意所需的工作和学术经验,然后逆向设计一条职业道路来达到目的。
  • 在高中阶段,通过选修尽可能多的IT选修课打下坚实的基础
  • 尽可能多地进行实践技能练习!参加与上述教育和培训项目有关的课程
  • 不要忘记在写作上下功夫。技术写作很重要,但你也需要将复杂的主题翻译成通俗易懂的术语。
  • SRE需要良好的团队合作和领导技能。这些往往是被忽视的特质,你以后会被期望拥有这些特质,所以要在早期寻找方法来发展这些特质。
  • 没有什么比拥有一位经验丰富的导师更重要的了,所以要向校友或教员征求意见。 
  • 教导他人。教学促进了双方的新的学习经验
  • 阅读并加入Quora、Reddit、Dev.to和其他网站上的讨论
  • 当你的技能足够好时,在Upwork上获得一些有偿经验
  • 在Indeed上寻找实习机会,或者询问你的大学课程是否有机会。
  • 成为IT相关俱乐部的领导者,并建立一个庞大的同行和同事网络!
典型线路图
网站可靠性 Gladeo 路线图
如何找到你的第一份工作
  • 把话说出去!现在大多数工作都是通过网络找到的
  • 参加TripleByte DevOps筛选测试。如果你通过了,你将获得他们网络中的雇主的面试机会。
  • 在Indeed、Monster、USAJobs、ZipRecruiter、LinkedIn和Glassdoor上寻找职位空缺。
  • 找出雇主所寻找的东西!Usenix有一个可下载的.pdf文件,其中列出了关于雇用SRE的内部提示
  • 一些雇主在内部培训他们的SRE,所以你可能想从一个工作开始,但有计划地在公司内部晋升。
  • 获得一个实习机会。他们并不总是报酬丰厚,但你会得到你的脚,而且他们可以导致全职工作。
  • 招聘会有多大作用,目前还没有定论,但特定行业的招聘会肯定能让你接触到一些机会,并提供一个与工人交谈的机会。
  • 让你的简历有条不紊。Job Hero有一些很棒的网站可靠性工程师的简历模板,可以从中窃取灵感。
  • 请一个专业的简历作家(或编辑)来为你的文件打分,使其成为最好的简历。但请记住,要根据你所申请的具体工作来定制每份简历。
  • 研究GitHub庞大的资源数据库和面试问题
如何爬梯子
  • 这在很大程度上取决于组织的规模。一些公司从内部提拔;其他公司可能需要外部候选人。应尽早与你的主管讨论晋升机会。
  • 要积极主动。培训自己,参加课程,不断学习。当有一个新的技术趋势时,找出你能找到的关于它的一切,成为一个主题专家。
  • 表现出对公司的忠诚,并成为值得信赖的、有价值的资产,以增加责任。表现出你已经准备好晋升的方式
  • 永远记住软技能。即使是技术能力最强的员工,如果不能很好地与他人相处,也很难升职。
  • 做一个老板。展示你的能力和领导潜力。一个SRE必须能够以合作但果断(必要时,坚定)的方式指导他人
  • 证明你是可靠的。要守时,如果你是待命的,要迅速对事件作出反应,勤奋工作,并想办法减少未来的类似问题。 
推荐资源

网站

  • 高级Bash脚本 
  • 令人敬畏的蟒蛇 
  • Beej的网络编程指南 
  • 指挥挑战 
  • 网络王牌 
  • 开发计划署训练营 
  • 拓展活动日
  • 计算机专家伊莱 
  • 指南针
  • Git沉浸法 
  • SQL入门。查询和管理数据
  • 卡塔克达
  • 麻省理工学院的操作系统工程
  • 蒙哥马利大学 
  • 行动学校
  • 在电线上 
  • 木偶学习 
  • SQLZOO 
  • SREcon 
  • SRE周刊
  • 系统管理员》剧照 
  • 信息安全培训材料的大博客文章
  • 极客的事
  • 谷歌SRE书
  • 亚马逊网络服务开放指南 
  • 系统设计入门 
  • Unix 工作台 
  • Unix工具箱 

书籍

B计划

网站可靠性工程可以是一个令人激动的职业领域,有大量的责任。然而,闯入的道路并不总是一帆风顺的。许多人从其他领域开始,有时他们最终会留在这些领域。一些 "B计划 "的工作选择包括:。

  • 后端开发员
  • 计算机和信息系统经理
  • 计算机程序员
  • 计算机支持专家
  • 计算机系统分析员
  • 数据库管理员
  • 流程管理(DevOps
  • 前端开发员
  • 全栈式开发人员
  • 信息安全分析师

新闻联播

在线课程和工具