开源 |蚂蚁金服启动分布式中间件开源计划,用于快速构建金融级云原生架构

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 蚂蚁金服将逐步向社区开源 SOFA 中的各个组件,助力更多机构和合作伙伴完成金融分布式转型!

我们很高兴地宣布,今天蚂蚁金服启动分布式中间件(Scalable Open Financial Architecture,以下简称 SOFA 中间件)的开源计划!


2424a767014f626ac957d423058c68248ca3cee0


SOFA 是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,是一套分布式架构的完整的解决方案,也是在金融场景里锤炼出来的最佳实践。


蚂蚁金服期望通过逐步向社区开源 SOFA 中各个组件,来帮助更多机构和合作伙伴完成金融分布式转型,帮助大家更加快速构建稳定的金融级云原生的架构,也期望 SOFA 在蚂蚁体系之外的更大场景下去应用,来进一步锻造改进这套体系,使其更加完善和稳固,并具备更多金融级的属性。所以我们也非常欢迎社区的伙伴和各行业的伙伴能够参与共同探讨、交流和共建。


Why(为什么要做)

SOFA 中间件在蚂蚁内部经历了十年的发展和四代架构的演进,被广泛应用在包括支付,借贷,信用,基金,保险等全金融场景,支撑着蚂蚁平稳度过历次双十一,双十二,新春红包等大考,创造了25.6 w/s 的交易记录,并还在不断刷新这个记录。


从 2015 年开始,蚂蚁金服开启了金融科技对外输出的战略,SOFA 也走出了蚂蚁,甚至跨越了国界,被更多金融机构与合作伙伴所使用,如天弘基金,信美互信,南京银行,PayTM、DANA钱包等。


在与合作伙伴以及客户的沟通、合作过程中,我们发现了 SOFA 的理念和能力也正是很多金融行业的企业所需要的,大家或多或少正在规划或者已经在做类似的东西,但缺乏像蚂蚁金服这么大的流量来提供考验,也缺乏专业团队的长期投入,更缺乏丰富的金融场景和严苛的业务压力来驱动技术持续发展。


随着近几年蚂蚁金服在生态构建上不断完善,以及不断地有更多的公司加入到蚂蚁金服的金融生态中,我们也发现了整个金融生态地复杂性和多样性,SOFA 中间件也需要在更多地场景下被打磨、被完善、被增强。因此,我们选择将 SOFA 逐步开源出来,在贡献给社区的同时,也期待社区、合作伙伴甚至客户,都能够一起参与共建,形成行业标准和最佳实践。


How(怎么做)

为了让 SOFA 能够开源出来,我们投入了大量的重构工作,以可扩展化的方式来层层构建 SOFA 的能力,保证 SOFA 的内部版本和开源的版本采用的是同一个内核。所以 SOFA 的内部版本就是在开源版本之上扩展了内部逻辑和历史版本的兼容逻辑。开源版本的核心逻辑,内外是一致的,并在蚂蚁金服的生产环境中被广泛使用的,同时会随着蚂蚁自身业务诉求的驱动,不断的演进。

 

开源社区有非常多优秀的技术和丰富的生态,为了更好的能融入和对接现有技术体系,尊重并遵守一些社区标准,SOFA 在设计过程中就充分考虑了兼容性和架构分层,充分兼容适配社区标准,实现组件化、可扩展、可替换。


所有的 SOFA 中间件中的组件组合起来可以发挥更大的能力,但是每一个组件都是可以被替换的,比如用户可以选择用 Dubbo 来替换 SOFARPC,或者跟 SOFARPC 对接互通;可以选择 Zookeeper 来作为服务注册发现,也可以选择 SOFA 的服务注册中心来做服务发现;分布式链路追踪组件遵守 OpenTracing 的规范,可以直接和 Zipkin 进行对接等等;Metrics组件会遵循 Metrics2.0 标准,适配 Prometheus 体系等等。


What(要做什么)

本次 SOFA 中间件开源的内容包含了 SOFABoot  SOFARPC 两个组件。


SOFABoot 是蚂蚁金服基于 Spring Boot 构建一个研发框架,整体架构上类似于蚂蚁金服之前开源的Egg框架,遵守微内核,可插拔的理念,我们以标准 Spring Boot Starter的方式,扩展了很多企业级特性,以解决大规模团队开发云原生微服务系统中会遇到的问题,如类隔离,ReadinessCheck,日志隔离等等能力,后续会开放更多内部实践过的特性,如 Spring 上下文隔离,合并部署,动态模块,Tracing、Metrics、Streaming、测试框架等。


同时,蚂蚁的很多技术团队和阿里的技术团队也开放了很多类库和组件,我们都会提供原生的集成能力和 Demo,方便大家更好的整合使用。SOFABoot 100% 兼容 Spring Boot,和 Spring Boot 并非是替代的关系,所有 Spring Boot 中的能力也都可以在 SOFABoot 中使用。


SOFABoot 的 Github 的地址是:https://github.com/alipay/sofa-boot ,欢迎大家使用反馈、贡献代码。(请将网址复制至浏览器中打开即可查看,下同。)

 

SOFARPC 是一个高效,可靠,可扩展的 RPC 的框架,是蚂蚁金服服务化架构的基石。SOFARPC 最早源于阿里内部的 HSF,经过了蚂蚁金服内部多年的发展,在协议,网络,路由,可扩展性等层面都进行了大量的改造和优化的工作,适配了更多金融级的场景。


SOFARPC 在蚂蚁金服内部是被所有在线应用的使用的服务调用框架,截止 2017 年双十一,SOFARPC 已经被蚂蚁 2000 多个系统所使用,生产环境发布的服务数量超过了 23000 个。


SOFARPC 提供了多协议的支持,包括在蚂蚁金服内部被广泛采用,并且高度优化的 Bolt 协议,以及 REST,Dubbo,gRPC 等等主流的协议;也针对内部网关,测试等等场景提供了泛化调用能力;为了解决超大规模流量的预热的问题,提供了服务预热的能力;用户也可以根据 SOFARPC 的扩展机制扩展自己需要的能力。


在后续的版本中,SOFARPC 将会加上分布式链路追踪,Metrics,更多的服务注册中心的支持,CRC 校验等等能力。


SOFARPC 的 Github 的地址是:https://github.com/alipay/sofa-rpc ,欢迎大家使用反馈、贡献代码。(请将网址复制至浏览器中打开即可查看,下同。)

 

除了以上的两个 SOFA 中间件中的组件,在接下来,我们将会陆续开源 SOFA 中间件中的其他的组件,目前这些组件正在进行一定程度地重构中,为开源做准备,敬请大家期待~

 

附本文中提到的链接:


Egg:http://eggjs.org/

SOFABoot:https://github.com/alipay/sofa-boot

SOFARPC:https://github.com/alipay/sofa-rpc

SOFABolt:https://github.com/alipay/sofa-bolt


彩蛋

最后,我们也为对 SOFA 中间件感兴趣的小伙伴们准备了一个微信交流群欢迎感兴趣的同学扫描下方二维码联系加群小助手加入我们 SOFA 交流群哦。

d3bdf54ab5c1d8d79296cfa510a15674518506d9


目录
相关文章
|
1天前
|
机器学习/深度学习 人工智能 Cloud Native
云原生架构的未来展望:如何塑造企业数字化转型之路
【5月更文挑战第27天】 随着技术的快速发展,云原生架构已经成为推动企业数字化转型的重要力量。本文将深入探讨云原生技术的发展趋势,分析其在企业中的应用,并提出一些关于如何利用云原生架构推动企业数字化转型的建议。通过对云原生技术的深入研究,我们将为企业提供一种新的视角,帮助他们更好地理解和应用这一技术。
|
1天前
|
Cloud Native 安全 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第27天】 随着企业加速其数字转型的步伐,云原生技术已不仅仅是一种趋势,而是成为了推动创新和业务敏捷性的必要条件。本文深入探讨了云原生架构的核心原则、关键技术和实施策略,旨在为企业提供一个清晰的云原生技术应用蓝图,以支持它们在不断变化的市场环境中保持竞争力。
|
1天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第27天】 随着数字化转型的深入,企业对信息技术基础设施的要求不断提高。云原生架构作为一种新兴的技术范式,以其灵活性、可扩展性和敏捷性成为推动企业技术革新的关键力量。本文旨在探讨云原生架构的核心组件、实施策略以及面临的主要挑战,为企业采纳云原生技术提供参考。
|
1天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在企业数字化转型中的关键作用
【5月更文挑战第27天】 随着企业数字化的不断深入,云原生架构已经成为推动创新和敏捷性的重要驱动力。本文将探讨云原生技术的基本原理、实施策略以及它们如何助力企业实现弹性、可扩展和高效的IT运营。通过深入分析云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps实践,我们将揭示这些技术如何共同塑造一个灵活、自动化和高度可靠的系统环境,进而加速企业的数字化转型过程。
|
1天前
|
Cloud Native 安全 持续交付
构建未来应用的基石:云原生架构的演进与实践
【5月更文挑战第27天】 在数字化转型的浪潮中,企业急需灵活、高效且可靠的解决方案以应对市场的快速变化。云原生架构应运而生,其不仅重塑了软件开发和运维的模式,也为企业提供了持续交付和自动化管理的可能性。本文将探讨云原生技术的发展历程,解析其关键组件如容器化、微服务及持续集成/持续部署(CI/CD),并分享如何在实践中有效利用这些技术来构建和维护高度可扩展的系统。
|
1天前
|
运维 负载均衡 API
构建高效微服务架构的七大关键策略
【5月更文挑战第27天】 在当前企业级应用开发中,微服务架构已成为实现敏捷、可扩展和灵活部署的主流解决方案。本文将深入探讨构建和维护一个高效微服务系统的七个关键策略,包括服务划分原则、API网关设计、服务发现与注册、配置管理、熔断机制、分布式跟踪及持续集成和部署。这些策略不仅有助于提升系统的稳定性和弹性,还能确保在不断变化的业务需求面前,系统能够快速响应并保持高效的运行状态。
|
1天前
|
机器学习/深度学习 监控 持续交付
构建高效微服务架构:后端开发的新趋势探索深度学习在图像识别中的边界
【5月更文挑战第27天】随着业务需求的快速变化和市场竞争的激烈,企业需要更灵活、高效和可扩展的系统来支持其运营。微服务架构作为一种新兴的软件开发模式,已经成为后端开发领域的热门话题。本文将深入探讨微服务架构的概念、优势以及如何构建一个高效的微服务架构,帮助后端开发者更好地应对业务挑战。 【5月更文挑战第27天】 随着人工智能的不断进步,深度学习技术已经在图像识别领域取得了显著成就。本文将深入探讨深度学习模型在处理复杂图像数据时的挑战与机遇,分析现有技术的局限性,并提出潜在的改进方向。通过实验验证,我们将展示如何通过创新的网络架构、数据增强策略和损失函数设计来提升模型性能。本研究不仅为深度学习
|
1天前
|
监控 安全 数据管理
构建高效微服务架构的五大核心要素
【5月更文挑战第27天】在现代软件开发中,微服务架构以其灵活性、可扩展性和容错性而受到企业青睐。本文将深入探讨构建一个高效微服务架构所需的五大核心要素:服务划分策略、通信机制、数据管理、安全性和监控与日志系统。这些要素是确保微服务架构能够高效运行并适应快速变化需求的关键。我们将逐一解析每个要素的重要性及其实现方法,为后端开发者提供一套全面的指导原则和实践技巧。
|
1天前
|
消息中间件 缓存 数据库
构建高性能微服务架构:从理论到实践
【5月更文挑战第27天】在现代软件开发中,微服务架构已成为实现可扩展、灵活和容错系统的关键设计模式。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计理念、技术选型以及性能优化策略。我们将通过分析真实案例,提供一套实用的指导原则和最佳实践,帮助开发者提升系统的响应速度和处理能力,从而满足不断变化的业务需求。
|
1天前
|
存储 运维 监控
探索微服务架构下的系统监控策略
【5月更文挑战第27天】在当今快速迭代和持续部署盛行的软件工程实践中,微服务架构以其灵活性、可扩展性成为了众多企业技术选型的宠儿。然而,随之而来的复杂性也给系统监控带来了前所未有的挑战。本文深入剖析了在微服务环境中实施有效监控的策略,探讨了如何通过日志聚合、性能指标监控与分布式追踪技术相结合,实现对微服务生态系统的全方位把控。我们将分享一系列实践经验,并讨论监控策略的最佳实践,以期为面临类似挑战的开发者和运维团队提供参考。