数字化转型之路-云原生与ChaosMeta

news2025/6/18 12:28:55

作者:刘凇杉(chaosmeta-platform发起人)

一.引言

随着科技的快速发展和信息时代的到来,数字化转型已成为企业不可或缺的战略选择。作为中国领先的科技金融企业,蚂蚁集团深谙数字化转型的重要性,并在其转型之路上融入了混沌工程的理念。通过本文的阐述,读者将能够深入了解蚂蚁集团在帮助小公司进行数字化转型方面的实践和创新。

二.背景

  • 2022年1月,央行发布了《金融科技发展规划(2022-2025年)》,旨在加快推进金融与科技的深度融合,明确金融数字化转型的总体战略和思路,并为“十四五”期间金融行业的科技发展提供指导意见。该规划以稳妥发展金融科技、加快金融机构数字化转型为背景,进一步明确了发展目标和实施方向。
  • 当前在金融机构中,许多新技术如虚拟化、大数据和人工智能已经开始被探索和应用。然而在资源服务化方面仍存在一些不足之处。因此如何以平台化、资源化和服务化的方式高效利用各类数字技术,成为支撑业务创新的重要因素,也是科技部门着重关注的内容。
  • 实现平台化服务的前提是构建敏捷、灵活和稳固的数字基础设施和技术底座,并以服务化方式支持各类业务需求。例如基于云计算的共享云服务可以解决IaaS基础服务中内外网业务隔离和安全合规的问题;基于大数据资源和人工智能基础设施的智能引擎服务可以为各业务线提供各类模型算法训练、自然语言处理(NLP)和光学字符识别(OCR)等人工智能接入服务;基于数据治理驱动的数据服务可以构建全链路的数据统一汇聚、提供治理、运营的平台。
  • 解决上述问题的有效途径是构建以云计算为核心基础的数字化转型平台,实现业务和技术的全面上云,提供统一的接口和服务。同时还需要具备高度的安全性、可靠性和可扩展性,以应对不断增长的业务需求和技术挑战。总之,传统互联网技术的转型涉及到构建数字基础设施和技术底座,通过构建以云计算为核心的数字化转型平台,可以实现业务和技术的全面上云,推动数字化转型的顺利进行。

三.云原生

定义

云原生旨在提供更高效、可扩展和可靠的应用程序交付和管理方式。云原生下的软件开发、构建和运行依托于云计算,通过容器化技术将应用程序拆分为一系列微服务,实现了应用现代化。这种架构提高了应用程序的可维护性、灵活性和可扩展性。

云原生的使用

举例来说,淘天通过采用云原生架构和相关技术实现了数字化转型。淘天将传统的单体式应用程序拆分为一系列微服务,每个服务专注于特定的业务功能,如库存管理、订单处理和支付等。这样的架构使得淘宝能够更好地应对业务变化,提高了应用程序的可维护性、灵活性和可扩展性。另外,通过云原生的弹性扩展和容器化技术,淘天能够根据流量和负载需求自动调整资源,确保应用程序具备足够的处理能力,避免资源浪费。此外,淘天还利用云原生的快速交付和持续集成部署流程,实现了敏捷开发和快速迭代,更快地推出新功能和更新。通过基于数据驱动决策的方式,淘天可以通过云原生技术实现数据收集、存储和分析,优化业务流程、改进用户体验,并通过机器学习和人工智能实现个性化推荐等。

金融行业与云原生

金融云原生化改造是在有利政策、产业挑战和技术创新的影响下,金融云市场迅速发展的结果。与传统的云计算相比,金融领域的云原生具有一些独特的特点和需求。在金融云原生化改造中,安全稳定性是金融机构的底线要求,需要高可用的业务容灾架构。另外,互联网金融的快速发展使金融交易呈现大流量、高并发和波动大等特征。此外,金融业务场景越来越垂直化和碎片化,需要敏捷的环境支持。普惠金融对数据价值的利用和智能决策也提出了更高的要求。下面是蚂蚁金融云的技术架构:

蚂蚁小程序云

蚂蚁小程序云作为一家领先的金融领域云厂商,通过内置接口与蚂蚁金服的各项开放业务快速集成,从而降低金融机构,尤其是中小金融机构的创新成本。同时小程序云也是蚂蚁集团提供的以云原生高可用为基础的,降低成本、免运维、高并发业务支撑的服务端解决方案。小程序云还提供了众多技术创新,比如提供了连续10年稳定支撑双11的分布式数据库 OceanBase、比如屏蔽基础设施细节的 Serverless、比如个性化智能营销系统、比如隐私合规扫描。下面是小程序云的产品概览:

身处云计算、移动互联、大数据涌动的时代浪潮之中,整个金融行业都在积极转型、努力创新。基于互联网产生的大量需求需要互联网机构和金融机构共同去满足,小程序云将助力金融机构聚焦互联网新经济中产生的新需求,聚焦创新红利,推动金融服务市场快速增长。金融业云原生化改造需求并非一蹴而就,如何用好这颗“银弹”才是关键。

云原生改造步骤

由于金融业对安全性和稳定性有着极高的要求,云原生化改造过程中必须考虑合规性、连续性和功能完整性。为了确保金融业的数字化进程得以顺利推进,首先要保证业务的正常使用,可以针对特定的业务场景,选择一些关键的应用进行云原生化改造。第二步再逐渐将现有的系统和应用逐步迁移到云原生环境中。这一步需要先仔细评估现有系统的复杂性和依赖关系,尤其是存在多年的僵尸应用。最后一步是“最终全量改造”,开始前指定完整的迁移方案,再按照计划将所有的系统和应用逐步完全迁移到云原生环境中。总的来说,金融业云原生化改造的关键在于如何充分利用云原生技术,满足金融业对安全性、稳定性和功能完整性的高要求。

四.混沌工程

混沌工程的兴起

2020年被戏称为云厂商的混沌元年,因为七个公有厂供商都遭遇了重大的故障。这给我们带来了一个共同的认识:没有哪个云平台是绝对不会出现故障的。让我们简单回顾一下2020年公有云故障的时间表:

  • 2020年3月3日,微软位于美国东部的数据中心发生了服务中断,持续了六个小时,导致美国北部的客户无法使用Azure云服务。
  • 2020年3月16日,微软Teams平台由于涌入大量新用户,在欧洲地区出现了持续两个小时的宕机。
  • 2020年3月24日至26日,微软Azure Pipelines遭遇故障,严重影响DevOps团队使用的持续交付服务,给软件开发人员带来了很大的影响。
  • 2020年3月26日,Google的多个云服务出现了无法访问的问题。用户遇到了Google的500错误代码(由于内部错误导致请求失败)和502错误代码(网关故障),Google将此次故障归咎于基础设施组件问题。
  • 2020年4月8日,Google Cloud身份和访问管理(IAM) API发生故障。这次故障从美国东部时间上午10:35开始,持续了不到90分钟,导致多个Google服务中断,包括App Engine、Cloud Functions、BigQuery和核心Compute Engine IaaS。
  • 2020年4月10日,华为云遭遇了大规模宕机,华为云的登录和管理后台无法访问,部分公司的业务无法正常运行,宕机时间持续了约三个小时。
  • 2020年4月21日至23日,微软旗下的GitHub发生了多次宕机。4月21日,多个GitHub服务出现了访问异常,持续了一个半小时。4月22日,服务再次中断,持续了至少两个小时。4月23日,多个GitHub服务也遇到了各种问题的影响,持续了近三个小时。
  • 2020年5月28日,Adobe Creative Cloud全天发生宕机,影响到了包括Photoshop、InDesign和Premier Pro在内备受欢迎的产品。
  • 2020年6月9日,IBM Cloud遭遇了重大宕机故障,托管在该平台上的多个服务中断,其中包括知名科技新闻聚合网站Techmeme。宕机事件从下午2点30分左右开始,并迅速蔓延至全球,直到下午6点30分左右才得以解决。这次宕机持续了约四个小时。
  • 2020年8月6日,苹果公司的系统状态页面显示,部分用户无法使用某些服务,包括苹果游戏中心和iCloud服务。
  • 2020年8月14日,华为云香港机房的制冷设备出现异常,工程师定位了潜在原因并及时处理恢复。
  • 2020年9月29日,Microsoft Office 365办公软件和Azure云产品发生故障,导致部分用户服务中断数小时,故障影响了Outlook电邮服务和Teams办公协作工具的部分用户。
  • 2020年10月8日,微软公有云美国区域的Azure服务出现了约一个小时的问题。微软在其状态页面上表示,北美区域访问微软或Azure服务(包括Azure政务服务)可能遭遇问题,正在进行调查。
  • 2020年11月25日,亚马逊公有云服务Amazon Web Services (AWS)遭遇了持续数小时的故障,导致部分网站和服务系统崩溃,影响了Adobe、Roku等服务。亚马逊AWS在其官方的服务健康报告页面上更新了最新状态,称美国US-EAST-1地区的Kinesis Data Streams API出现故障,导致客户无法写入和读出发布至Kinesis Streams的数据,同时也影响了更新网站页面的能力,并已经开始紧急修复工作。
  • 2020年12月15日,Google服务器全球范围内突然发生故障。在约45分钟的宕机期间,谷歌旗下的多项服务无法访问,包括Gmail邮箱、谷歌日历、视频网站YouTube等热门应用都受到了严重影响。这是谷歌在整年中的第四次宕机。

从2017年开始,以Kubernetes为主的容器云生态就进入了快速发展阶段。许多公司开始以此为标准搭建系统基础设施和云平台,社区蓬勃发展,生态日益丰富,其中包括混沌工程这个新兴生态。随着云原生架构的出现,加上DevOps、分布式和微服务的发展,应用的研发迭代速度和交付能力大大提升,但系统的复杂性也随之增加,因此高可用性和稳定性的建设变得更加必要。作为系统稳定性报障体系中的重要一环,混沌工程平台的建设和实践变得尤为重要。简单来说混沌工程是一种通过有意引入随机性和不确定性的方式来测试和验证系统的可靠性和弹性的方法。下图为混沌工程常见的原子能力:

蚂蚁集团与混沌工程

在蚂蚁集团,由于金融场景的多样性、规模化的服务节点以及复杂的系统架构,经历过各种各样的故障。这些故障信息是混沌工程的最真实的变量。为了更加有效地描述故障,并对故障进行体感分析,我们首先优先分析P1和P2级别的故障(P代表蚂蚁集团对故障等级的描述),并提出一些通用的故障场景。我们还从IaaS层、PaaS层和SaaS层的角度绘制了故障画像。从功能性故障测试的角度来看,非生产环境下实施故障注入可以满足预期。因此,最早的强弱依赖测试是在日常环境中完成的。然而,由于系统行为会根据环境和流量模式的不同而变化,为了保证系统执行方式的真实性并与当前部署的系统相关联,我们推荐在生产环境中实施故障注入,我们的目标是通过实验来建立对系统的信心,为了减少实验带来的影响需要精确定义最小化爆炸半径。混沌工程和故障注入测试的核心区别在于能否进一步减小故障的影响,例如微服务级别、请求级别甚至用户级别。虽然日常的很多演练还在测试环境中进行,但目的也是为了减少因故障注入而导致环境不稳定问题。除了故障注入,流量路由和数据隔离技术也是减少业务影响的有效手段。

基本原则

  • 引入故障:混沌工程通过有目的地注入各种故障和异常条件来模拟现实世界中的各种情况。这可以包括网络中断、服务器崩溃、资源耗尽等。通过引入故障,可以评估系统在各种不利环境下的表现。
  • 观察和测量:混沌工程要求在引入故障的同时,对系统的状态和行为进行观察和测量。这可以通过监控系统指标、日志记录和度量系统来实现。观察和测量可以帮助识别系统中的潜在问题和性能瓶颈。
  • 自动化和可控性:混沌工程注重自动化和可控性。这意味着故障注入过程应该是可重复的,并且可以通过自动化工具或脚本进行控制。这样可以确保故障注入的一致性和可靠性,并且可以轻松地进行多次测试和演练。
  • 恢复和恢复能力:混沌工程的目标之一是测试系统的恢复能力。系统应该能够识别和处理故障,并尽快从故障中恢复正常运行。这要求系统具备自愈能力、自动恢复和优雅降级等机制。
  • 分布式系统考虑:混沌工程通常应用于分布式系统中。在测试和评估系统鲁棒性时,需要考虑到分布式系统中的不同节点、网络通信和协调机制。

最佳实践

混沌工程有常见的几种攻防模式:1.基于风险点的攻防演练:以风险点为核心,通过对多个风险点进行故障注入和验证来进行演练,通常采用有损注入的方式。2.基于攻击能力的攻防演练:以攻击能力为主导,由蓝军团队开发出一种攻击能力,然后对所有或部分应用的相关风险点进行故障注入和验证,可以采用有损或无损注入的方式;基于防线能力的攻防演练:以防线能力为主,对防线规则进行故障注入和验证,通常采用无损注入的方式。

五.总结

混沌工程的商业化在许多领域都有潜力。例如,在金融领域混沌工程可以帮助银行和交易所等机构提高系统的可用性和稳定性,防止金融市场出现系统性风险。在电子商务领域,混沌工程可以帮助在线商店和支付平台等企业提供更可靠的服务,减少系统故障对业务的影响。在物流和供应链领域,混沌工程可以帮助企业提高交付和运输的稳定性,减少物流中断和延误的风险。商业化混沌工程的关键在于找到适合的领域和实施方式。可以在金融领域推广混沌工程。金融机构如银行和保险公司在数字化转型过程中需处理大量复杂的交易数据,而混沌工程能够帮助它们提高系统的可用性和稳定性,减少潜在的风险。

六.ChaosMeta

ChaosMeta 是一款面向云原生、自动化演练而设计的混沌工程平台。它是蚂蚁集团内部混沌工程平台 XMonkey的对外开源版本,凝聚了蚂蚁集团在公司级大规模红蓝攻防演练实践中多年积累的方法论、技术能力以及产品能力。经过公司内部多年复杂故障演练场景的驱动,XMonkey在混沌工程领域沉淀了很多独特经验,是蚂蚁集团研发、测试、质量、SRE 等人员进行历史故障演练和挖掘系统潜在风险的重要平台。我们非常希望能将这些经验和业界进行共同探讨与共同演进,为此我们开源了ChaosMeta。


ChaosMeta混沌工程-公众号:

Github-Star:

GitHub - traas-stack/chaosmeta: A chaos engineering platform for supporting the complete fault drill lifecycle.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1602975.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode 704.二分查找

LeetCode 704.二分查找 1、题目 题目链接:704. 二分查找 2、思路 这道题目是要在有序数组 nums 中找到目标值 target,符合二分查找的前提条件(线性表必须是有序的,且采用顺序存储)。同时题目还强调数组中无重复元…

2024最新在线工具箱网站系统源码

(购买本专栏可免费下载栏目内所有资源不受限制,持续发布中,需要注意的是,本专栏为批量下载专用,并无法保证某款源码或者插件绝对可用,介意不要购买!购买本专栏住如有什么源码需要,可向博主私信,第二天即可发布!博主有几万资源) 2024最新在线工具箱网站系统源码是一…

怎样将excel的科学计数法设置为指数形式?

对了,这个问题中所谓的“指数形式”是指数学上书写的右上标的指数格式,能不能通过单元格设置来做这个格式的转换呢? 一、几个尝试 以下,以数字123000为例来说明。 情况1.转换成数学上的书写方式,如下图的样子&#x…

基于SpringBoot+Vue的二手车交易系统的设计与实现(源码+文档+包运行)

一.系统概述 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统二手车交易信息管理难度大,容错率低&…

Java面试八股之fail-fast和fail-safe的区别

简述fail-fast和fail-safe的区别 定义与基本概念 fail-fast: 定义:fail-fast是一种迭代器机制,当集合在迭代过程中被结构上修改(如添加、删除元素),会立即抛出ConcurrentModificationException异常&…

离岸人民币与人民币国际化

参考 什么是离岸人民币?它有什么用? - 知乎 “人民币就是人民币,为什么要在它前面加上离岸二字?” “既然有离岸人民币,是否有在岸人民币?” 今天我们就简单了解一下什么是离岸人民币。 离岸/在岸人民币…

朗致集团面试-Java架构师

总结 三轮面试,第一轮是逻辑测试性格测试,第二轮是技术面试(面试官-刘老师),第三轮是CTO面试(面试官-屠老师)。如果第三轮面试通过,考官会问你薪资意向,如果满意的话HR就…

5. Mysql的binlog介绍

参考:InnoDB学习(三)之BinLog 1. BinLog介绍 BinLog又称为二进制日志,是MySQL服务层的数据日志,MySQL所有的存储引擎都支持BinLog。 BinLog记录了MySQL中的数据更新和可能导致数据更新的事件,可以用于主从…

2024阿里云4核8G服务器租用优惠价格700元一年

阿里云4核8G服务器租用优惠价格700元1年,配置为ECS通用算力型u1实例(ecs.u1-c1m2.xlarge)4核8G配置、1M到3M带宽可选、ESSD Entry系统盘20G到40G可选,CPU采用Intel(R) Xeon(R) Platinum处理器,阿里云优惠 aliyunfuwuqi…

必应Bing国内广告推广,帮助企业降低获客成本!

搜索引擎广告作为数字营销的重要手段之一,因其精准定位和效果可衡量而备受青睐。而在众多搜索引擎平台中,必应Bing以其独特的市场定位和用户群体成为不可忽视的广告推广渠道。云衔科技作为一家专业的数字营销服务提供商,致力于帮助企业实现高…

代码随想录-算法训练营day15【二叉树02:层序遍历、翻转二叉树、对称二叉树】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第六章 二叉树 part02今日内容: ● 层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2 详细布置 层序遍历 看完本篇可以一口气刷十道题,试一试, 层序遍历并不难,大…

组织机构代码是哪几位?营业执照怎么看组织机构代码?

组织机构代码是哪几位? 组织机构代码通常指的是组织机构代码证上的一组特定数字,它用于唯一标识一个组织或机构。在中国,组织机构代码由9位数字组成,前8位是本体代码,最后1位是校验码。这组代码是按照国家有关标准编制的&#x…

C# danbooru Stable Diffusion 提示词反推 OpenVINO Demo

C# danbooru Stable Diffusion 提示词反推 OpenVINO Demo 目录 说明 效果 模型信息 项目 代码 下载 说明 模型下载地址:https://huggingface.co/deepghs/ml-danbooru-onnx 效果 模型信息 OVVersion { BuildNumber 2023.1.0-12185-9e6b00e51cd-releases/20…

kibana源码编译

一、安装nodejs16.14.2及yarn (一)nodejs 1、下载 https://cdn.npmmirror.com/binaries/node/v16.14.2/node-v16.14.2-linux-x64.tar.gz2、解压 tar -zxf node-v16.14.2-linux-x64.tar.gz -C /app cd /app mv node-v16.14.2-linux-x64 node3、配置环…

redmibook 14 2020 安装 ubuntu

1. 参考博客 # Ubuntu20.10系统安装 -- 小米redmibook pro14 https://zhuanlan.zhihu.com/p/616543561# ubuntu18.04 wifi 问题 https://blog.csdn.net/u012748494/article/details/105421656/# 笔记本电脑安装了Ubuntu系统设置关盖/合盖不挂起/不睡眠 https://blog.csdn.net/…

运动想象 (MI) 分类学习系列 (7) :CMO-CNN

运动想象分类学习系列:CMO-CNN 0. 引言1. 主要贡献2. 提出的算法3. 数据增强策略4. 结果4.1 学科内分类4.2 跨学科分类4.3 数据增强策略4.4 网络可视化4.4.1 短连接可视化4.4.2 滤波器可视化4.4.3 中间特征的可视化 5. 总结欢迎来稿 论文地址:https://www.sciencedi…

Vue3(六):Vue3其他API、Vue3新组件Teleport、Vue2和3区别

一、其他API 1.shallowRef 与 shallowReactive (1)shallowRef 1. 作用:创建一个响应式数据,但只对顶层属性进行响应式处理。 2.用法: let myVar shallowRef(initialValue); 3. 特点:只跟踪引用值的变化&…

C语言学习/复习22----阶段测评编程题

一、阶段测评练习 题1: 题2:

【生成式 AI 精英速成计划】了解如何使用大模型平台、训练与部署以及如何打造生成式AI应用

目录 一、生成式 AI 带来的新挑战二、生成式 AI 精英速成计划三、技术开发技能课程体验最后 一、生成式 AI 带来的新挑战 随着计算能力的飞速提升和大数据技术的广泛应用,生成式AI得以取得显著进展,特别是在深度学习的推动下,机器能够生成前…

Windows系统下查看C语言文件反汇编

一、配置编译器环境变量 1.下载mingw64 MinGW 的全称是:Minimalist GNU on Windows ,MinGW 就是 GCC 的 Windows 版本 。 MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行…