为什么有SRE可靠性工程师,云原生时代的SRE

为什么要进行站点可靠性工程

在技术世界中,风险从未像现在这样高。迁移到云和微服务以最大程度地提高灵活性已被数字破坏者和前所未有的竞争威胁所取代。随着分布式系统变得越来越复杂,“未知未知数”的规模不断增加。最重要的是,客户的期望很高。

停机造成的损失是灾难性的,如果客户不能及时满足他们的需求,他们就会大跌眼镜。根据Gartner的数据,平均停机时间为每小时300,000美元。对于某些公司来说,这个数字要高得多。例如,亚马逊在2018年Prime Day停运期间损失了大约9000万美元,并且停运仅持续了75分钟。

组织需要优先考虑可靠性,以便在不损害客户体验的强大基础之上尽快进行创新。随着越来越多的企业转向具有高可靠性要求的分布式系统,这将变得更加关键。那就是站点可靠性工程(SRE)出现的地方。

SRE功能正在快速增长(职位列表同比增长30-70%),但是市场上没有足够的熟练人才来弥补。换句话说,重要的是要了解如何不仅可以雇用SRE,还可以发展现有组织以采用卓越生产所需的实践和思维方式。由于要租用的SRE短缺,您该怎么做才能确保服务的可靠性?要回答这个问题,您需要对SRE是什么有更深入的了解。

什么是SRE?

SRE是Google于2003年首次提出的一种做法,旨在创建足够可靠的系统和服务以满足客户的期望。从那以后,许多大型组织(如LinkedIn和Netflix)都采用了SRE最佳做法。近年来,SRE已被全球许多组织广泛采用,其目标是考虑到客户期望成倍增长以及系统复杂性,从而牢记可靠性和弹性。

SRE基于客户至上的心态。这意味着,即使使用该服务的客户是内部用户,SRE的努力也都与客户满意度息息相关。每个决定都应提高客户满意度。团队共同努力,确定哪些因素和经验会影响客户的满意度,进行衡量,设定目标,并将可靠性要求与在不断竞争的数字环境中保持生存所需的创新速度保持平衡。

为了实现这一崇高目标,SRE和采用SRE最佳实践的团队会参考SRE的几个关键原则。根据Google的说法,这些包括:

确保长期专注于工程
在不违反服务水平目标(SLO)的情况下追求最大变化速度
监视,包括警报,票证和记录
紧急应变
更换管理层
需求预测和容量规划
供应,以及
效率与绩效
根据Forrester的说法,46%的原则可以直接应用到企业中的大多数软件团队,但是其余的则需要自定义,否则对于绝大多数组织来说都是毫无意义的。要问自己的重要问题是这些原则如何与您已经在做的事情相适应,以及您的团队如何提高。

了解SRE如何适合您的DevOps实践

将SRE视为使DevOps哲学焕发生命的实践。DevOps和SRE的核心原理几乎相同。根据Google在SRE上的Coursera课程,“ SRE类实现DevOps”,五种DevOps原则如下:

减少组织孤岛:SRE通过在开发人员和生产团队之间共享所有权和统一工具来提供帮助。

像往常一样接受失败:无耻的事后验尸是SRE的最佳做法,可确保将所有事件都用作学习机会。SRE还通过SLO和错误预算为故障创造了安全的空间和护栏。

实施渐进式更改:在允许所有用户与新功能进行交互之前,通过将推广分发给一小部分客户来实现。较小的更改更容易且更安全地进行剖析和迭代。

利用工具和自动化:SRE通过测量劳动和创建自动化来执行重复性任务而无需人工干预,以消除劳动。这样,人类可以专注于更高价值的工作。

衡量一切:SRE专门致力于衡量工作和可靠性,以确保客户和软件团队都对服务感到满意。

定义了这些通用原则后,很容易看到SRE和DevOps如何很好地结合在一起,而SRE编纂实践使实现DevOps的承诺变得更加容易。您可以说SRE是DevOps的人为方面,DevOps是一种文化构建功能,可以将运行系统的人员铭记在心。

人性化的系统方法

作为一种实践,弹性工程从整体上着眼于系统,不仅要考虑基础架构,还要考虑人员,过程和文化因素。如果不采用SRE背后的文化和思维方式,您将仅拥有没有统一价值的新流程,就可以保持主动性。关注于人类对系统的态度需要重新评估您的组织对三项关键事情的态度。

随叫随到和全方位服务的所有权惯例
呼叫的概念在SRE中很重要,原因有几个。它建立了明确的所有权,以确保立即解决软件问题,并固有地激励开发人员发布性能更高的代码。但是,尽管现在拨打电话是一种相当普遍的做法,但建立健康,平衡的流程对于防止倦怠至关重要。

没有人可以24/7全天候待命,尤其是在待命期间发生的事件严重干扰工程师的个人生活时。人们需要不间断的工作时间以达到最佳状态,因此应仔细监控随叫随到的职责。如果某人每天晚上2点醒来整整一个月,则说明有问题;这简直是​​不可持续的。另外,应该由一个以上的人来负担。应该授权整个开发团队随时待命,以便将责任变成共同的责任。这也激励开发人员提供更好的代码,以避免在凌晨2点醒来。

SRE最佳实践鼓励建立更好的主动系统,并建立可靠的反应系统。积极主动意味着建立一个不断学习和改进的社区。当您的工程师做好充分的准备并从先前的事件中吸取教训时,再次发生相同的错误的可能性就较小。随着SRE实践的成熟,这将减少发生的事件数量。

从被动的角度来看,更好的事件管理做法可以简化事件发生期间的沟通,并为将事件视为重要的学习机会而将事件视为“计划外的投资”提供基础。因此,事后调查为工程师提供了一个地方,可以在发生事故的根本原因时规避它们。SRE为持有寻呼机的人提供了更多代理权。

保持倦怠

持续进行消防,尤其是在严格的通话时间安排下,可能会使工程师感到筋疲力尽。随着时间的推移,精疲力尽会导致高离职率,这意味着高级工程师将需要在增加新员工的同时增加额外的空余。这只会增加工作倦怠,导致不满意的工程师陷入恶性循环,他们缺乏思考改进的能力,而新员工却无从下手。

在这种情况下,SRE方法将鼓励提高对工程时间,通话时间和重复事件的可见性。这些问题中的每一个都直接导致工作倦怠,但是许多组织并未对其进行跟踪。通过了解哪些工程师在长时间内花费了异常高的时间,团队负责人可以建议休假时间以抑制职业倦怠。知道上个月每个周末都有谁在召唤,团队可以更好地管理轮换,让每个人都有休息时间。监视重复事件和类似类别的事件可以洞悉整个工程时间内正在燃烧的东西,以及以前的验尸是否发现了改进之处或未采取后续措施。这些问题应立即解决,以使团队摆脱消防,

庆祝失败

将会发生故障,发生事件并且违反SLO。这些事情可能很难面对,但是采用SRE的一部分是要承认它们是规范。系统是人为造的,人是不完美的。重要的是从这些失败中学习并庆祝增长的机会。

培育这种文化的一种方法是优先考虑工作场所的心理安全。安全的力量非常明显,但常常被忽视。像吉恩·金(Gene Kim)这样的行业思想领袖一直在提高感到失败的安全感的重要性。他在小说《独角兽计划》中谈到了心理上的不安全感。主角马辛(Maxine)已从一支职能强大的团队中分流到凤凰城(Project Phoenix),那里的错误可被解雇。吉恩写道:“她(Maxine)看到了一种恐惧文化所产生的腐蚀作用,在这种情况下,经常会惩处错误并开除替罪羊。惩罚失败和“***信使”只会使人们掩饰自己的错误,最终,所有对创新的渴望都被彻底扑灭了。”

如果存在责备,则无法充分利用团队和系统。无罪是SRE的核心。要完全采用这种做法,您需要承认人不是失败的根源。每个团队成员只是利用现有的知识来尽力而为,做出他们认为正确的决定并符合组织的最大利益。惩罚或责备消除了尝试,修复和不断学习的欲望。

恐惧是创新的杀手,但失败是创新的灵感。在组织内部建立安全性和信任是完全实现和释放团队潜力的关键。

立即开始您的SRE旅程

任何组织都可以采用SRE最佳实践,并且可以以很小的增量开始。您将要做的最重要的改变将是文化上的改变。由于组织是由人组成的,因此只要组织致力于员工的成长心态,任何组织都可以促进不断的学习,无罪的文化和心理安全。这些文化因素到位后,实施扩展这种卓越文化的实践,流程和工具将变得更加容易。

猜你喜欢

转载自blog.51cto.com/14143894/2530177