目录
很容易从高层次上谈论站点可靠性工程师的工作:他们确保 IT 系统达到可用性和性能要求。但是,SRE 究竟需要哪些技能来完成他们的工作呢?
这是一个更复杂的问题。
为了回答这个问题,让我们看看现代 SRE(或有抱负的 SRE)应该掌握的前九项站点可靠性工程师技能。
点击此处即可免费领取DevOps资料~
尽管 SRE 的技能可能因管理的系统类型和面临的主要可靠性挑战类型而因团队而异,但几乎所有 SRE 都需要一套核心标准技能,以使他们能够理解和管理复杂、分布式的类型他们在今天的典型组织中必须支持的系统。
01.SRE的网络专业知识
网络在连接现代分布式环境方面发挥着关键作用。因此,当出现问题时,它通常是罪魁祸首——例如,当网络问题导致其整个全球基础设施瘫痪时,Facebook 就吸取了教训。
像这样的情况是 SRE 应该掌握网络概念的原因。即使他们的组织还雇用了网络工程师,站点可靠性工程师也需要对网络本身有深入的了解,以了解网络何时是事件的根本原因以及如何有效地解决网络引起的问题。
02.Linux 和 Unix
如果你有 Windows 背景,但你想成为 SRE,那就没有办法了:除了 Windows,你还需要学习如何使用 Linux 和其他类 Unix 系统。
这是因为,即使在不严重依赖 Linux 服务器的组织中,您也可能会发现 Linux 和 Unix 概念已深深嵌入您必须使用的其他系统中。例如,大多数公共云管理工具都遵循 Linux CLI 工具的约定。像 Docker 和 Kubernetes 这样的系统也是如此,即使您在 Windows 环境中运行它们也是如此。
03.云计算
与 Linux 和网络一样,云计算是现代 SRE 不可缺少的另一类技能。
原因几乎不言自明:大约 90% 的企业都在使用云,如果不了解云架构、云网络、云数据存储、云可观测性等,就无法很好地管理云环境的可靠性在。
04.CI / CD Pipelines
SRE 通常不会帮助开发软件,但他们仍然需要深入了解软件是如何编写和部署的——在今天的大多数组织中,这是一个通过 CI/CD 管道发生的过程。
如果您不知道如何解决应用程序源代码或部署过程中出现的可靠性问题,就很难设计可靠性。了解 CI/CD 流程的工作原理以及驱动它们的工具是当今几乎每个 SRE 的关键。
05.质量保证和软件测试自动化
SRE 通常也无助于测试软件预部署。该任务落在开发人员或质量保证工程师身上。
尽管如此,了解软件是如何被测试的——以及如何使用测试自动化来加速测试和扩大测试覆盖率——是一项至关重要的 SRE 技能。毕竟,您的团队对软件的测试越彻底、越有效,您在部署前发现可靠性问题的机会就越大,因为这些问题更容易修复并且对业务构成的风险要低得多。
06.安全工程和响应
保护是 SRE 不“拥有”的另一个领域,但它们仍然需要大量技能。
事实上,良好的可靠性工程将安全作为优先事项,反之亦然。不了解安全基础知识的 SRE 面临实施可靠性解决方案的风险,这些解决方案从可靠性的角度来看是有效的,但不一定是安全的。
07.开发运维
虽然 SRE 不是 DevOps 工程师,但 SRE 和 DevOps 是密切相关的领域。如今,大多数组织的 SRE 都需要了解 DevOps 概念,并且在许多情况下,他们会与 DevOps 团队一起工作。
因此,计划将掌握 DevOps 技能作为站点可靠性工程师技能获取策略的一部分。
08.事件管理
SRE 要学习的最重要的一项技能可能是事件管理。尽管许多角色可能参与事件响应,但 SRE 通常会带头组织事件响应团队,与利益相关者沟通并制定尽快解决每个事件的最佳策略。
这意味着 SRE 应该知道事件响应角色的结构并理解事件响应概念。他们还应该熟悉事件响应平台,这些平台可以自动执行确保快速、有效的事件解决所需的复杂流程。
09.管理事后分析
除了监督事件响应之外,SRE 还可能负责管理事后分析。知道如何进行事后分析——以及何时需要进行事后分析,以及何时使用“无可指责”的事后分析方法是有意义的——是一项必不可少的 SRE 技能。
SRE 技能列表当然可以继续。
以上只是 SRE 在大多数现代环境中所需的最基本技能类型。但是,如果您刚刚开始成为 SRE 的旅程,那么上述九个技能领域是开始获取在 SRE 职业生涯中脱颖而出所需知识的好地方。