共计 5315 个字符,预计需要花费 14 分钟才能阅读完成。
随着分布式、云原生成为支流的零碎架构设计计划,大规模分布式系统的稳定性保障能力越来越成为业界关注的重点。现在,混沌工程作为保障系统稳定性的利器,受到业界宽泛关注,中国信通院作为国内最早推动混沌工程标准化工作的单位,联结混沌工程实验室全体成员单位、社区、媒体独特发动国内首个混沌工程问卷调查,以期把握我国混沌工程的接收水平和特点。
2021 年 11 月 11 日,在混沌工程实验室主办的“混沌工程与零碎稳定性主题沙龙”上,中国信通院云大所副所长栗蔚深度解读了国内首个《中国混沌工程调查报告》。以下为报告具体内容。
本报告采纳在线考察加线下访谈的形式,共回收无效问卷 1016 份、访谈企业 17 家。报告的第一局部介绍考察背景,第二局部介绍我国混沌工程以后应用状况,第三局部是混沌工程致力于进步的零碎稳定性现状,第四局部聚焦混沌工程的倒退倡议。本报告以调查结果为根底,力争详实主观地反映混沌工程畛域利用现状与痛点需要,为宽广从业人员、专家学者和钻研机构提供真实可信的数据参考。
外围观点
1、国内软件系统稳定性有较大可晋升空间。
- 考察数据显示,近 20% 的受访用户所负责的产品可用性低于 2 个 9(意味着用户每个月要忍耐超过 7.3 小时的服务故障),超过 4 成产品的可用性低于 3 个 9(意味着用户每个月要忍耐超过 44 分钟的服务故障)。
- 故障产生之后的解决状况也差强人意:仅不到一半的故障均匀发现时长(MTTD)小于 1 小时;故障均匀修复时长广泛超过 1 小时,超过 6 成故障修复工夫(MTTR)高于 1 小时,甚至有约 20% 的服务故障修复工夫超过 12 小时。
日益简单的 IT 零碎与疾速迭代的软件交付为零碎稳定性的保障带来诸多挑战和不确定性,国内软件系统稳定性仍有较大晋升空间。
2、混沌工程利用以后成熟度偏低,市场须要成熟、欠缺的混沌工程商业产品及咨询服务。
- 超过 3 成企业仅在小范畴应用混沌工程,仅 8.68% 的企业较大规模地利用混沌工程,混沌工程在企业外部渗透率有待进一步提高;
- 近半数企业在研发、测试环境中应用混沌工程,仅不到 20% 的企业在生产环境中发展混沌工程演练,混沌工程在外部应用的技术复杂度不够高;
- 妨碍用户大规模、深度应用混沌工程的次要阻碍是:不足相干教训以及放心故障注入对生产环境带来危险。
将来,需面向市场推出成熟、可信的混沌工程产品或建设咨询服务,以晋升混沌工程的技术认可度、升高用户应用门槛、打消应用顾虑,成为推动行业步入快车道的催化剂。
3、混沌工程是晋升产品可用性的无效伎俩,是建设稳定性优先策略的技术外围。
- 考察数据显示,随着混沌工程应用频率晋升,低可用性(可用性低于 99%)的产品占比急剧萎缩,高可用性(可用性高于 99.99%)的产品占比迅速增长。
- 混沌工程通过在生产环境中执行探索性测试以发现零碎中的暗藏问题,在软件系统稳定性保护上展现出微小价值,其中晋升服务可用性及升高故障修复工夫是两大次要收益。65% 的受访用户认为采纳混沌工程晋升了服务可用性,49.85% 的受访者认为混沌工程帮忙升高了 MTTR。
企业须要建设稳定性优先(Stability First)的策略,构建零碎稳定性保障体系,巩固推动数字化转型过程。
4、企业期待构建残缺、可度量的零碎稳定性保障体系。
- 线下访谈数据显示,业务零碎开发人员面对日益简单的技术架构,急需利用适配新型 IT 架构的稳定性保障工具、建设门路指引以及稳定性度量体系;
- 受访用户广泛示意,正当借力合作伙伴或技术钻研机构的技术支持和实践经验,能够很大水平躲避新技术驳回过程中可能遇到的阻碍,缩短技术成熟周期。
具体数据解读
第一局部【混沌工程利用现状】
倒退阶段:混沌工程在企业外部的利用处于起步阶段
1)混沌工程普及率较低,将来有广大增长空间:受访用户中有超过 3 成从未应用过混沌工程,仅 3.94% 左右的能比拟频繁地(每天演练)应用混沌工程。
图 1 混沌工程应用频率
2)混沌工程在企业外部的渗透率偏低:超过 3 成企业应用混沌工程的产品比例低于 25%,仅 8.68% 的企业外部利用混沌工程的占比超过 75%。混沌工程对企业外部的很多应用场景、产品都有较大可渗透空间。
图 2 公司中应用混沌工程的业务占比
3)混沌工程应用阶段较为高级:44.41% 的用户在研发 / 测试环境中发展演练,在预生产环境中发展混沌工程演练的占比也达到了 32.21%。较低的生产环境使用率体现了用户对混沌工程间接作用于生产环境的不自信。
图 3. 发展混沌工程演练的环境
开发工具:混沌工程实际以国内开源工具为主,需要侧与供应侧偏重各有不同。
1)服务需要侧(甲方)更偏向于采纳商业产品为辅助:33.04% 的服务需要侧偏向于采纳成熟的商业产品作为辅助,以实现混沌工程疾速落地、避开施行陷阱;其次才会思考自研平台。
图 4 混沌工程应用工具散布 - 需要侧
2)服务供应侧(乙方)更偏向于采纳自研平台为辅助:对于服务供应侧来讲,商业产品的吸引力(26.68%)小于自研平台(37.96%)及国外开源工具(29.07%)。
图 5 混沌工程应用工具散布 - 供应侧
故障类型:故障注入类型以根底资源故障为主。
1)故障注入类型聚焦于根底资源层面,应用层及容器关注度偏低:网络资源故障和计算资源故障是最通常采纳的故障注入类型,而利用类和容器类故障注入的关注度绝对较低。
图 6. 故障注入类型散布
2)故障演练施行靶点次要为主机 / 虚机:与故障注入类型统一,用户最常采纳的故障演练施行靶点为主机 / 虚机,较少将故障间接施行在利用上,这可能与局部利用故障有肯定的技术实现门槛,须要与开发框配合实现无关。
图 7. 混沌工程演练的施行对象 / 靶点
施行收益:晋升可用性是施行混沌工程的最大收益
与前述剖析后果保持一致,可见混沌工程有助于晋升用户最关注的服务可用性。考察数据显示,高达 65% 应用过混沌工程的受访用户示意混沌工程能够“晋升服务可用性”,显著高于其余收益项。
图 8. 施行混沌工程的收益
施行阻碍:教训的不足及对危险的担心,国内市场须要成熟、欠缺的混沌工程商业产品或咨询服务升高技术施行难度。
考察数据显示,46.32% 的用户不足应用混沌工程的相干教训,45.29% 的用户示意放心“混沌工程可能会对生产环境带来某些危险”;而对于刚接触混沌工程的用户来讲,“不足相干教训”是其深度驳回混沌工程最大的阻碍;对于频繁应用混沌工程的用户来讲,对危险的担心占上风;同时,随着混沌工程应用频率的晋升,用户对掂量混沌工程效益的需要显著增长(图 10 橙色线)。
打消用户驳回混沌工程的顾虑,有以下倡议:
- 向市场推出成熟的混沌工程产品或咨询服务,升高用户的应用门槛是尽快推广混沌工程的无效伎俩;
- 设计齐备的零碎稳定性度量体系、混沌试验故障分级机制能够量化混沌工程的施行成果,推动混沌工程精益化发展,晋升混沌工程施行的投入产出比。
图 9. 施行混沌工程的最大阻碍
图 10. 采纳混沌工程的阻碍在应用频率上的散布
前置条件:技术就绪是施行混沌工程的前置条件
产品技术层面的就绪包含:欠缺的监控体系、可量化的零碎稳定性评估体系及零碎已具备韧性根底。考察数据显示,65.59% 的用户认为具备欠缺的监控体系是混沌工程施行的首要前置条件,超 60% 的用户须要对混沌试验时故障注入后的影响有可量化的评估模型,而团队合作在用户的认知中重要性绝对较低,48.09% 用户抉择此项。
图 11. 施行混沌工程的前置条件
概念认知:混沌工程概念不清晰,常识遍及任重道远
考察数据显示,超过半数被访用户对混沌工程和演习的概念分辨不清,约 1 / 4 的用户认为两者没有区别,仅有约 1 / 5 的用户能明确表述出两者的区别。对被访用户的反馈信息加工、进行词频剖析后,能够发现混沌工程更偏差于在生产环境中执行探索性测试,具备随机性,以发现零碎中的暗藏问题;演习更偏差于有计划性地验证某一具体猜测。
图 12. 混沌工程与演习是否有区别
图 13. 用户对混沌工程的意识
图 14. 用户对演习的意识
第二局部【零碎稳定性现状】
可用性:企业产品可用性仍有晋升空间
1)考察数据显示,近 20% 的受访用户所负责的产品可用性低于 2 个 9,近半数产品的可用性能低于 3 个 9。这意味着 47.04% 的用户每个月要忍耐高于 44 分钟(可用性 99.9%),甚至超过 7.3 小时(可用性 99%)的服务故障。
图 15. 可用性现状
2)故障产生之后的解决状况也差强人意:仅不到一半的用户故障均匀发现时长(MTTD)小于 1 小时;故障均匀修复时长广泛超过 1 小时,超过 6 成故障修复工夫(MTTR)高于 1 小时,甚至有约 20% 的服务故障修复工夫超过 12 小时。
图 16. 故障均匀发现时长(MTTD)
图 17. 故障均匀修复时长(MTTR)
可用性与混沌工程:混沌工程应用频率与产品可用性晋升显著相干。
从未应用过混沌工程的受访者中,有近三成受访者产品可用性低于 99%,而随着混沌工程应用频率晋升,在每天都会演练的受访者中,这一比例急剧缩减到 2.5%(见下图中蓝色模块),即随着混沌工程应用频率晋升,低可用性的产品占比急剧萎缩;与此绝对应的是,从未应用过混沌工程的受访者中,仅 25% 的产品可用性高于 99.99%,而随着混沌工程应用频率晋升,在每天都会演练的受访者中,这一比例迅速增长至 65%(见下图中红色模块),即随着混沌工程应用频率晋升,高可用性的产品占比迅速增长。
图 18. 产品可用性在不同混沌工程应用频率上的散布
可用性度量与晋升:产品可用性度量维度及晋升可用性的办法多样。
1)产品可用性度量维度多样:响应工夫、可用率和错误率的抉择人数显著较高,是度量产品可用性时最常应用的指标。有近 70% 的用户采纳响应工夫作为产品可用性度量规范之一,除此之外,可用率和错误率的抉择人数也靠近 60%。
图 19. 产品可用性度量维度
2)产品可用性的晋升形式:备份、衰弱性查看、主动扩容、多核心双活模式、数据库复制集考察数据显示,48.72% 的用户会抉择应用“备份”作为晋升产品可用性的办法,48.43% 的用户会抉择应用“衰弱性查看”,而主动扩容以 45.28% 的比例跻身产品可用性晋升办法的第三位,多核心双活和数据库复制集别离以 43.9% 和 40.06% 的占比分列四、五位。相干人员可参考此数据以领导产品可用性晋升建设布局。
图 20. 进步产品可用性的策略
3)利用上云是晋升可用性的无效伎俩:从公司的云化水平来看,不同的云化水平对产品可用性的影响具备显著差别,云化水平越高的公司,产品可用性越高。上云比例低于 25% 的公司中,44.96% 的产品可用性低于 99%,仅 14.71% 的产品可用性高于 99.99%;而随着上云产品比例的晋升至 75% 以上后,可用性高于 99.99% 的产品占比急速飙升至 49.23%,翻了两番之多。
图 21. 云化水平与服务可用性状况的穿插剖析
重大事故:以后产品的稳定性绝对较差,正当使用混沌工程能缩小重大事故发生率。
1)可用性面临微小威逼:考察数据显示,74.11% 的用户产品每月产生的重大事故少于 5 个,但每个月重大事故产生数量超过 5 个的产品占比达到 25.89%,这意味着约 1 / 4 的产品每年会产生至多 60 次重大事故,可用性面临微小威逼。
图 22. 每个月重大事故(依据公司外部规范)的均匀数量
2)重大事故起源散布:对于每个月重大事故数量小于 5 的公司来说,代码谬误和网络问题是造成重大事故的次要起因;对于每个月产生 5~10 个重大事故的企业来说,非数据库引起的外部依赖问题引发了 51.37% 的故障,配置谬误引发了 43.72% 的重大事故;对于每个月产生 10~20 个重大事故的企业来说,非数据库引起的外部依赖问题同样以 47.95% 的比例显著高于其余故障类型,配置谬误以 41.1% 的比例位居第二。
线下调研后果提醒:正当使用混沌工程能很好的躲避或弱化以上问题。
图 23. 重大事故起源散布
图 24. 重大事故与故障起源穿插剖析
第三局部【倒退倡议】
- 一、关注企业 IT 架构现状,构建围绕业务的稳定性保障体系。面对日益简单的 IT 零碎架构以及逐渐晋升的用户冀望,企业须要关注外围业务体系,建设稳定性优先的策略并根据迷信、无效的混沌工程理念布局本身的稳定性保障体系,在踊跃驳回云原生、人工智能、大数据等技术的同时,优先思考配套的稳定性零碎搭建,在保障系统稳固的前提下,逐渐实现业务向新架构的迁徙。
- 二、器重技术迭代,打造以混沌工程为核心的零碎稳定性保障体系。随着 IT 技术的更新,稳定性保障技术也随之迭代更新以解决新架构下面临的新问题。混沌工程通过引入随机和不可预知行为的受控试验来识别系统的弱点,无效晋升软件系统稳定性。在此基础之上,配合应用可观测性平台、容量治理、全链路压测等工具或技术,组合搭建零碎稳定性保障体系,全方位保障软件系统可用性。
- 三、构建稳定性优先的企业文化,借助合作伙伴生态减速混沌工程成熟周期。首先,企业和组织必须对新理念和技术持容纳的心态,踊跃拥抱混沌工程理念及治理框架;其次,抉择可能对混沌工程试验进行全生命周期反对的可信平台或工具,精细化治理混沌试验,逐渐将混沌工程从测试环境推向生产环境;最初,企业应重点关注混沌工程实际成果度量,从而正确评估以后零碎稳定性状态,缩短混沌工程成熟周期。
起源:混沌工程技术
关注公众号回复“混沌工程”可下载《中国混沌工程调查报告(2021)》残缺报告