我们很容易泛泛而谈SRE(站点可靠性工程师)的工作内容:他们确保IT系统达到可用性和性能要求。

但是,SRE究竟需要哪些技能来完成他们的工作呢?这是个更复杂的问题。

为了回答这个问题,我们来看看现代SRE(或有志于SRE的人)应该掌握的九大站点可靠性工程师技能。尽管SRE技能可能因团队而异,这取决于所管理的系统类型和面临的主要可靠性挑战类型,但实际上所有SRE都需要一套核心标准技能,使他们能够理解和管理他们在当今典型组织中必须支持的复杂、分布式系统类型。

以下是9大首要的SRE技能分类。

一、SRE的网络专业知识

网络在连接现代分布式环境方面发挥着关键作用。因此,当出现问题时,它往往是罪魁祸首——例如,Facebook在一次网络问题导致其整个全球基础设施瘫痪时就吸取了这一教训。

这就是为什么SRE需要掌握网络概念的背景。尽管这些组织也雇佣了网络工程师,站点可靠性工程师也需要对网络本身有深刻理解,才能知道网络何时是事故的根本原因,以及如何有效地解决网络引起的问题。

二、Linux 和 Unix

如果你有Windows背景,但你想成为SRE,无法回避的是:除了Windows之外,你还需要学习使用Linux和其他类Unix系统。

这是因为,即使在不太依赖Linux服务器的组织中,你也可能会发现Linux和Unix的概念深深嵌入到你必须使用的其他系统中。例如,大多数公有云管理工具都遵循Linux CLI 工具的使用习惯。Docker和Kubernetes等系统也是如此,即使是运行在Windows环境中。

三、云计算

与Linux和网络一样,云计算是现代SRE离不开的另一项技能。

原因几乎不言自明:大约90%的企业使用云,如果不能理解云架构、云网络、云数据存储、云可观测性等,你就不能很好地管理云环境的可靠性。

四、CI/CD 流水线

SRE通常不会帮忙开发软件,但他们仍然需要深入理解软件是如何编写和部署的——在今天大多数的组织里,部署是通过CI/CD流水线实现的。

如果你不知道如何解决在应用程序源代码或部署过程中出现的可靠性问题,就很难设计可靠性。理解CI/CD流程是如何工作的,以及哪些工具驱动它们,这对今天几乎所有的SRE都是关键的技能。

五、质量保证和软件测试自动化

SRE通常也不会在部署前帮忙测试软件。这项任务落在开发人员和质量保证工程师身上。

尽管如此,理解软件是如何被测试的——以及如何使用测试自动化来加快测试和扩大测试覆盖率——是一项至关重要的SRE技能。毕竟,团队测试软件越彻底、越有效,就越有可能在部署前发现可靠性问题,因为此时这些问题更容易修复,对业务造成的风险也低得多。

六、安全工程和响应

安全是另一个SRE不“拥有”的领域,但他们仍然需要大量的技能。

事实上,良好的可靠性工程会把安全置为优先项,反之亦然。那些不了解安全基础的SRE有可能实施从可靠性角度来看有效,但不一定安全的可靠性解决方案。

七、DevOps

尽管SRE不是DevOps工程师,但SRE和DevOps是密切相关的领域。今天,大多数组织的SRE都被期望能理解DevOps概念,并在许多情况下与DevOps团队一起工作。

因此,将掌握DevOps技能作为你的站点可靠性工程师技能获取战略的一部分。

八、事故管理

也许SRE最需要学习的技能类型是事故管理。尽管许多角色都可能参与事故响应,但SRE通常带头组织事故响应团队,与干系人沟通,并为尽快解决每个事故设计最佳策略。

这意味着SRE应该知道事故响应角色的组成,并理解事故响应概念。他们还应该熟悉事故响应平台,这些平台能够自动化复杂流程以确保快速、有效地解决事故。

九、管理事后调查

除了监督事故响应,SRE可能还负责管理事后调查。知道如何进行事后调查——以及何时有必要进行事后调查,何时使用“无责”的调查方法——是一项基本的SRE技能。

SRE技能清单当然可以继续。以上只是SRE在大多数现代环境中需要的最基本的技能类型。但是,如果你刚刚踏上SRE旅程,上述九个技能领域是开始获取在SRE职业中出类拔萃所需知识的好地方。

作者:Quentin Rousseau,发表于2022年2月24日
原文链接:https://devops.com/top-nine-skills-for-sres-to-master/
译者:白银译者晓峰
一审:青铜译者吴迪
终审:白银译者高俊宁​
CategoryIT服务管理
Tags, ,

©2022 中国DevOps社区版权所有;本站内容许可 CC 4.0

关注社区: