【附下载】国内首个《中国混沌工程调查报告(2021)》深度解读 | ID...
DevOps
共 5520字,需浏览 12分钟
·
2021-12-27 15:23
来源:混沌工程技术PDF文件下载方式:公众号后台回复“混沌工程”,可下载《中国混沌工程调查报告(2021)》
随着分布式、云原生成为主流的系统架构设计方案,大规模分布式系统的稳定性保障能力越来越成为业界关注的重点。如今,混沌工程作为保障系统稳定性的利器,受到业界广泛关注,中国信通院作为国内最早推进混沌工程标准化工作的单位,联合混沌工程实验室全体成员单位、社区、媒体共同发起国内首个混沌工程问卷调查,以期掌握我国混沌工程的接纳程度和特点。
2021年11月11日,在混沌工程实验室主办的“混沌工程与系统稳定性主题沙龙”上,中国信通院云大所副所长栗蔚深度解读了国内首个《中国混沌工程调查报告》。以下为报告详细内容。
本报告采用在线调查加线下访谈的方式,共回收有效问卷1016份、访谈企业17家。报告的第一部分介绍调查背景,第二部分介绍我国混沌工程当前使用情况,第三部分是混沌工程致力于提高的系统稳定性现状,第四部分聚焦混沌工程的发展建议。本报告以调查结果为基础,力争详实客观地反映混沌工程领域应用现状与痛点需求,为广大从业人员、专家学者和研究机构提供真实可信的数据参考。
核心观点
1、国内软件系统稳定性有较大可提升空间。
- 调查数据显示,近20%的受访用户所负责的产品可用性低于2个9(意味着用户每个月要忍受超过7.3小时的服务故障),超过4成产品的可用性低于3个9(意味着用户每个月要忍受超过44分钟的服务故障)。
- 故障发生之后的解决情况也差强人意:仅不到一半的故障平均发现时长(MTTD)小于1小时;故障平均修复时长普遍超过1小时,超过6成故障修复时间(MTTR)高于1小时,甚至有约20%的服务故障修复时间超过12小时。
- 超过3成企业仅在小范围使用混沌工程,仅8.68%的企业较大规模地应用混沌工程,混沌工程在企业内部渗透率有待进一步提高;
- 近半数企业在研发、测试环境中使用混沌工程,仅不到20%的企业在生产环境中开展混沌工程演练,混沌工程在内部使用的技术复杂度不够高;
- 阻碍用户大规模、深度使用混沌工程的主要障碍是:缺乏相关经验以及担心故障注入对生产环境带来风险。
- 调查数据显示,随着混沌工程使用频率提升,低可用性(可用性低于99%)的产品占比急剧萎缩,高可用性(可用性高于99.99%)的产品占比迅速增长。
- 混沌工程通过在生产环境中执行探索性测试以发现系统中的隐藏问题,在软件系统稳定性维护上展现出巨大价值,其中提升服务可用性及降低故障修复时间是两大主要收益。65%的受访用户认为采用混沌工程提升了服务可用性,49.85%的受访者认为混沌工程帮助降低了MTTR。
- 线下访谈数据显示,业务系统开发人员面对日益复杂的技术架构,急需应用适配新型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橙色线)。消除用户采纳混沌工程的顾虑,有以下建议:
- 向市场推出成熟的混沌工程产品或咨询服务,降低用户的使用门槛是尽快推广混沌工程的有效手段;
- 设计完备的系统稳定性度量体系、混沌实验故障分级机制可以量化混沌工程的实施效果,推动混沌工程精益化发展,提升混沌工程实施的投入产出比。
重大事故:当前产品的稳定性相对较差,合理运用混沌工程能减少重大事故发生率。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技术的更新,稳定性保障技术也随之迭代更新以解决新架构下面临的新问题。混沌工程通过引入随机和不可预知行为的受控实验来识别系统的弱点,有效提升软件系统稳定性。在此基础之上,配合使用可观测性平台、容量管理、全链路压测等工具或技术,组合搭建系统稳定性保障体系,全方位保障软件系统可用性。
- 构建稳定性优先的企业文化,借助合作伙伴生态加速混沌工程成熟周期。首先,企业和组织必须对新理念和技术持包容的心态,积极拥抱混沌工程理念及管理框架;其次,选择能够对混沌工程实验进行全生命周期支持的可信平台或工具,精细化管理混沌实验,逐步将混沌工程从测试环境推向生产环境;最后,企业应重点关注混沌工程实践效果度量,从而正确评估当前系统稳定性状态,缩短混沌工程成熟周期。
👉PDF文件下载方式:公众号后台回复“混沌工程”,可下载《中国混沌工程调查报告(2021)》
玩乐高,学敏捷,【规模化敏捷联合作战沙盘之「乌托邦计划」】,2022年3月5-6日登陆深圳,将“多团队敏捷协同”基因内化在研发流程中,为规模化提升研发效能保驾护航!!🏰⛴企业组队和个人均可报名参加,一起挑战极客乌托邦评论