网站可靠性工程现状报告 2022版 本调查报告由Dynatrace提供 前言 随着组织寻求驾驭云自动化以加快数字化转型,网站可靠性工程(SRE)已经走上了中央舞台。大多数组织在采用网站可靠性工程时仍处于相对不成熟的阶段,网站可靠性工程是一个经常被误解的专业。 首先,网站可靠性工程涉及创新、教育及赋能。它推动开发团队之间的一致性并为共同合作提供支持以确定最佳实践,使团队能够跨专业进行规模化的自动化处理,以符合组织的业务、安全、质量及性能目标。 开发流程的自动化、服务水平目标(SLO)的配置,或者避免超出错误预算的修复和解决方法的制定,不能完全由一个团队负责。也不能只由一个团队来分析漏洞或者建立自行修复、深入应用和基础设施的可观测能力。如果所有这些工作都由一个团队完成,网站可靠性工程将成为又一个传统运维或安全职能。 网站可靠性工程正在演变为更具战略性的角色,侧重于为开发团队配备他们推动当今开发和创新所需的工具、数据及能力。网站可靠性工程还具备有利条件帮助组织应对各种新挑战,例如在云原生交付过程中的新技术、语言、平台及工具的发展,这些领域出现了复杂性大爆发。 目前,在云原生计算基金会(CNCF)生态体系中有1,000多种解决方案,数量多到任何单独的开发人员或团队都无法管理。因此,各种软件开发群体不断涌现,他们拥有零散的知识、工具及喜好。 这样就有可能对可观测能力、自动修复及漏洞管理采用某种标准方式,而这在整个开发生命周期中推进可靠性是不可或缺的。因此,为网站可靠性工程定义一条“金光大道”至关重要—开发团队可以采取的一组关键步骤—驾驭这些复杂性、实现他们的目标,无论他们使用什么样的工具。 涵盖开发安全运维生命周期的自助服务式可观测能力的可用性以及监测即代码方法至关重要,它们使得开发团队只需几次点击即可在其应用内建立反馈回路。这样,网站可靠性工程将率先由基础自动化阶段进入到客户体验和业务成效的智能调度阶段。通过自动修复云应用、迅速根据业务需要扩充,同时自动做到既可靠又安全,这将赋能开发团队以前所未有的速度推动转型。 本报告剖析了当前网站可靠性工程成熟度,识别出组织在错综复杂的云原生开发中正在应对的关键发展趋势和挑战。这份报告展示了来自世界各地组织的450个网站可靠性工程的汇总数据,获得了来自这些推动可靠性最佳实践的第一手经验。 我希望您能从这些内容中找到有价值的见解,帮助您定义自己的金光大道,让网站可靠性工程更上一层楼。 —BerndGreifeneder Dynatrace创始人兼首席技术官 网站可靠性工程现状—2022版 2 Contents 引言 执行概要4 第1章 网站可靠性工程的发展5 第2章 服务水平目标的角色16 第3章 网站可靠性工程成功的关键32 结束语44 方法论45 网站可靠性工程现状—2022版3 执行摘要 本报告基于对450个网站可靠性工程的全球调查,涵盖各种类型的行业,为网站可靠性工程(SRE)这门学科如何发展提供了绝无仅有的视角。本报告揭示了在哪些领域存在着需要克服的挑战,在数字化服务的可靠性、安全性及韧性成为商业成功的首要因素的世界里网站可靠性工程的未来面貌。 我们将深入探讨的一些主要调查结果包括: 网站可靠性工程日渐成熟,但成熟的速度还不够快 ·随着组织对网站可靠性工程的战略价值理解加深,网站可靠性工程师(SREs)越来越受到欢迎。但这些人供不应求,因此找到支持、促进其工作的方式至关重要。 ·网站可靠性工程实践日益成熟,由于实践者越来越多地参与属于生命周期初期的架构设计、软件开发及测试过程,这些实践正缓慢地“前移”。这些实践还促进了开发安全运维实践的普及,从而确保安全在开发生命周期的各个阶段成为重中之重,但这些趋势需要提速。 服务水平目标对于网站可靠性工程不可或缺,但难点在于充分发挥其全部潜能 ·尽管发展的重点放在衡量成功的服务水平目标(SLO)上,但几乎所有的网站可靠性工程师都表示,定义和制定这些服务水平目标是一个严峻挑战。但其中的大部分问题属于战术问题,有了正确的方法就很容易克服。 ·评估服务水平目标仍是一个混乱的过程,需要在整个组织内以更统一、更有效的方式去定义和实施,这是因为许多组织对于服务水平目标的归属仍不明确,将太多的难题都甩给了网站可靠性工程师。 为获得成功必须加倍努力减少网站可靠性工程实践的繁重工作 ·在网站可靠性工程实践中,自动化的应用越来越普遍,但效果有好也有坏。组织必须找到差异并运用战略和解决方案,以提高其网站可靠性工程师的生产率。 ·人工智能运维和一体化可观测能力解决方案对于将网站可靠性工程实践扩大到整个组织日益重要,但不能只是将它们作为现有工具链之上的一层。 网站可靠性工程现状—2022版4 第1章 网站可靠性工程的发展 网站可靠性工程处于接受曲线的早期阶段 网站可靠性工程势在必行,但组织之间存在着差距。组织需要将他们的方法转变为网站可靠性工程,因为只有五分之一(20%)的组织声称拥有了成熟的实践。 此外,88%的网站可靠性工程师表示,与三年前相比,现在更多的组织认可了他们对于商业成功的战略重要性。 网站可靠性工程现状—2022版5 第1章:网站可靠性工程的发展 目前您的组织处于网站可靠性工程(SRE)历程的哪一个阶段? 6%32%42%20% 不成熟 我们尚未正式实施网站可靠性工程,但尽量遵循网站可靠性工程原则 初级阶段 我们已在最近两年实施了网站可靠性工程实践,所以尚处于初级阶段 成熟中 我们已经实施网站可靠性工程实践两年以上,正在不断地推进我们的方法 高级阶段 我们已经实施网站可靠性工程实践五年以上,正在采用高级的网站可靠性工程原则 网站可靠性工程现状—2022版6 主题1 缩短平均修复时间一直高居网站可靠性工程任务单榜首 网站可靠性工程师始终致力于改进生产系统的可靠性,其中缩短平均修复时间(MTTR)是他们的首要任务。然而,大多数(60%)网站可靠性工程师发现,自己的大部分时间被构建和维护自动化代码消耗掉。尽管提高自动化程度是关键目标,但如果实现这一过程既艰难又费时,由自动化所带来的效率就会丧失殆尽。 其中大多数问题源于网站可靠性工程团队构建自动化开发运维工作流的方式。通常团队会按具体情况处理,因为他们的工具不是自动化过程自带的,不具备一切皆代码的能力。 因此,他们被迫在自己工具的最顶端构建一个自动化层。经过一段时间后,这就形成了一堆复杂的Web代码,愈发难以扩大到整个开发运维流程。毫无疑问,网站可靠性工程师发现,如果他们不找到一种更高效的长远方法,未来他们会消耗越来越多的时间。 这凸显出需要网站可靠性工程师与开发运维团队、开发人员及架构师共同合作,以确保软件不仅要满足业务需求,还要先天具有韧性、可做到自动化。这使团队能够轻松地将新的自动化功能与现有的工具和工作流进行整合,减少网站可靠性工程师的手工操作、改进工程实践。 第1章:网站可靠性工程的发展 网站可靠性工程最佳实践: 远离手工、临时的脚本,采用基于平台的解决方案,拥有最新的自动化技术和一切皆代码能力:支持从配置、测试到可观测能力、修复的整个生命周期。 88% 的网站可靠性工程师表示,与三年前相比,现在更多的组织理解了他 们对于商业成功的战略重要性。 网站可靠性工程现状—2022版7 以下哪项工作让您组织的网站可靠性工程师平均每周付出的时间最多? (所有的回答) 缩短平均修复时间 67% 构建、管理自动化代码 60% 确保快速发现并消除安全漏洞 58% 设计实验并运行测试以减少生产环境发生故障的风险 52% 影响架构设计决策以确保可靠性和可伸缩性 51% 确保系统在出现异常时可靠运行 48% 设计实验并运行测试以便根据用户负载扩容 48% 插装应用使其具备可观测性 43% 网站可靠性工程现状—2022版8 主题2 转变为由网站可靠性工程驱动的工程 超过半数(51%)的网站可靠性工程师表示,他们花费大量的时间去影响架构设计决策以提高可靠性。这意味着在向着网站可靠性工程驱动的工程迈进,为组织提高可靠性、韧性及安全性的工作提供支持。但还有很长的路要走。 大多数成熟的网站可靠性工程实践都有身经百战的开发人员,并且有许多经验教训。他们懂得用什么来构建系统,可以从单个用户扩容到一千,或者从一百万扩容到一千万。让这些开发人员参加新系统的设计过程,从一开始就能为架构师在设计中纳入可靠性提供意见。 Dev SRE Ops 网站可靠性工程现状—2022版9 网站可靠性工程的观点: “网站可靠性工程是一种文化转型,最终是要让软件运行得更好。到目前为止,我们发现的情况有时出人意料,比如需要便于存取的简单文档。 文档似乎与“网站可靠性工程”无关,但当你以知识为中心建立实践时,如果不将这些知识保存到某个地方,你就会遇到各种麻烦。” StephenTownshend,网站可靠性工程 网站可靠性工程现状—2022版10 主题3 安全是可靠性的核心支柱 网站可靠性工程在将开发安全运维扩大到整个组织方面也取得了进展,可以确保根据发现的漏洞迅速恢复系统。超过三分之二(68%)的网站可靠性工程师表示,随着组织不断采用第三方库用于云原生应用开发,他们希望自己今后在安全方面的角色变得更核心化。正如我们所看到的,鉴于2021年12月Log4j漏洞的发现,第三方代码库有可能包含重大的安全风险,而网站可靠性工程团队在确保迅速识别并消除此类缺陷、为组织提供保护上发挥着关键作用。 68% 的网站可靠性工程师表示,希望自己今后在安全方面的角色变得更核心化。 第1章:网站可靠性工程的发展 网站可靠性工程最佳实践 不要事后才想起可靠性和韧性。这足以证明应将网站可靠性工程原则纳入设计过程(即网站可靠性工程驱动的工程)。 网站可靠性工程现状—2022版11 第1章:网站可靠性工程的发展 主题4 网站可靠性工程师必须能够自由地实验 超过一半(52%)的网站可靠性工程师花费大量的时间设计实验、进行测试,以期降低生产环境发生故障的风险,但只有十分之一的网站可靠性工程师强调这是他们的首要任务。 鉴于实验对于网站可靠性工程师的重要性,团队仍需要想方设法确保他们能够腾出更多的时间去完成这些任务。为使网站可靠性工程师更加成熟、创造更大的战略商业价值,他们必须精简那些涉及密集手工操作的任务。 网站可靠性工程现状—2022版12 对网站可靠性工程师的期望和需求与日俱增,这使他们的时间日益捉襟见肘 以下哪项工作让您组织的网站可靠性工程师平均每周付出的时间最多? 23% 缩短平均修复时间 12% 影响架构设计决策以确保可靠性和可伸缩性 12% 构建、管理自动化代码 11% 设计实验并运行测试以减少生产环境发生故 障的风险 11% 确保快速发现并消除安全漏洞 10% 设计实验并运行测试以便根据用户 负载扩容 网站可靠性工程现状—2022版 13 10% 确保系统在出现异常时可靠运行 9% 插装应用使其具备可观测性 主题5 需要更多地准许网站可靠性工程师优先进行战略性工作 在您的IT组织中如何对待网站可靠性工程师的项目失败? 尽管这一条在网站可靠性工程师任务优先级列表中排名相对较低,但51%的网站可靠性工程师表示,组织鼓励他们去做实验,而且在四分之一(26%)的组织中即使项目失败也被视为正常。这再次证明,其他的压力有可能会分散网站可靠性工程师的精力,使得他们在实验上花费的时间无法达到自己的预期。因此,组织必须寻求新的战略和解决方案,以减少由网站可靠性工程团队执行战略价值较低的任务的需求。 组织负责人还需要培养一种文化,不仅能接受失败,而且理解“快速失败、经常失败”能提供最大的竞争优势。为实现这一点,他们需要将网站可靠性工程从把IT看作是成本中心的传统目标中解脱出来。 9% 14% 26% 鼓励网站可靠性工程师进行实验,理解许多项目将不会带来积极的结果 IT项目失败被视为“正常”,因为我们遵循