关于蚂蚁金服:蚂蚁集团宣布云原生大规模集群化机密计算框架-KubeTEE-开源

近日蚂蚁团体在上海外滩大会可信原生技术论坛上发表开源 KubeTEE。 KubeTEE 是一个云原生大规模集群化秘密计算框架,旨在解决在云原生环境中 TEE 可信执行环境技术特有的从开发、部署到运维整体流程中的相干问题。这是业界首个开源的 TEE 大规模集群整体解决方案。 背景:2018年,蚂蚁团体开始全面转型云原生架构。2020 年,该团体又提出了“可信原生(Trust-Native)”的理念,将可信任性渗透到云原生架构的各层之中,打造全栈可信赖的云计算基础设施。 而作为爱护利用的运行平安的技术,秘密计算理念以及可信执行环境TEE (Trusted Execution Environment) 也被蚂蚁引入并踊跃实际,造成了 SOFAEnclave 秘密计算技术栈。 SOFAEnclave 包含三大组件: Occlum LibOS:解决业务开发过程中的问题,如传统TEE利用开发须要切分重构,依赖SDK特定编程语言等问题;HyperEnclave:解决TEE部署环境问题,如硬件TEE不遍及、软硬件TEE应用一致性等问题;KubeTEE:解决TEE集群问题,包含云原生环境特有的从开发、部署到运维整体流程中的相干问题。此前,Occlum LibOS 曾经开源,并募捐给了 CCC(Confidential Computing Consortium)秘密计算联盟。CCC 秘密计算联盟隶属于 Linux 基金会,由业界多家科技巨头发动,致力于爱护计算数据安全。Occlum 募捐给 CCC,则将成为 CCC 社区首个中国发动的开源我的项目。 KubeTEE 则是云原生场景下如何应用 TEE 技术的一套整体解决方案,包含多个框架、工具和微服务的汇合。其联合了 Kubernetes 和 TEE 两个重要技术方向,解决可信利用从单点到容器化集群施行过程中的相干问题。 KubeTEE 的指标之一是提供 Serverless 状态的秘密计算服务,比方 Trusted FaaS,让业务方只须要实现业务外围逻辑,就能够简略地将之提交到 TEE 环境中运行,而不必反复整套的业务服务开发、部署和运维的流程。 KubeTEE:金融级云原生的秘密计算集群针对 Enclave 集群化方面的问题,蚂蚁团体去年就开始思考如何能更高效和简洁的应用 TEE 资源提供秘密计算服务,他们的解决办法是 KubeTEE——联合云原生,提供秘密计算集群服务。 一方面防止了业务用户反复进行基础设施建设,另一方面用户注册账号即可应用秘密计算集群服务,大大降低了秘密计算门槛,进步了易用性和利用率。KubeTEE 为了更高效的应用物理资源,基于 k8s + container 更优雅地部署和治理秘密计算镜像和 EPC 资源。基于 k8s 的容器调度能力,KubeTEE 能够疾速实现秘密计算服务资源的横向扩缩容。概括来说,他们心愿以一种更加云原生的形式来应用 Enclave 和秘密计算集群资源。 ...

October 1, 2020 · 1 min · jiezi

蚂蚁金服-Service-Mesh-深度实践

作者丨敖小剑 2019 年,蚂蚁金服在 Service Mesh 领域继续高歌猛进,进入大规模落地的深水区。本文介绍了 Service Mesh 在蚂蚁金服的落地情况和即将来临的双十一大考,以及大规模落地时遇到的困难和解决方案,助你了解 Service Mesh 的未来发展方向和前景。 一、前言大家好,我是敖小剑,来自蚂蚁金服中间件团队,今天带来的主题是“诗和远方:蚂蚁金服 Service Mesh 深度实践”。在过去两年,我先后做过两次 Service Mesh 的演讲: 2017 年,当时 Service Mesh 在国内还属于蛮荒时代,我当时做了一个名为“Service Mesh: 下一代微服务”的演讲,开始在国内布道 Service Mesh 技术;2018 年,做了名为“长路漫漫踏歌而行:蚂蚁金服 Service Mesh 实践探索”的演讲,介绍蚂蚁金服在 Service Mesh 领域的探索性的实践,当时蚂蚁金服刚开始在 Service Mesh 探索。今天,有幸第三次,给大家带来的依然是蚂蚁金服在 Service Mesh 领域的实践分享。和去年不同的是,今年蚂蚁金服进入了 Service Mesh 落地的深水区,规模巨大,而且即将迎来双十一大促考验。 <u>备注:现场做了一个调研,了解听众对 Servicve Mesh 的了解程度,结果不太理想:在此之前对 Service Mesh 有了解的同学目测只有 10% 多点(肯定不到 20%)。Service Mesh 的技术布道,依然任重道远。</u> 今天给大家带来的内容主要有三块: 蚂蚁金服落地情况介绍:包括大家最关心的双十一落地情况;大规模落地的困难和挑战:分享一下我们过去一年中在大规模落地上遇到的问题;是否采用 Service Mesh 的建议:这个问题经常被人问起,所以借这个机会给出一些中肯的建议供大家参考。二、蚂蚁金服落地情况介绍(一)发展历程和落地规模 Service Mesh 技术在蚂蚁金服的落地,先后经历过如下几个阶段: ...

November 5, 2019 · 6 min · jiezi

提效降本蚂蚁金服如何用融合计算改造在线机器学习

去年春节期间支付宝推出的集五福的活动可谓风靡一时,每张福卡背面都有刮刮卡,里面有来自蚂蚁金服、阿里巴巴以及合作伙伴的上百种权益。集五福的活动集中在春节前的几天,具有很强的时效性。所以如何实现权益和投放人群的自动匹配,解决系统的冷启动问题,优化转化率和提升用户体验,就成了一个在线学习的优化问题。 之前我们搭建一个这样的系统需要的模块非常繁杂。我们需要日志收集、数据聚合、样本的拼接和采样等流处理任务,需要对接模型训练、模型验证等机器学习模块,需要有把模型实时加载的模型服务,还需要其他的配套设施等等。众多模块的衔接极大地增加了系统的复杂性。 由于涉及的系统比较多,我们之前的系统遇到了比较多的问题。比如大促时为了保证高优链路的稳定性,上游某些数据处理的链路就会被降级了,但下游同学并不知情。另外一个很常见问题的是流批逻辑不一致,需要离线特征来训练基准模型,同时在线计算的特征来对模型进行实时更新。这两个模块一个在离线一个在线,曾经出现过处理逻辑的细微差别对业务效果造成了很大的影响。 总结下来,我们曾经遇到的坑可以归结为三类: SLA:整个链路的SLA会受到每个模块的SLA的影响,并随着模块的增多而放大,稳定性成为制约业务发展的重要因素。系统效率:模块之间的衔接多数是通过数据的落盘来进行,模块间的调度通过系统调度来实现,造成不必要的I/O、计算和网络开销。开发和运维的成本:各个模块风格迥异,开发模式、计算框架、甚至代码风格都不一致,开发和运维对接时需要花很多时间去熟悉系统,降低业务开放的效率。 一个理想的系统应该提供什么样的能力呢?可以从“稳快简”三个方面来讲:首先从数据来讲它需要保证数据和计算一致性,实现整个链路端到端的SLA,数据一致性和链路的稳定是保障业务稳定的基础。第二是我们需要去优化系统效率,我们希望把这十几个系统的衔接转换成系统内部的衔接,希望把这些作业调度转换成任务的调度,通过这样转化我们希望把计算与计算之间协同调度,从而提高系统效率和降低网络带宽使用的目的。一个融合的系统也可以对开发和运维提供非常大的便利,以前需要对接十几个系统,现在只要对接一个系统就可以了。以前我们在应急的时候需要回溯好几个业务来发现问题,现在融合在一起的系统调试也会更加容易。 在线机器学习最外层需要透出数据处理、模型训练、模型服务三个能力。这三个能力反映到对计算引擎框架上的需求是敏捷的调用机制、比较灵活的资源管控,以及比较完善的容错机制。上层的系统往往是通过不同编程语言来实现的,因此还需要有多语言接口。通过对底层需求的考量以及现在各框架的特点,最后我们选择了Ray为融合计算的底座。 Ray是由伯克利大学RiseLab实验室发起,蚂蚁金服共同参与的一个开源分布式计算框架,它提出的初衷在于让分布式系统的开发和应用能够更加简单。Ray作为计算框架可以帮我们实现上面“稳快简”三个目标。Ray作为计算框架具有敏捷的调度机制,用它可以一秒钟进行上百万次任务调度,它也可以根据计算对资源使用的需求实现异构调度。 在目前比较流行的分布式框架,都有三个比较基础的分布式原语,分布式任务、对象和服务。而我们常用的面向过程的编程语言中,也刚好有三个基本概念,函数、变量和类。这三个编程语基本概念刚好可以和分布式框架的原语对应起来。在Ray系统中,可以通过简单的改动,实现他们之间的转换。 左边是一个简单的例子,在这个函数前面需要加入一个“@remote”修饰符,就可以把一个函数转换成为分布式任务。任务通过“.remote”调用执行,返回值是一个变量,又可以参与到其他计算中。 右边是另一个例子,通过加“@remote”修饰符的方式可以把一个类转变成服务。类中的方法可以通过“.remote”调用变成一个分布式任务,和函数的使用非常相似。通过这种方式可以实现从单机程序到分布式任务的转变,把本地的任务调度到远程的机器上进行执行。 Ray上应该做怎么样的调度,衡量指标就是系统的效率问题,系统的效率很多时候取决于计算和数据的组织方式,比如说我们要计算Add(a,b),首先这个函数在本地会被自动注册并且提供给本地调度器。之后通过全剧调度器和第二个节点的本地调度器一起协同工作,把A备份到第二个节点执行Add这个操作。它还可以根据A和B的数据大小来进行进一步的调度和控制优化,A和B可以是简单数据类型,也可以是比较复杂的变量或者矩阵。 Ray上面提供多语言API接口。由于历史原因,在蚂蚁金服内部流式计算使用最多的语言是Java,而机器学习建模比较普遍使用的语言是Python。我先希望重用Java语言实现的流处理算子,同时保留Python进行机器学习建模的便捷性。Ray上面提供这样的多元化支持就非常方便我们做这个事情,用户在上层开发的时候可以可以方便地使用Java和Python分别进行流处理和机器学习模型的开发。 对于在线机器学习来说,它最核心需要解决的问题是要打通流计算和模型训练,那我们需要使用一个介质,这个介质能够比较方便的将两者衔接在一起。之前我们介绍Ray的几个特点,如提供多语言的接口、灵活的调动机制,这是因为这两个特点在Ray上可以比较方便做这个事情,Ray可以起到衔接的作用。数据处理的最后一个节点是流计算的输出,worker节点消费数据,是模型训练的输入。Ray就可以通过调度机制把这两个计算调度在一个节点上,实现数据共享从而实现两个模式的打通。通过这种方式不仅可以兼容流计算和机器学习,也可以将其他模式进行衔接。 计算中DAG概念最开始是为了解决多阶段分布式计算的效率而提出的,主要思想是通过调度减少计算时的IO。但是以前的计算DAG,在任务执行的时候它就已经确定了,但我们在机器学习的任务里面,很多时候我们会需要设计新的模型,或者对模型的超参进行调试,我们希望看到这些模型能被加载到链路上,看到业务效果的同时又不想线上已经有的模型的训练和服务被中断。在Ray系统内部,计算的过程中可以动态的生成另外一个节点,我们可以利用这个特性来增点和变,从而动态的对DAG进行局部修正。 在线系统和离线系统之间比较大的区别,在于如果一个离线系统里的任务挂了,一般来说可以通过重启机器的方式来解决,但对在线系统来说,出于时效性的考虑,我们不能简单的通过重启机群回溯数据的方式来解决。因此就需要有比较完善的容错机制。我们在模型训练的时候可以利用Ray的Actor来拉起模型训练的worker和server节点。如果worker或者server节点处于不健康状态,我们就可以利用Actor的容错特性通过血缘关系来对数据和计算进行恢复,从而实现容错的训练。 我们比较追求链路的时效性,模型能够尽快的拟合实时数据里。但是追求时效性的同时也要保证整个链路的稳定性,在敏捷和敏感之间达到平衡。我们从三个方面,系统稳定性、模型稳定性、机制稳定性来保障整个链路的稳定性。 系统稳定性,里面包括数据实时性和强一致性保障。模型稳定性,我们希望设计的模型能够拟合实时数据流,但同时要防止在线学习链路在各种不确定性因素下,如数据噪音,造成的效果退化。因此我们需要考虑在线特征和离线特征的组合,在模型设计上需要考虑到深层模型和浅层模型对数据的敏感性和噪音的容忍度。机制稳定性,赛马机制、快速回滚策略。除了之前用Ray来实现融合以及它带来的好处,我们也做了非常多的模块建设,TF融合、稳定性保障、样本回流、延迟样本修正、数据共享、流批一体、端到端强一致、模型增量导出。我们把这个平台上线了支付宝的几个场景,从下面的几个数字可以一探效果: 99.9%的全链路SLA业务指标有2%到40%的提升几十分钟模型延迟到4、5分钟,并且可以根据业务的需求进一步降低机器使用降低了60%我们从去年8月份开始建设,今年2月份开始上线第一个场景,在支付线财富线也都取得了不错的效果,接下来我们会推广到蚂蚁金服的其他业务线上。 基于融合计算机器学习,它是融合计算和机器学习这两种模式的有机组合,实现优化资源共享。我们通过这两方面的探索初步验证了融合计算的框架,融合计算是旨在数据共享来进行计算模式的兼容,融合的本质是开放,开放的基础是实现数据的互通,只要我们能够方便的实现各模式之间的数据互通,并且能够保障它们数字的实时性和端到端的一致性,就可以实现复杂场景里面需要多种模式进行组合的计算。模块的衔接就像搭乐高积木一样,基本的模块可能只有几种,但是搭建出复杂且多变的系统。 阿里云双11领亿元补贴,拼手气抽iPhone 11 Pro、卫衣等好礼,点此参与:http://t.cn/Ai1hLLJT 本文作者:缪克卢汉 阅读原文 本文为云栖社区原创内容,未经允许不得转载。

November 4, 2019 · 1 min · jiezi

蚂蚁金服联合IDC发布中国金融级移动应用开发平台白皮书-金融机构加速执行移动优先战略

11月4日,蚂蚁金服联合国际数据公司IDC在第二十七届中国国际金融展上发布《移动金融科技助力新时代金融机构转型升级——中国金融级移动应用开发平台白皮书》(以下简称《白皮书》)。《白皮书》指出,中国⾦融市场正在经历剧烈的变⾰,⾦融业务呈现出移动化、智能化、场景化态势,移动应⽤需求大量爆发,推动着⾦融机构加速执⾏移动优先战略。 移动端成金融机构零售转型的重要载体,战略地位日益凸显《白皮书》认为,随着IT领域的新兴技术⾰命,企业数字化转型浪潮正在不断重塑各⾏各业的运⾏格局和发展⻛貌。以金融业为例,利率市场化、⾦融脱媒以及互联⽹跨界竞争等多重因素动摇了传统金融机构的盈利基础,使中国金融市场正在自内而外地发生巨大变革。 在此背景下,金融机构纷纷开启零售转型战略,以金融科技创新为抓手,为企业发展赋能。移动端作为金融机构重要的对外渠道之一,已成为零售转型的重要载体。利用优质的移动端设计提供精细化服务,吸引更多的个人客户长期驻留,是金融机构应对市场挑战、实现长期发展的必然选择,移动优先战略成为金融机构面向未来的发展共识。 《白皮书》显示,在⾦融科技的推动下,⼀⼤批传统线下业务通过技术创新转移⾄线上运营,⽤⼾不再受到银⾏服务时间和空间的限制,随时随地的享受移动端带来的便捷性,⽤⼾体验获得了⾰命性提升;保险公司⼤⼒拓展移动渠道,通过保险移动展业,以更加便捷⾼效地⽅式实现全业务触点的销售及管理,降低获客成本;证券企业则重点利⽤新技术提升信息和数据处理的时效性,满⾜客⼾对移动端⾏情资讯的传递和承载需求。 一站式移动开发平台mPaaS,助力金融机构移动优先战略落地《白皮书》指出,金融业务的移动化、场景化、智能化趋势,推动金融移动应用需求的爆发性增长,对金融机构围绕移动端的业务开发和保障能力提出极大挑战。金融机构迫切需要引入新一代移动设计开发思想,利用先进的移动应用开发平台实现在开发、运维、管理以及快速迭代方面的一系列变革。 蚂蚁金服移动金融技术总监祁晓龙认为,金融级移动应用开发平台应具备统一的开发框架,拥有强大的技术整合和集成能力,有助于打造基于移动中台的能力输出,满足金融行业对移动开发平台技术先进性、安全合规性和高稳定性、高可用性等一系列特殊要求。 基于对金融市场的洞察和全新用户行为的理解,蚂蚁金服移动开发平台mPaaS借助统一的客户端开发框架和蚂蚁特有的金融级移动中台能力,有效地加快研发效率,增加对APP动态管控及千人千面的数字化运营能力。同时基于“后台连接服务”构建与服务端的数据、多媒体传输通道,确保全链路的稳定、安全和高效。 移动端创新技术方面,mPaaS提供智能推荐、语音识别、图像识别、生物识别、小程序等能力,改善产品体验,助力业务创新。 安全合规方面,mPaaS提供IPv6、国密、容灾等特色行业能力,满足监管合规要求。同时辅以应用加固、安全键盘、IFAA生物认证及数据加密能力,充分保障数据在客户端本地、传输过程中的安全性。 目前mPaaS已服务中国农业银行、广发银行,华夏银行,西安银行、国寿保险、财通证券等众多B端客户,为国内国际用户都带来优质的移动端体验。 蚂蚁金服全栈式金融科技体系,助力金融业全域数字化转型科技是面向未来的核心驱动力。基于对未来的洞察和蚂蚁金融科技开放的实践深耕,蚂蚁金服在金融领域构建了一个自底向上的全栈式金融科技体系,从具有金融级别支撑能力的分布式计算平台等底层技术,到以人工智能、区块链等为代表的应用技术,再到智能风控、生物核身等金融级专有技术,以及一站式的移动开发平台mPaaS,形成完整的技术堆栈,助力金融机构快速打造新一代超级移动金融平台与大数据智能运营体系,推动金融机构转型升级。 据悉,包括蚂蚁金服移动开发平台mPaaS、分布式中间件SOFAStack、分布式关系数据库OceanBase等在内的产品和解决方案正通过阿里云新金融统一对外输出,服务各种类型的金融机构。而在未来,还会有越来越多的蚂蚁金服技术产品通过阿里云新金融对外输出。在第二十七届中国国际金融展上,这些世界级的解决方案进行了亮相,并吸引了诸多关注。

November 4, 2019 · 1 min · jiezi

支付宝王益40岁写30年代码是一种什么体验

对于蚂蚁金服研究员王益而言,2019年是个颇有纪念意义的年份。今年他整40岁。从10岁开始,写代码整30年。这30年来,他当过“不务正业”的学生,创纪录地在大一就考下系统分析员,“单枪匹⻢”闯荡过从国内到硅谷的多家知名互联网科技公司,和AI领域许多传奇人物都有所交集。不惑之年对于许多工程师来说,或许已是需要焦虑的年龄,但40岁的王益在蚂蚁金服每天都过得很充实:起床,自由泳一千米,然后去做他最喜欢的事——写代码和组织大家一起写代码。2019年9月11日,在上海举办的Google开发者大会上,蚂蚁金服研究员王益分享了新开发的分布式深度学习系统ElasticDL。这是他来到蚂蚁金服的一年之中所做的第二个开源项目,主要用于大幅提升集群总体利用率以及深度学习团队的工作效能。之前开源的 SQLFlow系统在短短的几个月之间,已经在GitHub上获得了三千多颗星星。 2019对于王益而言是个颇有纪念意义的年份,今年他整40岁,写代码整30年。 这听上去是一件不可思议的事——30年前,上世纪的80年代末,他在⻓沙上小学,全城都很难找出一位能教编程的老师,个人电脑更是一个陌生名词,一台以苹果2为原型、可以用BASIC语言编程的 “中华学习机”售价7000人⺠币,在当时几乎可以买下一套房子。幸运的是,王益在10岁那年得到了这样一件贵重的礼物,从这台学习机和一本BASIC语言教材开始,他开启了与代码结缘的人生。 “我那时不是个好学生,经常受‘别人家的孩子’打击,老师和同学都觉得写代码是不务正业。”回想起30年来的经历,这位清华博士、足迹从国内到硅谷历经多家知名互联网科技公司的学霸笑谈自己“活得比较任性”,“但我就是想做与众不同的事。别人越说这样不行,我就越想用这种方式证明自己。” 初中毕业那年的暑假,他用“中华学习机”和自己焊接的电路板,把自家的老式“威力牌”双筒洗衣机改造成了自动洗衣机。同时,他用Apple BASIC语言和6502汇编混合编程,写了人生中第一个游戏。高中三年,其他同学努力备考,他却加班加点自学了大学计算机系所有课程,随后参加计算机水平考试,先后获得了程序员、高级程序员、以及最高级别系统分析员资格。2018年,他获得Google APAC Innovation Award。从不断摸索代码世界的少年时代,到专注于AI基础架构和系统开发的求学工作生涯,这份“任性”一直伴随他走到今天。 “我经常从零开始。选择去做什么的一大标准是‘有意思’。” 相比于规划一条稳妥的职业发展道路,王益更愿意顺应自己强烈的好奇心,去选择最困难但最有意思的探索方向。他在中国和美国互联网公司都工作过,也分别在美国公司的中国分部和中国公司的美国分部工作过。他的足迹遍及国内BAT三家。任性的是,每次跳槽, 他都从一个人coding一个创新项目开始,吸引同事们加入,从而组建团队。虽然2011年就在腾讯作为广告系统技术总监,但是他从不在跳槽时要求带何等规模的团队。 2014年,王益带着妻子和两个月大的女儿离开腾讯移居硅谷。“一切都归零了。工资减半。”他笑笑说。不过凭着多位学界和业界领袖的推荐,他很快就安顿下来,不到一年就开始在硅谷创业,作为Head of Research Scienets 参与创建了AI创业公司 ScaledInference。这是一家人才济济的创业公司。人工智能行业的领袖人物、加州大学伯克利分校的Michael Jordan教授是这家公司顾问。陆奇曾代表微软到访,讨论技术合作。“可惜我们不够关注业务落地,做的不够好。技术研发一定要有落地的能力。”事后,王益不无遗憾的说。 在加入蚂蚁之前,王益在百度硅谷研究院工作,负责开源深度学习系统PaddlePaddle。在历经两年的艰苦开发,新一代技术Fluid开始系统地落地百度各个业务之后,他发起了他在 PaddlePaddle的最后一个子项目——一条太阳能驱动的无人驾驶船。这是一条双体船,由他和五岁女儿的两条划艇构成。船上的笔记本电脑运行基于immitation learning的人工智能系统,自动学习驾驶者的技巧。为了船体稳定,他在自家⻋库里焊接了连接两条划艇的金属框架。便于拆装的结构,可以装上他的皮卡,方便下水测试。 做出加入蚂蚁金服的决定,也是出于同样的理由——“有意思”。“这里的业务很新颖,对AI 有着更加多样化的需求。”如何用AI解决金融行业的问题,是和他以往所面对的完全不同的全新挑战。 SQLFlow:分析师与AI模型间的翻译加入蚂蚁金服不久,王益就意识到自己之前的朦胧猜想越来越清晰地被验证:和主要依靠流量与广告赚钱的传统互联网公司不同,蚂蚁金服不是纯互联网公司,它有独特的商业模式和对于工具的独到需求。 此前的十多年中,他的大部分经历是在传统互联网行业做搜索推荐技术,这一类业务所需的模型总数比较有限,只需要算相关性的模型、排序的模型等,一个成熟的模型通常会有几十上百人维护,每年修改调整去提升性能。但在蚂蚁金服,这种模式被颠覆了。因为金融行业的数据远比社交、电商和搜索引擎的数据要稀疏,很难完全靠机器来挖掘出规律,必须依赖金融专业分析师的智慧。分析师大量使用SQL语言来验证想法,或者进一步做探索,这些结论对金融业务非常关键。 每一位分析师平均每天要提交很多个AI任务,这些任务对AI模型的需求各不相同,差异性特别显著。但是,模型是建模团队用Python语言描述的,分析师们如果要调用模型,要么需要学习Python语言,要么需要专配一位工程师,效率难以显著提高。 语言不通,所以需要翻译,那么能否在SQL和Python之间也设立一个翻译? 基于这样的想法,王益和团队一起开发了SQLFlow,这个系统好比一个“翻译机”,能将分析师们输入的SQL命令翻译成Python语言,这样一来,分析师无需学习Python,使用SQL语言就能够处理数据、训练AI模型,并使用训练好的模型来回答业务问题。这套系统更重要的作用,是重新界定了分析师、建模团队和工具开发团队的责任,让同一个机构里的这三个工种有了清晰的分工,有效形成合力。 ElasticDL:一个“聪明”的智能学习系统通过SQLFlow被调用的模型,会基于基础架构来进行分布式执行,这套分布式的智能学习系统,就是刚刚开源的ElasticDL。ElasticDL基于TensorFlow2.0构建,是面向未来的下一代技术,其很重要的独特之处,就在于它很“聪明”。 首先,它能和SQLFlow一起,补足简短的SQL程序翻译成复杂的Python程序的过程中所需的信息。根据深度学习模型的数学特性,它能够决定用什么样的方式来进行计算,还能在计算过程中智能地决定一些参数。 其次,它的容错和弹性调度机制,能让集群的利用效率更高。用户提交需求之后,不再需要“排队”等待资源释放才开始计算,计算会“插空”进行,这样闲置和等待时间更短,大幅度减少了浪费在等待上的系统资源和人力资源。 在数据收集能力极大提升的今天,拥有能算“大”数据的能力,比算得快更为重要。这是王益一直未变的观点。ElasticDL的开发,着眼之处不仅是计算本身的提速,更是针对云计算时代中,数据量大且多人共用集群的特点而进行的调度优化。“等待的时间有时会占到60%-80%,如果不能有效减少这部分的浪费,只是提升计算速度的话,对整体效率的提升就是杯水⻋薪。”王益说,但是ElasticDL的弹性调度能在资源不足的情况下,有多少就先调用多少,让计算尽快启动。 ⻓远看来,ElasticDL还将支持各种学习模式,以顺应金融行业对AI的多种需求。很多在传统互联网行业可有可无的训练模式,在金融行业都很有广阔的应用场景,比如保障数据安全的同时还能共享数据背后规律的共享智能,或者建立可以进行各种大胆试验的虚拟环境,这些面向未来的需求,在ElasticDL的设计之中也有所考虑。 对于一直在做AI基础架构的王益来说,对AI有着各种不同需求的金融行业,是一片全新的驰骋疆场。无数新的问题等待他去尝试,去寻找新的解法,让他乐此不疲。 实践出真知,无需等待理论完美证明“数学模型和分布式架构是互相影响的,只了解其中任何一面,在这个领域都做不好。要为深度学习的架构去改数学模型,也要因为数学模型的数学特点去做架构调整。” 站在今天回顾过去做AI基础架构的十多年,王益觉得这是自己所学到的最重要一课。 这一想法的首次验证,是在他2009年离开Google进入腾讯之后写出的Peacock系统。和在Google所做的语义理解项目不同,这次他将算法和分布式架构一起考虑调整,让语义理解的规模扩大了上千倍,后来集结成了论文发表在ACM Transactions on Intelligent Systems and Technology杂志上,广为业界知晓。 2015年,他进入百度硅谷参与语音识别项目Deep Speech 2,这一项目不仅被MIT科技评论评为 2016年全球十大科技突破之一,也成为他了解深度学习的一个契机。他一度坚持要有完美的理论论证才能进入实践验证,因为深度学习的理论未经严格推敲,他一直认为只有统计学习才是“正道”。 在百度,王益获得深度学习科学家徐伟的推荐,去负责深度学习平台PaddlePaddle。在不断探索解决实际问题的过程之中,他的想法改变了。 “并不一定先要有完整论证的理论才去进行实践,也可以先实践,实践出真知。实践之后再总结提升为理论。”王益说,“这就像是在牛顿发现力学原理之前的几千年前,人类就已经利用杠杆原理修起了金字塔。” Code Review:从最初的震撼到⻓年的习惯今年5月,SQLFlow宣布开源,之后仅四个月,ElasticDL也宣布开源,这在蚂蚁金服的历史上并不多⻅,却是王益的坚持。他认为唯有开源才能保证信息透明,唯有让代码直接面对全社会,才能全方位的接受审视和检验,对写代码的人自身来说,也是一种自我约束。 “开源和codereview不仅是个技术问题,更是管理学问题、社会学问题,关系到如何把大家组织起来变成更高效的团队。”王益说。 Code Review对他自己而言,也是人生中一段难以磨灭的经历。他用“最初的震撼”来描述12年前初出校⻔加入Google中国时的体验。当时他已经写了18年程序,手握系统分析师资格,还特别研究过了Google的Code style,所以初次遭遇Code Review时并没有太当回事:“以为自己写了这么多年程序,怎么都还行吧。” 但现实是⻣感的:他在Google写出的第一个程序,总共不过100行代码,却被来自美国的同事和好友Jerad提出了120行意⻅。“当时深受打击,简直觉得屈辱。” 他压制了情绪,仔细去看那些意⻅,这才发现每一条都真诚且很有帮助。“从那一刻起, Code Review 成为了我们的工作方式。”每天和这些同事们一起coding,互相review,让中国工程师们很快知道了应当关注哪些地方,应当如何沟通合作。因此,不管是腾讯的 Peacock,百度的PaddlePaddle新版本Fluid,还是蚂蚁的SQLFlow 和 ElasticDL 都是王益先开发出原型,再吸引感兴趣的同事一起来完善。 ...

October 17, 2019 · 1 min · jiezi

云原生时代蚂蚁金服公开了新的金融混合云架构

蚂蚁金服在过去十五年重塑支付改变生活,为全球超过十二亿人提供服务,这些背后离不开技术的支撑。在 2019 杭州云栖大会上,蚂蚁金服将十五年来的技术沉淀,以及面向未来的金融技术创新和参会者分享。互联网技术发展日新月异,我们正在进入云原生时代,这个过程中金融行业要如何拥抱云原生?在近两年蚂蚁金服将云原生在金融领域落地,沉淀下一些实践经验,接下来我想分享在蚂蚁的演进过程当中,我们心中的云原生是什么样的,在金融领域落地的时候遇到什么问题,以及我们是怎么解决的。 经过多年云计算的蓬勃发展,上云已经不是太大问题,接下来的问题是怎么把云用好,用得更高效。RightScale 2019年最新数据显示,现在公有云规模占22%,只使用私有云的客户占3%,更多客户通过混合的模式去使用云,通过混合云取得数据隐私、安全与效率、弹性的平衡。 再看全球整个IT行业,公有云的比例只占整个基础IT市场的10%,市场空间仍然很大,IT市场中剩下很多都是传统企业客户。为什么传统行业无法很好地利用公有云,一个重要的原因是因为他们的 IT 系统经过很长时间建设,很多都有自己的机房。另外有些则业务比较稳定,对上公有云没有很强的需求。它们通常会发展混合云策略,把一些核心业务留在私有云,而把一些边缘业务或创新业务放在公有云上。 这些特点在金融行业也非常明显,除此之外金融行业还有两个特征: 业务形态走向开放和互联网化:随着互联网和数字化经济的发展,金融机构需要进行数字化转型,以及业务敏捷化、服务场景化,以应对新的商业模式带来的冲击;监管合规的诉求:金融行业的业务特点决定了必须是强隔离,强监管的,所以公有云上的资源共享模式在监管方面会有比较大的挑战。因此,混合云战略对金融机构更为适用。这一结论也得到研究支持,根据调研机构Nutanix的报告,全球金融业在混合云应用方面的发展速度超过其它行业,目前部署普及率达到21%,而全球平均水平为18.5%。 那么,什么样的混合云是适合金融机构的呢?以蚂蚁的演进历程为例。 蚂蚁在第四代架构的时候演变成为云平台架构,而且为了应对互联网业务形态下突发性业务对资源的弹性需求,蚂蚁也在同一阶段将架构直接进化成弹性混合云架构。现在蚂蚁已经演进到第五代云原生架构。蚂蚁又是如何在云原生的架构下,把混合云变成金融级的混合云,我想会对各位有些启发。在这个发展过程中,有一条主线,是不同阶段蚂蚁对研发的标准和要求,包括:自主、成本、安全、稳定、海量、敏捷,这也是在在线金融的时代,我们对云原生架构的要求。 从分布式到云原生 建立金融级交易支付系统建立金融级的在线交易系统,第一步是要实现金融级分布式的架构,蚂蚁在这方面的代表技术是SOFAStack和OceanBase,目前都已对外商业化,并有丰富的案例。SOFAStack代表的是,在整个应用层或者无状态服务这个层面上,如何去做可伸缩、可扩展的一套架构。OceanBase代表的是以数据库为代表的存储或者是有状态服务层面,如何在架构上面去进行分布式。它们拥有四个特性: 高可用,99.99%+的可用性保证,确保系统始终连续运行不中断; 一致性,在任何异常情况下数据最终一致,确保资金安全; 可扩展,支持应用级、数据库级、机房级、地域级的快速扩展; 高性能,存储采用读写分离架构,计算引擎全链路性能优化,准内存数据库性能。 而这四个关键的特性都是金融业务最为看重的,而且需要在应用和存储上端到端实现。 以一致性为例,在单个数据库内是可以确保数据一致性的,但在大规模应用的情况下,单个数据库总是会出现瓶颈,数据往往会像服务或者应用一样,按照类似交易、支付、账目等粒度垂直拆开,当这些数据分别存储在不同的数据库集群后,就需要在应用层来解决一致性问题了,同时为了支持海量数据,数据库集群内部也会做分别和多副本,OceanBase 就是这样一套分布式数据库,在其内部也要实现分布式事务。只有这样上下配合才能解掉所有分布式架构下的一致性问题,缺一不可。 再比如可扩展性方面,有些系统号称做了分布式架构,实际可能只是用了微服务框架,做了应用层的服务化改造,但数据库层既没有用水平扩展的技术,也没用分布式数据库,整个系统的可扩展性就卡在数据层的短板上。 所以,真正的分布式系统,需要实现端到端的分布式,才能实现无限可扩展和高性能,而真正的金融级分布式系统则要实现端到端的高可用和一致性。 我们认为,高可用架构最关键的目标是数据不丢,业务不停。在这个目标的基础上,我们设计并实施了三地五中心的异地多活架构。它的核心优势包括城市级容灾,低成本交易,无限可扩展,以及RPO=0,PTO<30s. 大家知道我们在去年云栖大会上做了一次剪网线的demo,它演示了整个架构层面上怎么样做到跨城市多活和灾难情况下的恢复快速恢复能力。同时在高可用达标的情况下,我们也做了很多风险相关的事情,总结起来就是在高可用的基础上还要做到资金的安全、变更的免疫和故障的快速恢复。 解决了高可用的问题,其实金融级最被高频提到的话题就是安全,在云原生时代,我们要解决的是全链路、端到端的安全风险。具体分为三个层面: 云原生网络安全,包括策略化高效流量控制,全链路加密,流量劫持与分析;云原生基础设施安全,包括安全容器,不共享内核,以及安全沙箱;云原生业务安全,包括SOFAEnclave机密计算中间件,以及内存安全的、多任务Enclave LibOS Occlum。这个部分我的同事在《金融服务的云原生安全架构》演讲中会详细介绍(点此查看演讲整理)。小结一下,所谓金融级的能力,最主要是要实现端到端的金融级的高可用,同时实现端到端的安全。接下来我想分享的是,在云原生这个阶段往前走遇到了哪些问题。 从单元化到弹性架构 应对互联网爆炸式的流量脉冲 首先解释下什么是单元化,大家可能比较容易理解数据库层的分库分表或者说 Sharding,能够通过分片的方式解决集中存储计算性能问题,单元化的核心思想是把数据的分片提前到了入口请求的分片,在机房的网络接入层将用户请求根据某个纬度(比如用户ID)进行 Sharding,这就好比把每个机房就当做了一个巨大无比的有状态的数据库分片,当你是一个 ID 尾号为007或者008用户的时候,当请求通过手机端或者网页域名发送到机房,接入层就已经识别出应该将你路由到华东地区还是在华南地区。当你进入到某个地区的机房时,大部分请求处理工作可以在机房内部完成。偶尔会有一些业务可能会发生跨机房的服务调用,比如说数据在 A 机房的用户给数据在 B 机房的用户转账。这个时候就需要在这个机房上去做有状态的设计。 我们走向云原生时代的时候,在大的架构上面用Kubernetes为基础来设计,在单元化架构下,我们选择在每个单元里部署一个Kubernetes集群,将支持多 K8s 集群管理和管控指令下发的 Federated APIServer 做逻辑上的全局部署,其中管控元数据是存储在一个 ETCD 集群的,以保持全局数据一致,但大家知道ETCD也只能解决同城双机房的容灾,无法再应对多城市多数据中心的一致性,因此我们正在把ETCD搬到我们的OB的 KV引擎上,这样在引擎层还是保持 ETCD 的存储格式和语义,存储层就具备了三地五中心高可用能力。 虽然这种架构是适合蚂蚁的技术架构的,但在我们的技术开放给外部客户时又会遇到很多新的问题,比方说在客户的机房会有很多异构的基础设施,我们就需要以 Cloud Provider的标准来实现多云适配。 而且包括我们在内的很多金融机构,因为很多老系统并没有按照「云原生」的方式去设计,很多会对基础设施有状态依赖,比如依赖IP ,所以很难完全采用不可变基础设施的模式来支撑。有些时候,由于对业务连续性的极高要求,也很难接受原生 K8s workload 的运维模式,比如原生 deployment 做灰度或者金丝雀发布时,对应用和流量的处理都是非常简单粗暴的,这样会导致运维变更时的业务的异常和不连续。这些我们都通过扩展原生的 Deployment 成更适合金融业务要求的 CAFEDeployment,使得大规模集群发布、灰度、回滚时更加优雅,符合我们的「技术风险三板斧原则」。 ...

October 16, 2019 · 1 min · jiezi

隐私与AI兼得蚂蚁金服是如何做到的

蚂蚁金服在过去十五年重塑支付改变生活,为全球超过十二亿人提供服务,这些背后离不开技术的支撑。在 2019 杭州云栖大会上,蚂蚁金服将十五年来的技术沉淀,以及面向未来的金融技术创新和参会者分享。 在人工智能时代,数据是AI领域的石油,如果没有数据很难将AI更好的落地。但是数据孤岛阻碍了数据的获取和利用,蚂蚁金服在三年前开始布局隐私保护机器学习,致力于在保护数据安全和隐私保护的前提下进行机器学习,我们称之为共享智能。我们之前分享了共享智能的理念和原理,今天,我们想聊聊共享智能的发展与应用趋势。 人工智能目前存在的难题是鱼与熊掌不可兼得,也就是隐私性跟可用性难以兼顾。如果你想要你的AI系统能发挥作用,就可能需要牺牲隐私。但是,在大量真实场景中,如果做不到同时兼顾隐私和可用性,会导致很多AI落地的困境。 举几个例子。 首先是贷款风控,用户想要买房去银行贷款,在银行A可能被判定为“坏人”,没有办法给他进行贷款,因为这个机构持有这个人部分数据,同样的用户到了机构B,这个机构B基于它拥有的部分数据,有可能会给予他贷款,这样矛盾的情况比比皆是,皆是因数据不通导致。 在智慧医疗领域,有些罕见病在每个医院的案例都不多,如果我们能把各个医院的案例共享起来,就能获得更多的样本数据,从而可以利用AI进行更准确的诊断,但是这个案例里面技术不是最优先的,对医院来说,它有责任保护患者的隐私,如何确保在共享案例的同时,不泄漏用户的隐私才是首先要解决的。 数据孤岛的问题会给AI落地和应用带来很多类似的难题。 现实环境中,数据在这个图中是不通的,有的地方可能有一些短暂的链接,绝大部分数据在这个图中处于断开状态。我们的目标是想打通数据孤岛,用技术的方法解决技术的问题。通过技术保护数据安全的情况下,实现数据的共享和价值的传递。 共享智能:可用不可见对于共享智能,我们希望达到的目标是数据可用不可见,在多方参与且各数据提供方与平台方互不信任的场景下,能够聚合多方信息进行机器学习,并确保各参与方的隐私不被泄漏,数据不被滥用。 为了达到这一目标,我们使用了很多业界已有的技术,比如学术圈一直在研究的差分隐私、很多大数据厂商在探索的可信执行环境、随着计算力和硬件技术的提升+密码学突破而广受重视的多方安全计算等。还有一些情况,目标数据比较少,但源领域数据较多,我们采用迁移学习的方法去做数据共享,这个也属于我们大的技术范畴。 具体来看的话,第一种方案是可信执行环境的方案,主要依赖中间的硬件级的保险箱Enclave,双方通过一些密码学的机制,把数据进行加密,加密之后只有在密码箱里面才能解密,解密以后做各式各样的计算,因为密码箱是第三方可信的密码箱,大家不信任彼此的情况下,信任密码箱即可,这样在数据隐私不会泄露的情况下,去做各式各样AI的算法。 这种方案依赖可信硬件,通过数据加密的方式,集中传送到可信的平台。对于一些机构,本身就已经上云,把所有的东西都存放在云上面,所有的技术在云上面部署,那么采用这种方式非常快速便捷,同时又能达到很好的隐私保护的效果。 第二种方案是偏软件级别的方案,我们在中间把数据做相应的处理后再进行计算。比如说像秘密分享的技术,通过把数据拆分完以后,几方通过发送随机数来完成运算,然后可以完成各式各样AI的计算和模型;还有像同态加密这样的方法,在加密后的空间里面做相应的运算来完成AI的计算,中间有一个控制模块来共同完成学习的目标。这个方式本身不涉及到硬件,是偏软件+密码学的方案,中间出去的是随机数/加密中间结果,目前业界隐私+AI结合的方向上,用这个方案相对来说比较多。 星云 Nebula:共享智能网络 共享智能需要多方参与,我们设计了星云Nebula共享智能网络架构,对于蚂蚁金服而言,希望跟合作方共同打造这样的共享智能网络。 网络中存在各式各样的计算节点,能够在某个管理平台中进行触发实现AI计算。这个共享智能网络,可以用不同的技术完成共享智能的目标,比如,构建联合营销网络,节点之间可任意组网,采用多方安全计算技术来实现联合营销,同时管理节点可以部署在任何的地方;对于某些机构而言,可能没有很强的AI能力和多方计算能力,那他们可以依赖于云这样的技术,将数据放在可信执行环境中,去参与建设这样的网络,通过这样的共享智能技术来解决AI落地最后一公里的难题。 我们整个计算节点的架构如上图,最底层跟正常环境比较相似,左边是各式各样的可信执行环境,右边是正常的CPU、GPU环境。上面会有统一的API层来屏蔽这些不同的细节。 再往上面,会有本地的计算,这个计算本身会跟通用的开源框架稍有差异,我们会把现在流行的版本改成安全的版本,比如安全的XGBoost。中间做MPC的时候,我们会提供各式各样的技术,混淆电路、OT等等这样的技术,最顶层提供一些可视化跟交互式的接口,普通的用户通过这样的调用就可以完成复杂的多方计算的操作。同时支持各种保护隐私的安全模型推断。 我们希望通过这样的架构完成共享智能技术,并且打造了可视化的界面,采用拖拽式的方式就可以快速高效完成整个AI计算的构建。 上述共享智能架构现在已经达到了较好的完备性、易用性和稳定性的目标,在很多的地方已经进行了落地。在完备性方面,我们实现了功能完备和场景完备,目前主要是支持风控和其它AI典型场景,里面的算法比较全面,涵盖了线性模型、树模型、深度学习、图神经网络等各个方向;在易用性方面,我们希望能够更好的推广这种建模技术,同时又能“屏蔽”一些底层技术(可信执行环境、多方安全计算等),降低大家学习使用的成本;在稳定性方面,我们实现了共享智能计算的集群化,并且支持远程运维。 我们已经将共享智能上线到大数据智能平台上,下面这个demo,是一个多方安全计算的AI建模展示。 http://mpvideo.qpic.cn/0a78owv2z46vcbacambaeciiaucvrvvfkof4jwlibqeqgdakb4hq.f10002.mp4?dis_k=360fe7e0bf7304571a370082c38142c9&dis_t=1571137251 前面预处理部分跟正常的AI建模看起来一样,通过拖拽式操作,把数据进行了预处理以后,送到共享智能建模中,会产生AI运算的结果。通过这种方式能够大幅度降低新技术的使用门槛,方便业务方使用。 蚂蚁金服在共享智能领域里建设了三年多,发布论文超过10篇,获得专利超过80余项,在标准立项上我们在IEEE共享智能和ITU-T MPC国际标准、CCSA共享智能行业标准以及AIOSS / AIIA共享智能联盟标准方面都在同步推进,也获得了一些创新奖项。 共享智能落地案例接下来分享三个典型落地案例。 一个是在安全风控领域,联合生态伙伴来建立安全风控网络。生态伙伴使用前面介绍的可信执行环境技术,把数据加密传输到网络中共建这个模型,打击虚假交易、团伙作案等,大幅度提升风控准确率,实现风控网络的净化。通过这样的风控网络平台,使得商家每天新增很多的交易,同时降低资损。 第二个是中和农信,我们通过数据融合大幅度提高风控性能,把原来传统的线下模式,变成线上自动过审模式,完成授信只需5分钟,8个月累计放款31.9亿,授信成功人数44万人,业务覆盖20+省区,300+县城,10000+个乡村,助力实现农村普惠金融。 第三个是与江苏银行进行的信贷联合风控,还记得我们前面的例子吗?因为数据不完整,导致风控决策错误,现在通过共享智能技术,双方可以完成共同的模型构建,通过这样的机制实现联合风控,使得效果有大幅度提升。同时在这个过程中,用户的数据和隐私得到了有效保护。 总的来说,我们想构建开放的共享智能网络,希望有更多的伙伴、机构参与进来,一起完成建设,打破数据孤岛,助力AI技术更好的落地和应用。 本文作者:缪克卢汉 阅读原文 本文为云栖社区原创内容,未经允许不得转载。

October 16, 2019 · 1 min · jiezi

隐私与AI兼得蚂蚁金服是如何做到的

蚂蚁金服在过去十五年重塑支付改变生活,为全球超过十二亿人提供服务,这些背后离不开技术的支撑。在 2019 杭州云栖大会上,蚂蚁金服将十五年来的技术沉淀,以及面向未来的金融技术创新和参会者分享。我们将其中的优秀演讲整理成文并将陆续发布在“蚂蚁金服科技”公众号上,本文为其中一篇。 在人工智能时代,数据是AI领域的石油,如果没有数据很难将AI更好的落地。但是数据孤岛阻碍了数据的获取和利用,蚂蚁金服在三年前开始布局隐私保护机器学习,致力于在保护数据安全和隐私保护的前提下进行机器学习,我们称之为共享智能。我们之前分享了共享智能的理念和原理,今天,我们想聊聊共享智能的发展与应用趋势。 人工智能目前存在的难题是鱼与熊掌不可兼得,也就是隐私性跟可用性难以兼顾。如果你想要你的AI系统能发挥作用,就可能需要牺牲隐私。但是,在大量真实场景中,如果做不到同时兼顾隐私和可用性,会导致很多AI落地的困境。 举几个例子。 首先是贷款风控,用户想要买房去银行贷款,在银行A可能被判定为“坏人”,没有办法给他进行贷款,因为这个机构持有这个人部分数据,同样的用户到了机构B,这个机构B基于它拥有的部分数据,有可能会给予他贷款,这样矛盾的情况比比皆是,皆是因数据不通导致。 在智慧医疗领域,有些罕见病在每个医院的案例都不多,如果我们能把各个医院的案例共享起来,就能获得更多的样本数据,从而可以利用AI进行更准确的诊断,但是这个案例里面技术不是最优先的,对医院来说,它有责任保护患者的隐私,如何确保在共享案例的同时,不泄漏用户的隐私才是首先要解决的。 数据孤岛的问题会给AI落地和应用带来很多类似的难题。 现实环境中,数据在这个图中是不通的,有的地方可能有一些短暂的链接,绝大部分数据在这个图中处于断开状态。我们的目标是想打通数据孤岛,用技术的方法解决技术的问题。通过技术保护数据安全的情况下,实现数据的共享和价值的传递。 共享智能:可用不可见对于共享智能,我们希望达到的目标是数据可用不可见,在多方参与且各数据提供方与平台方互不信任的场景下,能够聚合多方信息进行机器学习,并确保各参与方的隐私不被泄漏,数据不被滥用。 为了达到这一目标,我们使用了很多业界已有的技术,比如学术圈一直在研究的差分隐私、很多大数据厂商在探索的可信执行环境、随着计算力和硬件技术的提升+密码学突破而广受重视的多方安全计算等。还有一些情况,目标数据比较少,但源领域数据较多,我们采用迁移学习的方法去做数据共享,这个也属于我们大的技术范畴。 具体来看的话,第一种方案是可信执行环境的方案,主要依赖中间的硬件级的保险箱Enclave,双方通过一些密码学的机制,把数据进行加密,加密之后只有在密码箱里面才能解密,解密以后做各式各样的计算,因为密码箱是第三方可信的密码箱,大家不信任彼此的情况下,信任密码箱即可,这样在数据隐私不会泄露的情况下,去做各式各样AI的算法。 这种方案依赖可信硬件,通过数据加密的方式,集中传送到可信的平台。对于一些机构,本身就已经上云,把所有的东西都存放在云上面,所有的技术在云上面部署,那么采用这种方式非常快速便捷,同时又能达到很好的隐私保护的效果。 第二种方案是偏软件级别的方案,我们在中间把数据做相应的处理后再进行计算。比如说像秘密分享的技术,通过把数据拆分完以后,几方通过发送随机数来完成运算,然后可以完成各式各样AI的计算和模型;还有像同态加密这样的方法,在加密后的空间里面做相应的运算来完成AI的计算,中间有一个控制模块来共同完成学习的目标。这个方式本身不涉及到硬件,是偏软件+密码学的方案,中间出去的是随机数/加密中间结果,目前业界隐私+AI结合的方向上,用这个方案相对来说比较多。 星云 Nebula:共享智能网络 共享智能需要多方参与,我们设计了星云Nebula共享智能网络架构,对于蚂蚁金服而言,希望跟合作方共同打造这样的共享智能网络。 网络中存在各式各样的计算节点,能够在某个管理平台中进行触发实现AI计算。这个共享智能网络,可以用不同的技术完成共享智能的目标,比如,构建联合营销网络,节点之间可任意组网,采用多方安全计算技术来实现联合营销,同时管理节点可以部署在任何的地方;对于某些机构而言,可能没有很强的AI能力和多方计算能力,那他们可以依赖于云这样的技术,将数据放在可信执行环境中,去参与建设这样的网络,通过这样的共享智能技术来解决AI落地最后一公里的难题。 我们整个计算节点的架构如上图,最底层跟正常环境比较相似,左边是各式各样的可信执行环境,右边是正常的CPU、GPU环境。上面会有统一的API层来屏蔽这些不同的细节。 再往上面,会有本地的计算,这个计算本身会跟通用的开源框架稍有差异,我们会把现在流行的版本改成安全的版本,比如安全的XGBoost。中间做MPC的时候,我们会提供各式各样的技术,混淆电路、OT等等这样的技术,最顶层提供一些可视化跟交互式的接口,普通的用户通过这样的调用就可以完成复杂的多方计算的操作。同时支持各种保护隐私的安全模型推断。 我们希望通过这样的架构完成共享智能技术,并且打造了可视化的界面,采用拖拽式的方式就可以快速高效完成整个AI计算的构建。 上述共享智能架构现在已经达到了较好的完备性、易用性和稳定性的目标,在很多的地方已经进行了落地。在完备性方面,我们实现了功能完备和场景完备,目前主要是支持风控和其它AI典型场景,里面的算法比较全面,涵盖了线性模型、树模型、深度学习、图神经网络等各个方向;在易用性方面,我们希望能够更好的推广这种建模技术,同时又能“屏蔽”一些底层技术(可信执行环境、多方安全计算等),降低大家学习使用的成本;在稳定性方面,我们实现了共享智能计算的集群化,并且支持远程运维。 我们已经将共享智能上线到大数据智能平台上,下面这个demo,是一个多方安全计算的AI建模展示。 前面预处理部分跟正常的AI建模看起来一样,通过拖拽式操作,把数据进行了预处理以后,送到共享智能建模中,会产生AI运算的结果。通过这种方式能够大幅度降低新技术的使用门槛,方便业务方使用。 蚂蚁金服在共享智能领域里建设了三年多,发布论文超过10篇,获得专利超过80余项,在标准立项上我们在IEEE共享智能和ITU-T MPC国际标准、CCSA共享智能行业标准以及AIOSS / AIIA共享智能联盟标准方面都在同步推进,也获得了一些创新奖项。 共享智能落地案例接下来分享三个典型落地案例。 一个是在安全风控领域,联合生态伙伴来建立安全风控网络。生态伙伴使用前面介绍的可信执行环境技术,把数据加密传输到网络中共建这个模型,打击虚假交易、团伙作案等,大幅度提升风控准确率,实现风控网络的净化。通过这样的风控网络平台,使得商家每天新增很多的交易,同时降低资损。 第二个是中和农信,我们通过数据融合大幅度提高风控性能,把原来传统的线下模式,变成线上自动过审模式,完成授信只需5分钟,8个月累计放款31.9亿,授信成功人数44万人,业务覆盖20+省区,300+县城,10000+个乡村,助力实现农村普惠金融。 第三个是与江苏银行进行的信贷联合风控,还记得我们前面的例子吗?因为数据不完整,导致风控决策错误,现在通过共享智能技术,双方可以完成共同的模型构建,通过这样的机制实现联合风控,使得效果有大幅度提升。同时在这个过程中,用户的数据和隐私得到了有效保护。 总的来说,我们想构建开放的共享智能网络,希望有更多的伙伴、机构参与进来,一起完成建设,打破数据孤岛,助力AI技术更好的落地和应用。 OceanBase 登顶TPC-C测试榜,实现中国数据库零的突破,想要了解背后的技术细节?欢迎下载电子书《OceanBase TPC-C测试技术解析》,长按识别以下二维码,关注“蚂蚁金服科技”官方公众号,并在对话框内回复“TPCC”,即可免费下载。

October 15, 2019 · 1 min · jiezi

云原生时代蚂蚁金服公开了新的金融混合云架构

蚂蚁金服在过去十五年重塑支付改变生活,为全球超过十二亿人提供服务,这些背后离不开技术的支撑。在 2019 杭州云栖大会上,蚂蚁金服将十五年来的技术沉淀,以及面向未来的金融技术创新和参会者分享。我们将其中的优秀演讲整理成文并将陆续发布在“蚂蚁金服科技”公众号上,本文为其中一篇。互联网技术发展日新月异,我们正在进入云原生时代,这个过程中金融行业要如何拥抱云原生?在近两年蚂蚁金服将云原生在金融领域落地,沉淀下一些实践经验,接下来我想分享在蚂蚁的演进过程当中,我们心中的云原生是什么样的,在金融领域落地的时候遇到什么问题,以及我们是怎么解决的。 经过多年云计算的蓬勃发展,上云已经不是太大问题,接下来的问题是怎么把云用好,用得更高效。RightScale 2019年最新数据显示,现在公有云规模占22%,只使用私有云的客户占3%,更多客户通过混合的模式去使用云,通过混合云取得数据隐私、安全与效率、弹性的平衡。 再看全球整个IT行业,公有云的比例只占整个基础IT市场的10%,市场空间仍然很大,IT市场中剩下很多都是传统企业客户。为什么传统行业无法很好地利用公有云,一个重要的原因是因为他们的 IT 系统经过很长时间建设,很多都有自己的机房。另外有些则业务比较稳定,对上公有云没有很强的需求。它们通常会发展混合云策略,把一些核心业务留在私有云,而把一些边缘业务或创新业务放在公有云上。 这些特点在金融行业也非常明显,除此之外金融行业还有两个特征: 业务形态走向开放和互联网化:随着互联网和数字化经济的发展,金融机构需要进行数字化转型,以及业务敏捷化、服务场景化,以应对新的商业模式带来的冲击;监管合规的诉求:金融行业的业务特点决定了必须是强隔离,强监管的,所以公有云上的资源共享模式在监管方面会有比较大的挑战。因此,混合云战略对金融机构更为适用。这一结论也得到研究支持,根据调研机构Nutanix的报告,全球金融业在混合云应用方面的发展速度超过其它行业,目前部署普及率达到21%,而全球平均水平为18.5%。 那么,什么样的混合云是适合金融机构的呢?以蚂蚁的演进历程为例。 蚂蚁在第四代架构的时候演变成为云平台架构,而且为了应对互联网业务形态下突发性业务对资源的弹性需求,蚂蚁也在同一阶段将架构直接进化成弹性混合云架构。现在蚂蚁已经演进到第五代云原生架构。蚂蚁又是如何在云原生的架构下,把混合云变成金融级的混合云,我想会对各位有些启发。在这个发展过程中,有一条主线,是不同阶段蚂蚁对研发的标准和要求,包括:自主、成本、安全、稳定、海量、敏捷,这也是在在线金融的时代,我们对云原生架构的要求。 从分布式到云原生 建立金融级交易支付系统建立金融级的在线交易系统,第一步是要实现金融级分布式的架构,蚂蚁在这方面的代表技术是SOFAStack和OceanBase,目前都已对外商业化,并有丰富的案例。SOFAStack代表的是,在整个应用层或者无状态服务这个层面上,如何去做可伸缩、可扩展的一套架构。OceanBase代表的是以数据库为代表的存储或者是有状态服务层面,如何在架构上面去进行分布式。它们拥有四个特性: 高可用,99.99%+的可用性保证,确保系统始终连续运行不中断; 一致性,在任何异常情况下数据最终一致,确保资金安全; 可扩展,支持应用级、数据库级、机房级、地域级的快速扩展; 高性能,存储采用读写分离架构,计算引擎全链路性能优化,准内存数据库性能。 而这四个关键的特性都是金融业务最为看重的,而且需要在应用和存储上端到端实现。 以一致性为例,在单个数据库内是可以确保数据一致性的,但在大规模应用的情况下,单个数据库总是会出现瓶颈,数据往往会像服务或者应用一样,按照类似交易、支付、账目等粒度垂直拆开,当这些数据分别存储在不同的数据库集群后,就需要在应用层来解决一致性问题了,同时为了支持海量数据,数据库集群内部也会做分别和多副本,OceanBase 就是这样一套分布式数据库,在其内部也要实现分布式事务。只有这样上下配合才能解掉所有分布式架构下的一致性问题,缺一不可。 再比如可扩展性方面,有些系统号称做了分布式架构,实际可能只是用了微服务框架,做了应用层的服务化改造,但数据库层既没有用水平扩展的技术,也没用分布式数据库,整个系统的可扩展性就卡在数据层的短板上。 所以,真正的分布式系统,需要实现端到端的分布式,才能实现无限可扩展和高性能,而真正的金融级分布式系统则要实现端到端的高可用和一致性。 蚂蚁金服三地五中心异地多活架构 我们认为,高可用架构最关键的目标是数据不丢,业务不停。在这个目标的基础上,我们设计并实施了三地五中心的异地多活架构。它的核心优势包括城市级容灾,低成本交易,无限可扩展,以及RPO=0,PTO<30s. 大家知道我们在去年云栖大会上做了一次剪网线的demo,它演示了整个架构层面上怎么样做到跨城市多活和灾难情况下的恢复快速恢复能力。同时在高可用达标的情况下,我们也做了很多风险相关的事情,总结起来就是在高可用的基础上还要做到资金的安全、变更的免疫和故障的快速恢复。 解决了高可用的问题,其实金融级最被高频提到的话题就是安全,在云原生时代,我们要解决的是全链路、端到端的安全风险。具体分为三个层面: 云原生网络安全,包括策略化高效流量控制,全链路加密,流量劫持与分析; 云原生基础设施安全,包括安全容器,不共享内核,以及安全沙箱; 云原生业务安全,包括SOFAEnclave机密计算中间件,以及内存安全的、多任务Enclave LibOS Occlum。 这个部分我的同事在《金融服务的云原生安全架构》演讲中会详细介绍(点此查看演讲整理)。小结一下,所谓金融级的能力,最主要是要实现端到端的金融级的高可用,同时实现端到端的安全。接下来我想分享的是,在云原生这个阶段往前走遇到了哪些问题。 从单元化到弹性架构 应对互联网爆炸式的流量脉冲从单元化到云原生下的弹性架构 首先解释下什么是单元化,大家可能比较容易理解数据库层的分库分表或者说 Sharding,能够通过分片的方式解决集中存储计算性能问题,单元化的核心思想是把数据的分片提前到了入口请求的分片,在机房的网络接入层将用户请求根据某个纬度(比如用户ID)进行 Sharding,这就好比把每个机房就当做了一个巨大无比的有状态的数据库分片,当你是一个 ID 尾号为007或者008用户的时候,当请求通过手机端或者网页域名发送到机房,接入层就已经识别出应该将你路由到华东地区还是在华南地区。当你进入到某个地区的机房时,大部分请求处理工作可以在机房内部完成。偶尔会有一些业务可能会发生跨机房的服务调用,比如说数据在 A 机房的用户给数据在 B 机房的用户转账。这个时候就需要在这个机房上去做有状态的设计。 我们走向云原生时代的时候,在大的架构上面用Kubernetes为基础来设计,在单元化架构下,我们选择在每个单元里部署一个Kubernetes集群,将支持多 K8s 集群管理和管控指令下发的 Federated APIServer 做逻辑上的全局部署,其中管控元数据是存储在一个 ETCD 集群的,以保持全局数据一致,但大家知道ETCD也只能解决同城双机房的容灾,无法再应对多城市多数据中心的一致性,因此我们正在把ETCD搬到我们的OB的 KV引擎上,这样在引擎层还是保持 ETCD 的存储格式和语义,存储层就具备了三地五中心高可用能力。 金融机构异构的基础设施 虽然这种架构是适合蚂蚁的技术架构的,但在我们的技术开放给外部客户时又会遇到很多新的问题,比方说在客户的机房会有很多异构的基础设施,我们就需要以 Cloud Provider的标准来实现多云适配。 而且包括我们在内的很多金融机构,因为很多老系统并没有按照「云原生」的方式去设计,很多会对基础设施有状态依赖,比如依赖IP ,所以很难完全采用不可变基础设施的模式来支撑。有些时候,由于对业务连续性的极高要求,也很难接受原生 K8s workload 的运维模式,比如原生 deployment 做灰度或者金丝雀发布时,对应用和流量的处理都是非常简单粗暴的,这样会导致运维变更时的业务的异常和不连续。这些我们都通过扩展原生的 Deployment 成更适合金融业务要求的 CAFEDeployment,使得大规模集群发布、灰度、回滚时更加优雅,符合我们的「技术风险三板斧原则」。 ...

October 14, 2019 · 1 min · jiezi

蚂蚁金服OceanBase挑战TPCC丨TPCC基准测试之链路层优化

蚂蚁金服自研数据库 OceanBase 登顶 TPC-C 引起业内广泛关注,为了更清楚的展示其中的技术细节,我们特意邀请 OceanBase 核心研发人员对本次测试进行技术解读,共包括六篇: 1)TPC-C基准测试介绍2)OceanBase如何做TPC-C测试3)TPC-C基准测试之SQL优化4)TPC-C基准测试之数据库事务引擎的挑战5)TPC-C基准测试之存储优化6)TPC-C基准测试之链路层优化 导语在 TPC-C 标准定义中,测试系统分为 RTE(Remote Terminal Emulator)和 SUT 两部分。在实际的 TPC-C 测试流程中,不只是对 DB 端能力的考验,对链路中的所有组件都存在极大的资源消耗和压力。以这次 6088万 tpmC 测试结果看,我们一共在 64 台 64C128G 的云服务器上运行了 960 个 RTE 客户端,来模拟总计 47942400 个用户 Terminal,最后还需要基于这么多 RTE 统计结果进行一致性和持久化审计验证。而 SUT 又拆分为三部分:WAS(Web Application Server) 、OceanBase Proxy(OBProxy) 和 OceanBaseServer(OBServer)。RTE 的请求到 WAS,然后 WAS 通过 OceanBase 客户端来访问 OBProxy,OBProxy 会将请求转发到后端 OceanBase 集群中最佳的 ObServer 去执行请求。WAS 和 OBProxy 是 RTE 和 OBServer 之间的桥梁,这个桥梁对于承载压力起着至关重要的作用。本次TPC-C 基准测试中,OceanBase 访问链路上主要涉及两个组件: ODBC接口及驱动 ...

October 14, 2019 · 2 min · jiezi

Swift-UI对Flutter的意义JSConf-2019归来记未来属于声明式编程丨体验科技精选第-4-期

这里是蚂蚁金服体验科技精选 第 4 期,本期内容包括原创精选、蚂蚁前端动态和行业动态,希望你喜欢! 蚂蚁前端动态Ant Design https://github.com/ant-design... 九月上旬,Ant Design 又招募到三位优秀的社区协作者@yoyo837 @shaodahong @orzyyyy ,相信其社区生态将会更加繁荣! TechUI https://www.yuque.com/yuque/h... TechUI 9 月上旬新增高级成员搜索组件以及标签设置模板。Kitchen 发布 2.16.0 新增设计资产功能模块,TechUI 设计资产即拖即用 原创精选从链式调用到管道组合 https://zhuanlan.zhihu.com/p/... 如果让你在不用 this 和原型链,不用 ES6 Generator/Iterator,不用箭头函数的前提下,实现「惰性求值」,你是不是想到使用链式调用实现?但初具规模之后,链式调用带来的问题该如何解决? 未来属于声明式编程 http://djyde.github.io/blog/d... 提升开发效率,我们应该去想如何尽量让开发者声明式地编写代码,而不是只去想我们在 Serverless 上能做什么。 行业动态JSConf 2019 归来记 https://www.yuque.com/zhenzis... 作者参加了 JSConf 2019, 归来后写下此文。本文将着重分享:TDCD、Make it boring、Web norms of the world、Tour de bikeshare 这四个 Talk,希望给大家带来一些信息和启发。 尤雨溪:在框架设计中寻求平衡 https://zhuanlan.zhihu.com/p/... 当你试图去设计一个框架时,最佳平衡点在哪?或许说是否存在一个完美的平衡点?它又是否是一个单一、完美的平衡点,甚至是以 JS 开发人员作为一个整体的最佳平衡点? MVVM框架的数据状态管理的发展与探索 https://github.com/farzer/blo... 前端应用日渐复杂,页面状态的可控制及可跟踪已成为开发和调试的重要手段,显然我们有必要了解状态管理方案可以解决什么问题,解决问题的核心方式是什么。 抖音研发实践 https://mp.weixin.qq.com/s/Dr... 基于二进制文件重排的解决方案,APP 启动速度提升超 15%。启动是 App 给用户的第一印象,对用户体验至关重要。为了保证抖音在业务迅速迭代情况下的高效启动,抖音 iOS 客户端团队做了大量优化工作及开拓性探索,将应用启动速度提高了约 15%。 ...

October 14, 2019 · 1 min · jiezi

蚂蚁金服OceanBase挑战TPCCTPCC基准测试之数据库事务引擎挑战

蚂蚁金服自研数据库 OceanBase 登顶 TPC-C 引起业内广泛关注,为了更清楚的展示其中的技术细节,我们特意邀请 OceanBase 核心研发人员对本次测试进行技术解读,共包括五篇: 1)TPC-C基准测试介绍2)OceanBase如何做TPC-C测试3)TPC-C基准测试之SQL优化4)TPC-C基准测试之数据库事务引擎的挑战5)TPC-C基准测试之存储优化 本文为第四篇,其它文章已同步发布,详情请在“蚂蚁金服科技”公众号查看。 OceanBase 这次 TPC-C 测试与榜单上 Oracle 和 DB2 等其他数据库在硬件使用上有非常大的不同,OceanBase 的数据库服务器使用的是 204+3 台型号是 ecs.i2.16xlarge 阿里云 ECS 服务器,其中 204 台作为 data node,还有 3 台作为 root node,每位读者都可以在阿里云网站上轻松按需购买。如果读者翻看 Oracle 和 DB2 的 TPC-C 测试报告会发现,这些数据库都会使用专用的存储设备,例如前最高记录保持者 Oracle 在 2010 年的测试,使用了 97 台 COMSTAR 专用的存储设备,其中 28 台用来存储数据库的重做日志(Redo Log)。 硬件的差异给软件架构提出了完全不同的挑战,专用的存储设备其内部通过硬件冗余实现了设备自身的可靠保证,数据库软件在使用这样的存储设备时就天然的预设了数据不会丢失。但是,这种方式带来了成本的极大消耗,专用的存储设备的价格都是特别昂贵的。 OceanBase 使用通用的 ECS 服务器提供数据库服务,并且只使用 ECS 机器自带的本地硬盘做数据存储,这是最通用的硬件条件。但是这种方式对软件架构提出了很大的挑战,因为单个 ECS 服务器的不如专用的存储设备可靠性高。这也对 OceanBase 的事务引擎提出了很大的挑战,OceanBase 是在普通的 ECS 服务器上就可以实现 ACID 特性。 TPC-C 测试是对事务 ACID 特性有完整并且严格的要求。下面分别介绍 OceanBase 针对事务 ACID 的特性的解决方案。 ...

October 9, 2019 · 1 min · jiezi

蚂蚁金服自研数据库OceanBase如何登顶TPCC

10 月 2 日,国际事务处理性能委员会(TPC)宣布:在最新发布的 TPC-C 排行榜中,蚂蚁金服自研数据库 OceanBase 位列第一。InfoQ 记者第一时间采访到蚂蚁金服研究员、OceanBase 主架构师杨传辉(日照),请他解读这份 TPC-C 榜单,同时介绍 OceanBase 积累九年多才正式参与 TPC-C 打榜的过程和意义。 请从专业性和权威性,参与标准和参与流程上,介绍一下 TPC-C 的测试结果,对于数据库厂商来说意味着什么? TPC 是由数十家会员公司创建的非盈利组织,成立于 1988 年,总部设在美国,图灵奖得主 Jim Gray 是奠基人。TPC 的成员主要是业界主流的计算机软硬件厂家,其职责是制定企业级应用基准测试考评的标准规范,并且衡量整体系统的性能和性价比,管理测试结果的认证和发布。Oracle、IBM、微软等公司的多个数据库产品曾多次参与这个测评并且是主要领先成绩的保持者。TPC-C 是 TPC 组织制定的关于 OLTP 数据库事务处理能力的基准测试,金融、电信、政府等关键领域的客户一般参照 TPC-C 结果来衡量各个数据库厂商的事务处理能力。 只有在 TPC 官方网站上得到认证,得到国际机构审计的测试结果才是 TPC 机构认可的测试结果。TPC-C 认证要求非常严格,大到性能、功能、数据一致性和容灾能力,小到测试过程中使用过的鼠标键盘价格,都需要严格披露,确保测试可复现且与真实业务场景保持一致。OceanBase TPC-C 仅仅认证过程就花费超过半年时间。 数据库的核心能力包括性能、成本、功能、生态等等,而 TPC-C 是全球 OLTP 数据库最权威的性能测试基准。TPC-C 登顶是每个 OLTP 数据库厂商的梦想,登顶意味着具备世界级的事务处理能力,能够满足无论是互联网还是金融、电信、政府等关键领域的核心系统的事务处理需求。目前在 TPC-C 指标上,蚂蚁金服是唯一一家中国上榜企业。 OceanBase 此前参与过该基准测试吗?取得的成绩是什么? 几乎每个 OLTP 数据库都会在测试环境中跑 TPC-C 基准测试,OceanBase 也不例外。虽然 OceanBase 在阿里巴巴“双十一”等业务场景中积累了非常好的高并发事务处理能力,但 TPC-C“打榜”难度非常之大,OceanBase 积累了九年多才选择正式参与 TPC-C 打榜。 ...

October 8, 2019 · 2 min · jiezi

蚂蚁金服OceanBase挑战TPCC-测试流程解析

蚂蚁金服自研数据库 OceanBase 登顶 TPC-C 引起业内广泛关注,为了更清楚的展示其中的技术细节,我们特意邀请 OceanBase 核心研发人员对本次测试进行技术解读,共包括五篇: 1)TPC-C基准测试介绍2)OceanBase如何做TPC-C测试3)TPC-C基准测试之SQL优化4)TPC-C基准测试之数据库事务引擎的挑战5)TPC-C基准测试之存储优化 本文为第二篇,其它文章已同步发布,详情请在“蚂蚁金服科技”公众号查看。 众所周知,TPC 组织是当今国际数据库领域公认最权威的测试和评价组织,它成立的初衷就是构建最好的测试标准以及制定针对这些标准最优的审计和监测流程。数据库界的天皇巨星 Jim Gray 曾在 1985 年提出了针对事务处理能力的评价标准 DebitCredit,而 1988 年 TPC 组织成立伊始,就基于这个标准提出了 TPC 组织第一个针对 OLTP 应用的测试标准 TPC-A。但随着时代发展,TPC-A 已经慢慢无法完全体现真实应用场景,此时 TPC-C 肩负重任应运而生,接下来也一直是 TPC 组织最核心同时也是关系数据库领域最顶级的测试标准。TPC-C 标准比 TPC-A 更加复杂,压力负载模型是 16 位一线工业产业界学者一起参与制定,随着时间推移测试标准也一直在保持修订,所以其模拟大型在线商超的测试模型时至今日也仍不过时,越来越能找到和当前大型 B2C 电商网站的共通之处。 有机会挑战 TPC-C 测试相信是所有数据库内核开发人员的梦想,但 TPC-C 测试标准非常复杂,1992 年 7 月发布以来到现在已经是 v5.11.0 版本,仅 PDF 就 132 页,如果不是铁杆粉丝估计很少有人会认真通读完这个标准。这次 OceanBase 创造 TPC-C 记录引起了大家的广泛关注,但它也只是这个测试标准里体现跑分的一个评价项 MQTh(最大有效吞吐量),隐藏在跑分下面的是 TPC-C 标准对被测数据库无数细致入微的测试验证和评价项,而正是这些才让这个标准在关系数据库领域如此权威,同时也是国产数据库之前很难入场的一大原因。 由于这是国产数据库同时也是分布式数据库第一次冲击这个榜单,为了完成这次挑战,OceanBase 团队前后准备时间超过一年,仅审计认证过程就耗时约半年,除了数据库自身性能优化同时还有大量的稳定性、合规要求相关工作,6088w tpmC 其实也只是整个测试结果中一小个展示项而已。 前期准备作为基于 LSM-Tree、多副本 paxos 强一致的新型分布式关系数据库,如何进行 TPC-C 测试,有哪些注意事项,什么时候该做什么步骤等等诸多问题,在审计刚启动时我们无处咨询也没有任何可借鉴的资料。TPC-C 测试首先需要找到官方唯一认证的审计员来对测试进行审计监察,但面对 OceanBase 这样一个全新架构的关系数据库时,他们其实也有着诸多和我们类似的疑惑和问题,因此他们对这次 OceanBase 的审计也相当重视,全世界仅有的三个审计员这次就有两个参与到测试审计工作中。 ...

October 8, 2019 · 2 min · jiezi