在刚刚结束的2018杭州云栖大会上,阿里巴巴通用计算平台负责人,阿里巴巴计算平台资深技术专家关涛从计算力,联合计算,智能化,企业级服务能力四个方面详细介绍阿里巴巴统一的超大规模数据计算平台MaxCompute的探索与实践。从数字化阿里巴巴,到数字化企业,再到数字化城市,MaxCompute快速进化,加速科技普惠, 驱动数字中国。
飞天2.0 MaxCompute是阿里巴巴在9年前做飞天系统的三大件之分布式计算部分。9年后的今天,MaxCompute已经是可以承载EB级的数据存储能力,百PB级的单日计算能力,公共云覆盖国内外十几个国家和地区,专有云包含城市大脑在内部署超过100+套的阿里巴巴的统一计算平台。
阿里巴巴集团副总裁周靖人在本次云栖大会接受采访时称,阿里巴巴从2008年就开始做大数据和云计算,之前是为了支撑核心的电商业务,随着阿里巴巴业务的增长,大数据的平台得到了高速的发展,这个平台就是MaxCompute的前身。所以说,计算平台的产品,首先是在阿里巴巴自身的业务场景里面取得了巨大的成功,在整个业务发展中起到了至关重要的作用。经过这么大业务体量的高强度验证过后,我们希望把同样的技术普惠到全球,所以才把这些产品通过阿里云做对外输出,去服务各行业的企业用户。从历史来讲,至少在中国,阿里云整个计算平台应该是历史最悠久,当然也是技术积累最深,同时也是经受住了非常大的业务考验,具有真正企业级服务能力的大数据智能计算平台。
阿里云机器智能首席科学家闵万里,在云栖大会主论坛的演讲中表示,MaxCompute是ET大脑供血系统极其重要的组成部分,是我们的镇山之宝,如果没有MaxCompute,今天我在这里将没办法给大家讲述任何一个成功的案例。 我们通过ET城市大脑自动化监控城市路口信号灯,这当中,没有什么魔术,就是因为有了MaxCompute,有了大规模的分布式计算,数据越大,场景越大,越能体现大规模计算的能力。
以下依据关涛演讲进行整理
谢谢大家,我是关涛。前面提到的杭州城市大脑,是一个非常新的平台,是阿里巴巴一步一步向上走的平台。我们最开始希望数字化阿里巴巴,再往后,就希望把数字化普惠到企业层面,现在我们开始数字化一个城市了。
用一个放大镜看一看城市数字化时做了哪些事?刚才提到了1300个路口,我们实际上数字化了1300个路口,包含了4500路摄像头,每一路摄像头每一秒钟生成24帧数据,这一帧数据实际上是一张高清图片,也就是1920X1024X24位的色彩景深,这一路数据如果不经过压缩,一帧的数据大概50M,在这一帧数据中,我们会做车辆识别、车牌识别、行人识别,包括像压线这样的违章检测等操作。在帧和帧之间去看车辆速度,路口拥堵,以及路口和路口之间后续可能的拥堵指数。从数字化一个城市的层面来看,无疑对数字和计算的一个极致要求。我们要想做到算得起,算的快,算的准,就需要有一个强大的计算平台。
飞天2.0MaxCompute是阿里巴巴在9年前做飞天系统的三大件之一,分布式存储、分布式调度、分布式计算,它是分布式计算的部分。9年后的今天MaxCompute已经可以承载EB级的数据存储能力,百PB级的单日计算能力,在公共云上以及覆盖了国内外的十几个国家和地区,专有云上包含城市大脑在内部署超过100+套,整体已达到10万台规模。就是这样一个计算平台满足了包括城市大脑在内的所有计算力要求。
从系统架构来看,MaxCompute超大规模的计算服务最底层包含异构的计算集群,支持CPU、GPU、FPGA集群以及未来的智能硬件集群。这些集群分布在不同地方,通过统一的元数据管理和统一的调度系统联动在一起,在用户看来这10万台机器就是一台计算机。向上我们提供包括批计算、流计算、内存计算、机器学习、迭代等一系列计算能力,这一整套计算平台成为了阿里巴巴经济体,以及阿里云背后计算力的强有力支撑。
今天我想为大家展开介绍以下四点:
一,作为计算平台,计算力是最核心的指标。
在2015年GraySort 竞赛中,我们用377秒完成了100TB的数据排序,打破了此前Apache Spark创造的1406秒纪录,获得世界冠军。2016年我们又拿到了CloudSort最优成绩, 表明我们不仅算得快,而且算得便宜。2017年MaxCompute挑战TPCX-Bigbench 100TB 的30个query指标,成为全球第一个测试通过的计算引擎。2018年我们在同样的100TB规模上,性能指标提升了一倍。 另外在超小型10TB规模的指标上,我们与其他开源竞品进行了比对分析,性能超过开源竞品3倍。这是计算力的持续升级。也是满足数字洪峰涌进时对计算力的要求。通过这种方式使得计算力更便宜,也使得智能化更普惠。
第二,计算下推比数据上移更高效。
大多数用户上云,通常情况下数据不会在一个系统里。对于在线服务,数据通常会在数据库里支撑前台业务,对于半结构化log,以及非结构化的音视图等数据通常情况下存储在数据湖里。前端数据库的数据有非常丰富的index的支持,可以算的非常高效,后端是一个超大规模存储,中间是一个大数据体系,会把结构化数据以列式的方式存储下来支撑超大规模的数据计算。
这样就会面临一个挑战,就是用户预期要把所有数据放在一起来算,得到一个最好的结果。面对这种挑战,通常有两种解法,一种是所谓数据上移概念,就是把所有数据上移到统一系统中,上传同步之后再做计算,这样可以完成计算任务。但是会带来三个问题,一是数据冗余,相当于把同样数据备份一份或者两份;二是同步有延迟,在延迟里无法进行计算;三是实时性受影响。
基于此,我们提出联合计算的概念,我们认为计算下推比数据上移更高效。什么是联合计算呢?就是不需要数据同步,通过在大数据系统中的一个作业,可以联动其它系统。比如我可以在一个作业中把数据库系统的作业和大数据系统做一个join,在join时如果有 filter或aggregation,可以把部分计算下推到数据库系统中,由这个系统来计算。实现一个作业在多套系统之间的联动,在每一部分都依赖于当时系统最优的优化,做最优的决策,在这个层面上实现数据之间的联动和打通,这是联合计算的概念。
第三,Auto Data Warehouse让大数据自动驾驶。
这是我们希望今年可以在公共云上推出的一个新功能。 五年前我们在阿里面对了巨大的现实挑战,数据爆发式增长,每年增长几倍。以目前数字来看,平均每个阿里巴巴员工大概有100个作业,每天有五六百万作业在系统中跑。如果把这些作业平摊到负责数据平台的同学中,每个人负责几十万张表,十几万个作业。以人的理解力来讲,真的没有办法理解这些数据之间的关系和作业之间的关系,因为它过于复杂。
我们要怎么做呢?当时很难回答的一个问题是数据有没有冗余,计算是不是可以复用。如果某一个作业失败了,某一个数据出了问题,到底影响面有多大,这些问题当时没法回答。所以五年前,我们开始做一套系统,从最基本的数据可发现做数据地图开始,然后做数据血缘,找到数据之间的关系,看数据冷热之间分离能力,再看数据自动优化。到最后当有一张新的数据表进来时,自动去找关联关系,我们把这样的系统结合成Auto Data Warehouse数据自动驾驶系统。这套系统在阿里巴巴内部实践表明,在计算优化上提升了35%,数据冗余去重层面降低了20%的存储能力,在资源规划层面,提升了超过75%的计算效率。这套系统在阿里巴巴非常成功的得以实现,今年我们也会在公共云上提供给大家。
第四,MaxCompute是面向企业的完整服务,不只是单一引擎。
再回归到杭州城市大脑,可以看到这个平台不再是一个基础的平台,而是杭州城市背后的数据支撑系统。如果这个系统出现问题的话,很有可能对国计民生都有影响。这对于系统的要求除了计算力之外,又不仅仅是计算力,还包含稳定性,可容灾能力,可恢复能力,当交通出现拥堵,出现超大规模人流时的弹性能力等。当遇到突发情况,比如山竹,物理原因导致某些网络断掉时,我们有预警能力和自恢复能力。所有能力总结成一个词就是“企业化的能力。” MaxCompute不止是一个引擎,而是一整套平台,包含完整的企业化服务。
除了计算之外,包含账号系统,项目管理系统。账号系统听起来简单,如果一个企业有上万人用一个平台时,账号分离就变得非常关键了。 数据安全系统,是指把数据分成若干个属性,若干个数据标签。比如:高优先级,低优先级,高秘级,低秘级,高隐私、低隐私,什么样的数据授权给什么系统,授权给什么样的人,需要有系统保障。监控系统,则是我们不希望等系统出了问题时,用户才能知道,而是希望在系统可能要出现问题时,或者有概率出现问题时,能够做提前预警,做提前的处理。
今年我们也新推出了DQC数据正确性验证系统,当数据变得非常复杂时,会搞不清楚数据哪里出了问题。比如用户作业写错了,我们可以在若干个层面加以验证,通过一系列规则的方式保证数据的正确性。还有新推出的,已经实施在某些专有云项目里的多集群容灾系统,这套系统满足了金融性容灾系统,符合中国第一代金融法规要求。除了计算力,联合计算,智能化以外,开发同样很重要。阿里巴巴有超过1万人在这个平台上做开发,阿里云上有数万家企业客户在这个平台上做开发,影响几十万人,开发效率同样关键。今年我们全新升级了DataWorks开发和调试平台,更有数据集成系统,作业的pipline管理系统,同时可以和机器学习联动,和数据分析和BI平台联动,同时也推出APP Studio。除了引擎之外,整体把一个企业级的计算服务完整搭建到一起。
计算力,联合计算,智能化和企业级服务能力,构建成一个完整的大数据平台,我们将不断以技术驱动平台和产品化发展,让企业和社会能够拥有充沛的计算能力,持续快速进化,驱动数字中国。