访谈 | 抓住那只捣乱的猴子——红帽 “混沌工程平台”实践分享
随着分布式、云原生成为主流的系统架构设计方案,大规模分布式系统的稳定性越来越成为业界关注的重点。混沌工程作为业务连续性管理体系的补充,其价值是通过“攻防手段”建立能够持续地、前瞻地发现系统潜在风险的机制,以提高客户对抗未知风险的“免疫力”。
今天我们邀请到了红帽金融解决方案总监方浩先生,为我们详细介绍“混沌工程”的发展特点与趋势,以及红帽自主研发的“混沌工程平台”的技术优势与实践经验。
▶️ 点击观看精彩访谈
【采访实录】
方 浩
■ 红帽金融行业解决方案总监
■ 毕业于南开大学,20年IT从业经验,在核心系统、数据仓库、信贷平台、服务总线、流程平台、电子银行系统方面具有多家银行、保险公司项目的丰富经验。曾工作于北大青鸟、神码融信、甲骨文等公司,现负责红帽企业客户售前团队,主要领域为DevOps、混合云架构、PaaS平台、云原生应用、运营自动化等方向的工作。
主持人
方总您好!我们知道混沌工程的概念最早由网飞公司(Netflix)提出。在推广混沌工程的过程中,网飞公司引入了一只猴子的概念,试想一只猴子在系统里面,平时是安安静静的,什么事情都不做,有一天突然跳起来在系统里到处捣乱,作为工程师,要干的一件事情就是逮住这只猴子,让它别捣乱,我想这大概就是混沌工程要表达的意思。
那么,请您跟我们分享一下,您对混沌工程的理解是什么?与传统稳定性保障措施相比,它具有哪些技术创新优势呢?
方 浩
主持人和线上的各位朋友下午好!混沌工程这个话题,就像主持人刚才所提,是目前企业IT部门非常关心的一项内容。我们知道,混沌工程已经用在了像金融、航天、生物很多领域,随着云原生和分布式现在广泛被采纳,混沌工程也成为了一项必需品。可以从三个方面来理解。首先,混沌工程作为一项技术,它可以用于测试产品的成熟度,以及提升生产环境的构建能力和服务能力。但是,它和我们传统的测试又会有很大区别,就是它既有工具上的相同联系,但是也有关注视角上的差异,作为工具本身,我们知道现在开源软件已经非常普及,所以在混沌工程的领域里面,我们会看到大量的技术都是来自于开源软件。那第二方面,混沌工程它本身也是一个工程化建设过程,因为混沌工程会涉及到整个IT中自顶向下的各层架构,从基础设施到运行环境,到网络、存储到应用的每一层,都和混沌工程息息相关。为了实现混沌工程,我们需要不同的工具,在各层间去实现混沌的场景,随着新技术发展,我们混沌场景肯定会越做越多,所以这种情况下混沌工程的本身就是一个长期的建设过程。第三方面,混沌工程现在看起来确实改变了我们在IT运维管理方面的模式,因为我们知道以前的IT其实是一种严谨的学科,通过规划、设计、测试来实现我们预期的目标输出。但是随着云化的引入,我们会发现很多变化因素进入IT系统,我们很难用人工方式去管理这么一个非常大规模的云环境。以前我们一个运营人员可能管理几十台,甚至一百台的物理机就已经达到极限,但在云环境下,我们会面临成千上万的这种容器化后的小的运行单位,这种情况下,我们就没法用人工去管理,需要通过混沌工程这个系统去管理。我相信这一定是未来我们IT管理的必然模式。
主持人
2021年,红帽协助客户利用开源项目构建了“混沌工程平台”,在提高客户混沌工程的执行效能,增强风险预判与评估能力方面具有显著效果。请您介绍一下“混沌工程平台”应用了哪些关键技术,可以解决哪些金融行业痛点问题?
方 浩
混沌工程它其实是一门综合性学科,如果谈到这其中最关键的部分,我想应该是混沌工程的场景,因为混沌工程中,虽然我们有很多的工具去注入一些故障去管理和监控。但是如何把这些场景能够贯穿起来,实现这些场景之间的参数化,包括这些参数的量化就变得非常重要。在场景化之前,还有一些重要工作,就是我们对整个环境是需要有一些技术假设,就是对环境的处理能力,以及各方面的表现,需要有一个正常的基准。就是在基础上配合这个场景的管理,我们才能够确保混沌工程用于这个环境的时候,能够充分地发现问题和规避问题,这些能力交付给客户,实际上我们也需要一个相应的平台去作为承载,因为每一个客户,他的环境并不会完全一样,需要用的工具和手段也会有差异。
所以如何能够把这种工程化的建设变成标准的服务交付,以产品方式去交付客户,是红帽一直在探索的内容。在这方面的架构上,首先是混沌工程平台,它天然的就是一个分布式和云原生的应用,在这个基础上,我们需要有一个非常好的、稳健的容器平台去承载,在承载之后,我们并不能像传统IT管理系统一样去做应用形式的开发和设计,因为我们知道混沌工程里面会用大量不同的工具去访问和控制很多IT基础设施,这个时候我们实际上需要的是一种开放式的技术能力,因为整个IT中心一旦上了混沌平台,它将会变成一个7x24小时,不中断运行的环境,一旦因为某一个部件的升级更换带来故障,那可能会影响到整个数据中心,所以如何能够在构建这个混沌平台的时候实现开放性集成,是非常重要的一个技术难点。对于红帽来说,我们会选择Ansible这样的执行引擎去编排不同系统的这种执行过程,也会通过微服务把不同的开源的混沌工程工具集合在一起,去实现跨不同产品的这种控制。
主持人
请您分享一下,在“混沌工程平台”的研发应用过程中遇到过哪些技术难点,积累了哪些可输出的成功经验?
方 浩
刚才主持人提到了一个名词,就是免疫力。我想这个描述非常贴切,我们知道混沌工程,它会主动地向平台引入一些故障和缺陷。但是在这个过程中引入多大的故障和缺陷,它是需要非常科学的设计的,用我们的术语叫做爆炸半径。如果引入的故障过大,它甚至可能会带来整个平台的不稳定,但是如果太小,可能又不会让系统中的问题暴露出来,所以如何去提炼出爆炸半径的关键要素和量化指标,需要我们在很多项目建设中发现的一个非常经验化的数据。因为它跟客户的整个平台体量、规模有关,跟它上面复杂应用的复杂度也有关系。从红帽角度来说,这个爆炸半径的设计是会有相应的公式,以便我们进行参数的提取。谈到免疫力,其实还有另外一个非常重要的事情是在这个实施过程中需要去考虑的,如果以免疫来看,我们人体除了免疫力之外,还有一个重要的指标,是我们身体的健壮程度和健康程度,也就是说如果我们的基础设施,它本身的韧性并不是很好,这个时候即使引入了混沌工程去发现和处理问题,那么整个平台它最终的能力并不会非常的强壮。所以在实施混沌过程之前,其实首先我们要处理好是整个基础平台,一定要把原本可以发现的问题提早处理掉,而不是留给混沌平台去发现和应对。
主持人
为助力产业数字化过程中IT系统稳定性的持续提升,“混沌工程平台”未来还将进行哪些优化迭代?
方 浩
首先,红帽既是混沌平台的使用者,也是混沌平台的贡献者。我们在红帽自身产品研发的时候,已经使用了大量的混沌工具,像Litmus,还有红帽推出的一个开源社区就叫做Kracken,用来做k8环境的故障注入。我们同时还有一些像Cerberus的平台去做k8环境的监控,这些其实都是我们要实现混沌工程必不可少的一些基本组件。在这个基础之上,我们接下来会考虑如何能够把这些不同的开源软件更好地集成在一起,去实现跨软件的场景量化和参数化,这种集中化管理能够让场景也像我们在容器环境部署应用一样,能模板化地根据客户不同的环境和特征快速通过配置方式,使我们得到一个基础的混沌工程样板。
主持人
感谢方总的精彩分享。希望红帽可以携手更多的合作伙伴,为金融行业的稳定发展贡献力量。
(编导:潘婧 摄影:张珺)
(点击查看精彩内容)
● 访谈 | 开放融合,深耕新发展格局下的金融创新——访思科大中华区资深副总裁贺骏
● 访谈 | 中华财险开启数字化转型篇章——访中华联合财产保险创新中心副总经理汤密力
● 访谈 | 持续建设内生能力,坚定推进数字化转型——访中原银行创新总监刘潇
新媒体中心:主任 / 邝源 编辑 / 傅甜甜 张珺 邰思琪