如何成为站点可靠性工程师?
1. 什么是站点可靠性工程师?
过去,“可靠性工程师”指的是一个更开放的职位,无论产品的类型如何,都负责监督其创建过程中涉及的系统和流程。
随着21世纪初计算机技术的飞速发展,相关的日常任务量也随之增加,这催生了可靠性工程领域一个全新的职业:站点可靠性工程师。该职位源于对计算机网络、网站和软件开发流程的管理。
与DevOps工程师类似,两者都管理当前运营,站点可靠性工程师还创建软件以增强用户体验,同时对大部分自动化系统采取更深入的质量保证方法。站点可靠性工程以此作为信息技术和软件开发之间的桥梁。
2. 站点可靠性工程师的角色是什么?
根据组织的不同,站点可靠性工程师可能与各个技术部门合作,有时作为程序员,有时更像系统分析师。鉴于这种交叉性,站点可靠性工程师的一些典型职责包括:
构建软件以简化(或自动化)日常任务
站点可靠性工程的主要目标是尽可能多地自动化人工劳动。因此,SRE开发、维护和升级软件,以确保IT部门高效运行,并将人为错误的可能性降到最低。
IT支持服务的实施和文档化
SRE不仅响应在解决系统问题时出现的求助电话,而且还记录遇到的问题、解决方案和发现的任何最佳实践。SRE的目标是识别有效的流程、需要改进的流程以及可能需要关注的任何其他事项,以便进一步简化流程。
识别和解决支持升级问题
站点可靠性工程师精通IT问题及其解决方案,这使他们能够处理复杂问题,并尝试避免将来出现新的问题。
采取行动解决事故报告后
同样,站点可靠性工程师不仅解决问题,而且还会回到问题的结果上来。他们采用整体的调试方法,获取可用于进一步自动化流程的数据。
与软件开发人员合作
除了与软件开发人员紧密合作以确保其他性能因素(如安全性和可维护性)外,站点可靠性工程师还专注于效率和解决方案。
3. 你正在考虑从事站点可靠性工程师的工作吗?
一名高效的站点可靠性工程师组织良好,思维系统化,并具备故障排除能力。站点可靠性工程师的主要目标是使系统尽可能自主运行。他们是系统管理员和DevOps工程师的混合体。
这项工作也高度关注技术。如果你想在这个职业中获得最大的成功机会,你通常应该对编程和高等数学没有问题。
站点可靠性工程师通常是那些既对了解软件如何工作感兴趣,又对考虑它如何更有效地工作感兴趣的人。如果你曾考虑过攻读计算机科学或编程学位,那么你可能已经在SRE的道路上了。
4. 作为SRE成功所需的技能集
开发和编码知识 - 这些技能对于自动化操作和与技术交互至关重要。
操作系统理解 - SRE工程师必须大规模地与服务器协同工作,如果你没有强大的操作系统背景,这可能会很困难。
持续集成和持续交付 (CI/CD) 不仅DevOps开发人员使用这些流程。SRE工程师应该能够从头开始创建CI/CD管道。
如何实施版本控制工具 - 在团队中工作时,尤其是在编码时,了解代码版本控制至关重要。因此,如果你想成为一名站点可靠性工程师,你必须将精益版本控制系统添加到你的技能集中。
如何使用监控工具 - 对于SRE工程师来说,监控工具是救星。如果不使用监控工具,就无法跟踪系统性能和问题。
数据库知识 - 为了让工程师理解数据模型是什么,为什么数据模型很重要,以及数据模型应该如何影响你的数据库选择和服务设计,你必须具备数据库的工作知识。
“云原生”应用程序 - 扎实地理解这些程序可以帮助你更快地完成工作。SRE工程师需要熟悉像Docker和Kubernetes这样的容器应用程序。
分布式计算 - 因为SRE工程师必须使用大型分布式系统,所以他们必须了解分布式计算是如何工作的,并掌握微服务的原理。
通过沟通一起工作 - 作为一名SRE工程师,你必须与各种利益相关者进行互动和沟通,包括与你一起从事同一项目的软件工程师、首席执行官、首席技术官或你的管理层。还必须报告可能发生的任何重大事件或可能影响应用程序的事件。
结论
无论是正在考虑从事SRE工作的软件工程师,还是想要开始SRE职业生涯的新人。SRE是一个非常年轻的领域,它在今天不断发展。总的来说,如果你喜欢使用分布式系统并为工程师创建可靠的平台,那么SRE可能适合你。大多数SRE问题都是开放式的,需要不断朝着正确的方向前进。有时你可能会连续几天甚至几周都不写一行代码。你应该能够接受这一点。在我的SRE小冒险中,还有很多我不知道的事情。但我渴望看到未来会发生什么。