近些年来,各个行业都迎来了数字化转型浪潮,随着企业对于云计算的理解和实践不断深入,基于云计算的分布式架构已经越来越多地成为企业应用构建的首选方案。随着应用云原生化的推进,业务系统的迭代速度会越来越快,后端系统架构变得复杂,服务之间的依赖增多,调用链路增长。如何利用“混沌工程”技术来保证生产环境的分布式系统在面对失控条件的时候仍然具备较强的韧性呢?

今天,我们邀请到郑阳老师来分享云原生业务下混沌工程对企业级灾备有哪些重要影响。

嘉宾简介
郑阳

历任NEC中国研发部总监、容器云初创公司轻元科技CTO,现任同创永益CTO。18+年企业级平台软件研发与管理经验,全球最早一批从事软件定义网络(SDN)研发的技术人员之一,云计算、容器、云原生、混沌工程领域专家,多年企业级运维、云计算领域研发与实施服务经验。

问:混沌工程的概念由来已久,是什么原因在这几年才被大家越来越多地提及,开始变得流行呢?

郑阳:2021年中国信通院发布“2021云计算十大关键词” 混沌工程成为云计算热点之一。混沌工程作为一种以实验来提升软件系统韧性的学科,开始逐渐在众多大企业中开始实践起来。

变得流行起来我觉得原因有以下几个:
1、开源工具的发展和完善,让大家应用混沌工程实验的成本降低。
2、最近几年因为互联网业务的发展,微服务架构等技术的流行,软件系统的复杂度在不断提升,已远远超出人类能够记忆和认知的范围,定位问题成本越来越高,而混沌工程通过实验的方式能够快速帮助架构师找到架构上的问题。
3、提升了研发团队对软件系统的理解,可以帮助开发团队理解复杂系统是如何运行和如何失效的。

问:混沌工程目前面临哪些机遇与挑战?

郑阳:如果我们永远难以全面掌握发生什么事件,会导致系统局部不可用,甚至全面崩溃。可能一个很小的变更,因某种未预料到的场景,引起蝴蝶效应,就会触发大面积的系统混乱、故障和服务中断,混沌工程成了保障业务连续性、提高系统稳定性的有效途径。

随着敏捷开发、DevOps、微服务、云原生的出现,应用交付周期大大缩短,如何保障业务持续的高可用性和稳定性成为一个挑战。混沌工程正是因为这样,通过主动注入故障,提前发现系统存在的隐患、迭代改进架构和运行维护模式等,最终实现了业务韧性。

问:混沌工程到底是怎样一种实验?就是将故障注入生产环境中,让它们随机地搞一些破坏,看哪里出问题就修哪里?

郑阳:可以把混沌工程看作是为了揭示系统缺陷而进行的实验。混沌工程实验并不是盲目的,也不是试探性的,它一定是有目的的,可控的一种实验。为了具体地解决分布式系统在规模上的不确定性,破坏稳态的难度越大,我们对系统行为的信心就越强。如果发现了一个缺陷,那么我们就有了一个改进目标。

在实施混沌工程时,应该遵循以下五大原则:
1.建立一个围绕稳定状态行为的假说
2.多样化真实世界的事件
3.在生产环境中运行实验
4.持续自动化运行实验
5.最小化爆炸半径

五大原则描述了应用混沌工程的理想方式,在实验过程对这些原则的匹配程度能够增强我们在大规模分布式系统的信心。

问:混沌工程具有哪些价值,如何衡量?
郑阳:不同的组织或者企业,混沌工程所影响的利益关系也不尽然相同。仅仅是从经济角度讨论混沌工程产出是不够的,我们会关注这几个指标包括平均的恢复时间、平均的故障时间、平均时效时间。
混沌工程它最大的聚焦点可能是为了解决故障,故障能否快速地去发现?故障能否快速地去解决?因此需要一种多元化的评价标准评估实施混沌工程价值与投资回报。

问:该如何实施混沌工程,有没有成熟的混沌工程实践工具?

郑阳:经过多年的发展,目前从技术的角度,行业内已经有了一些通用的混沌工程实验解决方案供企业选择。

可以看到的是,混沌工程的实验和云密切相关。随着云服务渗透到各行各业,逐渐发展成为新的行业基础设施,对云服务的韧性提出了更高要求,而混沌工程被验证可以有效检验云原生系统的韧性架构。同创永益混沌工程演练平台是一套完整的混沌工程实践,提供丰富的故障注入手段,通过对业务系统进行平台、间件、应用等层次的故障注入演练,帮助企业发现更多未知的影响业务稳定性的隐患与问题。

问:CNBR混沌工程故障演练平台优势

郑阳:基于内部故障演练经验,同创永益混沌工程故障演练平台提供丰富的预定义故障场景,涵盖基础服务、微服务治理、云原生容器编排、备份容灾等场景,企业用户可以轻松对场景进行扩展,或将历史实验沉淀为场景库。基于工作流引擎的场景编排,支持并行,串行的组合,以及定时自动执行的流程定义,演练过程灵活可控,可随时终止演练。       

  • 丰富的可扩展的故障库: 除提供所有基础的,基本上涵盖所有的已知故障外,还支持自定义来扩展故障库。
  • 良好的实验防护: 提供完善的业务保护方式,对演练环境快速进行恢复,同时提供业务沙盘功能,在充分模拟真实环境的隔离环境下进行演练,增强演练安全性。
  • 专业的全栈故障场景: 基于内部故障演练经验,平台提供丰富的,预定义故障场景,涵盖基础服务,微服务治理,云原生容器编排,备份容灾等场景;用户可以轻松对场景进行扩展,或将历史实验沉淀为场景库。
  • 灵活的故障演练编排: 基于工作流引擎的场景编排,支持并行,串行的组合,以及定时自动执行的流程定义,演练过程灵活可控,可随时终止演练。

在同创永益CTO郑阳看来,混沌工程作为提升平台系统可靠性的一种比较常见的手段,是经过国内外众多厂商实践论证的。此外,数字经济时代,企业转型升级所依赖的云、AI、大数据等技术需要全面构筑在数字化的基础设施之上,微服务架构的不断发展,以及分布式系统的不断庞大,其稳定性将被不断强调,混沌工程未来将越来越被企业重视。

03-05 22:34