2018 年 1 月,数字体验监控公司 Catchpoint 对 416 位职位或职责为站点可靠性工程师 (SRE) 的专业人士进行了一项调查。该调查的目的是为了解成为一名 SRE 的真正含义,考察站点可靠性工程师所在组织的类型、技能和文化。
调查显示,尽管不同组织之间甚至组织内部对 SRE 的定义存在巨大差异,但也存在相似之处。正如一位受访者所说,了解担任 SRE 角色时的期望可以避免日后出现许多麻烦:
“人们经常给 SRE ‘贴标签’,并试图定义一个特定于开发过程之外的运营角色,而不是认识到他们与 DBA、后端开发人员、前端开发人员、UI 开发人员等一样,对开发过程来说是内在的和重要的——他们共同承担构建和运行可扩展、运行良好的服务的责任。”——Gary Colman,LinkedIn 高级工程经理
如果您希望在您的组织中组建 SRE 团队,以下是一些关键的考虑因素。

关注思想和技能的多样性
阅读典型的 SRE 职位描述,您首先看到的资质之一是计算机科学学位。然而,我们的调查发现,39% 的 SRE 不符合这一标准。事实上,20% 的受访者没有学位,19% 的受访者学习的不是计算机科学。学习领域包括哲学、政治学、戏剧、动物学和商业。将搜索范围仅限于拥有计算机科学学位的候选人将导致团队多样性降低,并可能排除大量技术娴熟的 SRE。
“优秀的 SRE 能够批判性地检查系统,并在向系统提问时以此为指导。技术技能让您能够提出问题,但它并不能帮助您提出正确的问题来找到问题的原因。”——Jamie Wilkinson,Google SRE
2017 年 7 月《哈佛商业评论》上的一篇文章指出,需要全面的学习体验来帮助人们培养提出正确问题以及理解和回应人类需求的能力。如果您没有提出正确的问题,您将无法解决正确的问题。
SRE 需要能够有效地解决问题、快速学习和快速做出决策。以下是 SRE 的 5 项最重要的非技术技能,可以增强这些能力:
- 解决问题
- 团队合作
- 压力下的镇定
- 书面沟通
- 口头沟通
能够有效地解决问题需要与他人良好合作的能力。不应期望 SRE 知道所有答案;相反,他们应该知道向团队或组织内的谁寻求帮助以及如何与他们沟通。寻找来自不同背景和专业的 SRE。
明确期望和职责
没有两个 SRE 或 SRE 团队是相同的;该角色包含各种技能和职责。Google 的 SRE 团队可能已经写了一本书关于站点可靠性工程,但每家公司都有其独特的需求。该角色的重要性需要在整个组织内进行沟通,而不仅仅是在工程和运营部门。只有不到 50% 的 SRE 认为他们的角色在工程部门内部得到了很好的沟通,而当考虑到更大的组织时,这个数字下降到 44%。这导致 SRE 感到自己被低估和不被尊重。
规模较小的组织可能需要 SRE 承担额外的职责,这些职责在规模较大的组织中属于其他部门,而规模较大的组织的 SRE 更有可能为产品路线图做出贡献并开发新产品功能。
坦诚地说明工作节奏。大多数 SRE 在每天进行多次代码部署的组织中工作。这种快节奏并不意味着可以忽视技术文档和操作手册的维护。SRE 需要花时间记录他们进行的过程,这需要强大的书面沟通技巧。
您是要求 SRE 构建自己的工具,还是提供开源和商业解决方案工具箱,这取决于您公司的规模。规模较小的组织通常更关注开源和供应商解决方案,而许多大型企业则在内部构建工具以满足其需求。
SRE != DevOps
组建 SRE 团队并不会自动使您成为 DevOps。DevOps 不仅仅是工具集或员工职称。站点可靠性工程师致力于自动化和提高支持服务的可靠性,这是一种采用 DevOps 的方式。DevOps 更多的是指组织的文化和使用的流程。Gene Kim 将 DevOps 方式定义为包括流动、反馈以及持续改进和学习的过程。即使您正在自动化和衡量任务并共享信息,如果文化不包括收集反馈和学习,那也不是 DevOps。不应将 SRE 角色视为解决破碎文化的灵丹妙药;必须首先修复文化。
根据 SRE 调查的结果,以下是一些关键要素,无论您的组织规模大小,都应包含在 SRE 职位描述中:
资质
- 学士学位
- 2 年以上运营或软件工程角色经验
- 出色的口头和书面沟通技巧
- 强大的解决问题能力
- 对技术以及帮助客户和团队成员充满热情
必备技能
- 精通基于云的持续部署软件开发生命周期
- 掌握基础设施自动化技术
- 渴望学习
评论已关闭。