成为一名站点可靠性工程师意味着什么
什么是站点可靠性工程师?
我是如何成为一名 SRE 的
站点可靠性工程师做什么
展望未来:Kenna 的 SRE 路线图
为什么我喜欢成为一名 SRE
进一步阅读
人们经常问我作为站点可靠性工程师 (SRE) 做什么,所以我决定就此写一篇博客文章。
什么是站点可靠性工程师?
定义 SRE 团队的方式有很多种,因此,让我先从我们选择如何定义 Kenna 的 SRE 团队开始。
SRE 团队是一群开发人员,专注于使用软件来优化性能并确保我们所有系统的稳定性和可靠性。
在与我们的首席运营工程师沟通后,我们认定 SRE 是“开发人员+”。“加分”指的是除了编写代码之外,还具备一些额外的知识。对我来说,“加分”指的是我对 Elasticsearch 工作原理的全面理解。而对其他人来说,“加分”可能是能够无缝地使用 Ansible 之类的框架,或者对容器有深入的理解。“加分”几乎可以是任何与技术相关的、能够帮助 SRE 完成工作的知识。
我认为优秀 SRE 的另一个特质是能够洞察并理解整个系统的运作方式。理解系统的各个部分很容易,但能够退一步思考,从概念上理解所有部分如何协同工作才是成为 SRE 的关键。拥有高层次的理解能力使我们能够找出系统的薄弱环节并加以改进,从而确保整个系统的可靠性。
鉴于我们在 Kenna 对 SRE 的定义,我认为对于刚入行的人来说,在进入 SRE 岗位之前,先从全栈或后端开发人员做起至关重要。我相信,如果你最终决定成为一名 SRE,花一两年时间磨练你的开发技能,并接触各种软件工具,将会让你获得更大的成功。
我是如何成为一名 SRE 的
我最初入职时是一名全栈开发人员,从前端 JavaScript 到幕后后台工作,我都做过。2015 年加入 Kenna 担任软件工程师后,我继续从事这项工作。加入 Kenna 后不久,主要负责 Elasticsearch 集群的高级开发人员离开了。我把他的离开视为一个学习新知识的机会,甚至有可能拥有我们基础设施的一部分。我决定学习所有我能学到的 Elasticsearch 知识。我参加了 Elasticsearch 培训,并阅读了大量 Elasticsearch 文档。慢慢地,我在日常工作中接触到越来越多与 Elasticsearch 相关的故事。
随着时间的推移,我开始将重心转移到后端和 Elasticsearch 上。随着我重心的转移,Kenna 也不断发展壮大。2017 年秋季,我们的规模变得非常庞大,我们决定将核心开发团队拆分成多个团队。当时,我们从另一家公司聘请了一位 SRE。他入职后,我被问到是否愿意加入他,组建第一支 Kenna SRE 团队。由于我之前一直专注于我们核心数据存储之一 Elasticsearch 的可靠性和性能,所以这看起来非常合适。我答应了!
站点可靠性工程师做什么
SRE 团队成立之初,工作量非常大。Kenna 的平台发展迅猛,我们面临着一些真正的扩展问题。团队成立之初的主要工作是优化代码,使其能够处理我们收到的所有新数据。我们花了很多时间使用 Datadog 等监控工具,寻找代码中需要优化的慢查询或热点。如果您想了解更多关于我们在第一年所做的工作,请查看我的“缓存为王”演讲。在这次演讲中,我详细分析了我们对代码库进行的 5 项重大优化,这些优化带来了显著的性能提升。里面有一些非常漂亮的图表 😉
除了提高性能之外,在第一年,我们的团队还:
- 彻底改革了我们的整个监控框架(即将发布此文章!)
- 在我们的应用程序中添加了大量日志记录,并改进了我们的日志存储,使其更易于访问和搜索。
- 改进了我们的管理网站,随着更多支持工程师的加入,这一点至关重要
- 改进了访问控制。例如,设置了一个只读控制台,供工程师与生产部门交互时使用
- 更新了我们的持续集成(CI)工作流程以处理多个虚拟私有云环境
展望未来:Kenna 的 SRE 路线图
SRE 团队在 Kenna 已成立两年,取得了丰硕的成果。然而,随着 Kenna 的不断发展,我们仍有许多工作要做。我们的路线图目前包含以下项目。
- 将 Elasticsearch 升级到 6.x。我们上次的升级过程比较艰难,因此我们为这次升级制定了一些全面的测试计划。
- 定义服务水平目标。我们的客户现在很满意,但这在指标方面意味着什么?我们需要多快的搜索加载速度才能让客户满意?数据处理速度需要多快?我们的目标是回答这些问题。
- 管理所有新的虚拟私有云 (VPC) 环境。我们的许多大客户都希望拥有自己的虚拟私有云来运行 Kenna。这意味着我们拥有许多不同的环境。可以想象,处理所有这些环境并保持同步是一项挑战。随着今年 VPC 数量的增加,我的团队希望尽可能实现所有 VPC 之间的无缝协作。
- 实施负载测试框架。我们经常被问到,这个平台能承受多少负载?目前,我们的回答是🤷。如果能真正知道极限在哪里就好了。
随着 SRE 团队和 Kenna 的不断成长,我相信团队的角色和职责也会随之演变。我迫不及待地想看看一年后我们会取得怎样的进展😃
为什么我喜欢成为一名 SRE
我热爱我的工作!真的,我真的很喜欢。我喜欢做全栈开发者,也喜欢为客户交付大型项目,但我更喜欢做 SRE。以前,我一天的大部分时间都花在开发客户要求的功能上。现在,我的工作影响着整个平台和所有客户。我有能力在后台调整代码,加快所有客户(而不仅仅是部分客户)的数据处理速度。能够如此大规模地影响变更和改进,真是太棒了。
我对自己打造的产品也非常认真。得益于几年的客户服务轮岗经历,我对客户体验非常体贴入微。能够专注于为客户打造更稳定、更可靠的平台,对我来说是梦想成真。
如果您喜欢后端工作,并希望更接近系统的性能、可靠性和可扩展性,那么 SRE 角色可能非常适合您!
进一步阅读
如果您有兴趣了解有关 SRE 的更多信息,我强烈建议您查看Google 的 SRE 书籍!
注意:站点可靠性工程师的定义可能在不同地区略有不同。如果您申请的是站点可靠性工程师职位,请务必在面试时提出正确的问题,以确保职位职责符合您的期望。
文章来源:https://dev.to/molly/what-it-means-to-be-a-site-reliability-engineer-32ki