蚂蚁金服开放计算架构:下一代金融级计算架构
当前互联网技术早已进入了大数据、人工智能的阶段,各种计算模式,计算引擎层出不穷。从10年前的MapReduce分布式计算开始,几乎每三年就会出现一次新的计算引擎更迭,从开山鼻祖的Hadoop,到后来流式计算的Storm,之后出现了基于内存迭代计算的Spark红极一时,然后到今天Flink又以迅雷不及掩耳之势走入大家的视野。同时不仅仅是数据计算,机器学习框架最近几年也是层出不穷:Keras,PyTorch,Caffe2,TensorFlow……可以说每一个计算引擎的兴起,都意味着计算技术一次新的突破。
伴随着计算引擎的发展,如今互联网商业服务越发依赖大数据及人工智能技术,从最初的数据仓库分析型业务,已经逐渐演变成现在实时性更强,复杂度更高的智能决策服务。
两者的结合为更多的商业创新带来可能,但是背后的技术现象却是技术体系越发庞大与复杂,各个计算引擎的交替使用带来学习成本的直线飙升,同时研发成本的增加与效率的降低也是普遍问题。比研发效能降低更为糟糕的是不同的计算引擎之间数据无法共享及打通,绝大多数场景需要使用中间存储进行转储,造成了存储资源的浪费与数据量的成倍放大。除此之外,诸如缺少统一元数据,存在数据安全等隐患始终威胁着日益庞大且臃肿的系统体系。
面对这些不可忽视的问题,蚂蚁金服在2018年提出了开放计算架构的概念,希望通过设计一套符合当下计算体系,同时又能应对未来计算趋势的技术框架,来解决计算引擎更新、统一研发体系、数据共享互通、数据风险防控等几方面问题。
首先在计算引擎方面,开放计算框架认为计算引擎始终是持续更新的,因此需要有一套统一的元数据及状态管理,针对不同的计算作业状态进行统一管理,达到兼容任何一种计算引擎,并且实现插件化能力;另外在研发层面,不同的计算引擎有不同的研发模式与API接口,要想统一各种引擎的研发能力,需要在顶层进行计算DSL的封装。为此,我们推出了SmartSQL,在标准SQL规范之上扩展了部分功能及语法,希望用最简单通用的语言,描述绝大部分的计算及机器学习作业;另外,为了解决多种引擎数据无法打通及共享的问题,蚂蚁金服自主研发了统一存储系统,支持多种类型的数据存储格式,同时支持一份数据不同格式之间的自动转换及迁移,极大地简化了引擎层对存储的使用,同时节约了大量成本。
不只是传统的计算及存储形态,在目前的互联网服务中有大量的关系型数据,同时诸如社交,风控,反洗钱,营销等场景都对关系计算有大量的需求,因此图计算作为一种新的数据形态也是蚂蚁金服重点投入的领域。在开放计算架构之中,包含了离/在线一体的图计算引擎及存储,从使用场景,可以覆盖在线、实时、离线各个场景,用于支持不同时效性的业务。从功能上,具备金融级图数据库,超大规模图计算,流图混合的动态图计算以及超快内存图等计算能力,覆盖了不同量级的数据计算能力。另外与其他计算引擎一样,蚂蚁金服也研发了基于SQL规则的Graph SQL作为统一图查询语言,用于覆盖所有的图计算引擎。
在机器学习方面,开放计算架构还包含了之前已经开源的SQLFlow以及刚刚推出的ElasticDL弹性深度学习框架。SQLFLow作为连接数据与训练的桥梁,在标准SQL的基础上扩展了针对机器学习的语法,让数据分析人员可以像写SQL一样训练出自己的数据模型。另外SQLFlow支持市面上大多数机器学习引擎,以及ElasticDL弹性框架。ElasticDL是基于k8s体系的弹性深度机器学习框架,兼容TensorFlow引擎与Keras语法,通过弹性调度达到减少训练等待时间以及训练运行时间的目的。
这一整套体系又称为Big Data Base,就是蚂蚁金服摸索出来的金融数据智能的最佳实践,即下一代大数据的基石。
在9月27日杭州云栖大会第三天,蚂蚁金服将在数字金融技术专场上分享开放体系下的金融数据实践,包括蚂蚁开放计算架构的技术细节,欢迎届时关注。
作者:缪克卢汉