从分布式到云原生,建立金融级交易系统

建立金融级的在线交易系统,第一步是要实现金融级分布式的架构。蚂蚁在这方面的代表技术是 SOFAStack 和 OceanBase,目前都已对外商业化,并有丰富的案例。SOFAStack 代表的是在整个应用层或者无状态服务这个面上,如何去做可伸缩、可扩展的一套架构。OceanBase 代表的是以数据库为代表的存储或者是有状态服务层面,如何在架构上面去进行分布式。它们拥有以下四个特性:

  • 高可用——99.99%+ 的可用性保证,确保系统始终连续运行不中断。

  • 一致性——在任何异常情况下数据最终一致,确保资金安全。

  • 可扩展——支持应用级、数据库级、机房级、地域级的快速扩展。

  • 高性能——存储采用读写分离架构,计算引擎全链路性能优化,准内存数据库性能。

而这四个关键的特性都是金融业务最为看重的,而且需要在应用和存储上端到端实现。

再比如,在可扩展性方面,有些系统号称做了分布式架构,实际可能只是用了微服务框架,做了应用层的服务化改造,但数据库层既没有用水平扩展技术,也没用分布式数据库,整个系统的可扩展性就卡在数据层的短板上。

所以,真正的分布式系统需要实现端到端的分布式,才能实现无限可扩展和高性能,而真正的金融级分布式系统则要实现端到端的高可用和一致性。

image

高可用架构最关键的目标是数据不丢,业务不停。在这个目标的基础上,我们设计并实施了三地五中心的异地多活架构。它的核心优势包括城市级容灾、低成本交易、无限可扩展,以及 RPO=0、RTO<30s。

在 2018 年的云栖大会上,我们做了一次剪网线的 Demo,演示了整个架构层面上如何做到跨城市多活,及其在灾难情况下的快速恢复能力。同时,在高可用达标的情况下,我们也做了很多跟金融风险相关的事情,总结起来就是在高可用的基础上还要做到资金的安全、变更的免疫和故障的快速恢复。