目录 封面故事 在阿里达摩院搞了四年数据库,我来聊聊实际情况i 重磅访谈 不到三年覆盖25个行业,华润集团系统上云比例超过99%1 突围电商大促场景,得物在高可用上的探索与实践14 用三年替换掉二十年老系统,民生保险数字化转型秘籍28 从基础架构到用户体验,字节跳动是如何打造移动端架构团 队的?38 一年100%云原生化,众安保险架构演进的探索与实践48 封面故事 在阿里达摩院搞了四年数据库,我来聊聊实际情况 嘉宾:汪晟、谭剑和谢炯作者:罗燕珊 编辑:钰莹 2017年的云栖大会,阿里巴巴达摩院宣布成立。 5大研究方向,16个实验室,数据库与存储实验室便是达摩院下设实验室之一。成立伊始,达摩院定位发力硬核基础科技。 前沿数据库技术,就是发力方向之一。 五年时间,社交媒体上每隔一段时间就有人出来问“阿里达摩院搞出来什么成果了?”,“阿里达摩院的技术水平是什么样的?”,“达摩院里面的人平常的KPI是什么?”,“什么样的人可以进阿里达摩院?”…… InfoQ日前对达摩院数据库与存储实验室的三个核心团队的负责人汪晟、谭剑和谢炯进行了集中采访,了解他们在数据库前沿研究的具体工作,以及这些工作对阿里云数据库实力的加持,同时也一窥达摩院的人是如何开展研究工作的。 密态数据管理,重新定义数据要素时代的安全边界 数据有望成为新型生产要素推动社会变革,然而现阶段却面临着巨大挑战。人类社会的演进离不开生产要素的升级:从农业经济时代的土地、劳动力,到工业信息时代的资本、技术。在如今的数字经济时代,全球数据爆炸式增长,大数据、人工智能等技术不断涌现,数据正俨然成为这个时代最核心的生产要素。然而,为使数据真正成为生产要素,我们仍然面临着巨大的挑战:不同于其他生产要素,数据的易复制性、非排他性等特征导致其极易被泄露、难以被限制用途用量,如何在保障数据机密性、隐私性的前提下进行数据的大规模集中管理和跨组织有序流通是数据走向资产化的一大挑战。 “博士期间,我的研究方向是传统的数据库系统内核,与数据安全并没有太多关联。加入达摩院后,我逐渐意识到在云计算、数据互联迅速普及的当下,数据管理与流通 中的隐私安全是非常严峻的挑战,会成为数据库系统突破其能力边界的一个重要方向。但具体可以做成什么样子,我脑子里起初也很模糊,只是不停地朝着这个方向探索。” 汪晟于2018年加入达摩院,是数据库与存储实验室的第一位专注基础研究的科学家 (ResearchScientist)。自加入之后,他就开始探索数据库安全可信方向的研究,并带领团队从0到1完成了全密态数据库技术的研究突破与产品落地,使阿里云成为了全球少数具备全密态数据库管理能力的云厂商。 传统数据库系统的安全体系中已经有很多经典的技术,比如存储落盘加密、访问控制、网络传输加密等。但所有这些技术考虑的情境是:数据库管理着企业内部的数据,数 据库服务所在的服务器被放置在企业专属的、物理安全的机房中,数据库与服务器的管理人员是完全被信任的企业内部员工,安全防护措施只需要保证没有权限的外部人员无法访问数据库即可。 但是,数据应用和云计算的出现改变了数据的使用和管理方式,从而颠覆了上述情境。 例如,数据应用业务链路越来越复杂,经常涉及企业自己数据在其他企业的系统中流动(比如电商场景的平台、商家、物流等),不同企业间是不完全信任的;在企业内部,业务团队的数据是由IT基础设施团队统一管理的,不同团队间也可能是不完全信任的。也就是说,数据的机密性、完整性、隐私性等问题,这是传统数据库系统在设计时从未考虑过的。 因此,业内也开始将研究重点聚焦在全密态数据库上。 全密态数据库旨在解决数据全生命周期的隐私保护问题,使得系统无论在何种业务场景和环境下,数据在传输、运算以及存储的各个环节始终都处于密文状态。当数据拥有者在客户端完成数据加密并发送给服务端后,在攻击者(包括黑客、超级用户等任何角色)借助系统脆弱点窃取用户数据的状态下仍然无法获得有效的价值信息,从而起到保护数据隐私的作用。 全密态数据库这个概念可追溯至2010年MIT提出的CryptDB,该项目不是指某种特定的数据库,而是一种针对加密数据的查询技术,允许用户查询加密后的SQL数据库,在不解密数据的情况下返回结果。 CryptDB使用的是特殊的加密算法,包括保序加密、可检索加密、半同态加密等,但各算法支持的计算操作极为有限,安全强度也各异,难以在复杂的业务场景中使用。 此外,全同态加密被誉为密码学领域的圣杯,一旦实现就代表着所有计算都可以在密文上执行,且其安全性也能得到保障,因此受到了学术界的追捧。但其性能非常低,虽然过去几年业内有很多研究机构推出了各种各样的加速方案,但实际效果还是会与其他方案存在数量级上的差距。那么,其他方案具体是指什么呢? 第二种方案是多方安全计算。将数据存放在多个互补共谋的云平台之上,单一云平台上的数据显示为毫无意义的字节串,多个云平台的数据组合在一起才可以计算出想要的结果。其缺点是受到多云架构的制约,与集中化、单一的云平台设计初衷相违背,数据计算过程严重依赖跨云或者跨数据中心的网络交互,信息传输成本极高,难以处理大规模数据。 第三种方案是基于可信硬件(TEE)的方式实现。相较于普通服务器只需要有根用户或超级用户权限就可以访问任何进程中的任何数据内容,可信硬件内部的资源是由硬件机制保证隔离的,即便拥有上述权限也无法访问由可信硬件保护的区域内部。即便攻击者控制了整个服务器也无法窃取其中的数据。这种模式的缺点是十分依赖硬件的能力,且存在侧信道攻击隐患等。目前国际上比较成熟的是英特尔的SGX技术,达摩院内部也已经具备自研的TEE技术。 汪晟团队对上述三种技术方案均有研究布局,但技术研究和产品落地是两回事,经过多方权衡,团队当前选择了第三种方案进行商业化落地。 “阿里云是全球第三的云计算提供商,支撑着无数企业用户。我们希望研究出来的密态数据管理技术可以适用于任何场景下的任何数据库系统,且在硬件加持下,最终的性能损耗是可以无限趋近于零的。如果针对特别敏感的数据子集,不希望依赖硬件安全,我们可以对这部分数据使用同态加密算法做进一步加固,这自然是建立在牺牲性 能的基础上实现的,需要企业自行抉择。” 在2020年初,汪晟团队的研究成果已经开始在阿里集团内部业务试运行,2021年9月份,全密态数据库系列产品正式在阿里云对外发布,成为全球第二个全密态数据库云服务。阿里云的几大数据库产品,比如PolarDB、RDS均已接入该能力。 从性能指标来看,在事务型(OLTP)场景下,性能可以达到明文数据库的50%到90%,具体性能损耗与实际运行的工作负载有关,这个损耗与业内其他方案相比已经把控得相当优秀了。当然,用户可以在安全与性能之间自行选择向哪一侧倾斜。 从改造视角来看,团队发现实际落地需要考虑的问题不单单是产品技术能力本身,更需要考虑与原有数据库的兼容性、降低迁移成本和提供回迁备案等。基于这些诉求,团队又研发了定制的数据库连接驱动,在业务无感的情况下自动完成数据加解密,无需修改应用侧代码。 “提供数据库内的密态数据管理能力只是个开始,最终企业客户希望得到的一定是覆盖整个数据生命周期全链路的密态数据管理能力。只有做到了这一点,才能真正实现数据要素的资产化和市场化,这是个更具挑战但也更有价值的研究问题。” 汪晟团队的研究不仅停留在数据库系统层面,面向上述数据全生命周期密态管理的问题,他们最新的研究成果已经转化为学术论文发表在了数据库领域顶会VLDB’2022上,得到了业界同行的认可。除此之外,他们在防篡改数据存储、隐私增强计算引擎等全方位数据安全技术的研究和产品化上也在进行着持续的探索突破。 在汪晟闷头研究数据库安全可信技术的时候,同处一个实验室的谭剑正在思考数据库到底能不能“自动驾驶”。 AIFORDB:让数据库实现“自动驾驶” 1970年代,DBMS的出现简化了应用开发人员对数据进行统一管理的棘手问题。数据库通过关系型模型和SQL声明式语法,为事务、存储、查询、性能等一系列问题提供了一个高效的,自动的解决方案。这个阶段数据库的优化工作聚焦在数据库内核的若干基础原子能力,例如针对索引,或分区分表等“点”上的自动优化。 1990年代,主流的DB2,Oracle等数据库推出更加全面的专家自动优化系统,可以在一个更大的决策空间中对不同配置下的系统性能进行估计,用来指导系统的自动优化。虽然在之前“点”上的优化进一步扩大到了“面”,但大多时候仍然高度依赖DBA的经验和人的手工操作。 2010年代,云计算的兴起对数据库自动驾驶的能力提出了更高的,更直接的要求。在云原生数据库的弹性平台之上,单纯依靠人力已经不可行,迫切要在更丰富的“体”上,对多样的数据库形态实现要求更高的“自动驾驶”。其实关于数据库自治的研究早在十几年前就已经在学术界提出,但真正的大规模商用落地则是在云计算成熟之后的近几年。谭剑团队推出的数据库自治产品DAS,自成为阿里云产品以来用户数和营收近两年一直保持在70%到80%以上的快速增长,就是一个直接的证明。 Gartner报告指出,预计到2023年全球75%的数据库都会跑在云上,这与传统数据库的天下发生了本质变化。在这么一个复杂的系统环境中,数据库运行的过程中会出现各种性能问题,概括起来主要分为三类: 一是从可观测的角度,数据库性能指标多,难快速形成对故障的可解释性诊断;从可控制的角度,难做到对实例的个性化运维。比如,DAS支持的一个典型头部客户,一个DBA管理了数百个数据库实例,性能问题和故障告警很容易淹没在海量的观测数据之中,故障现场也很难捕捉,要做到故障定位和快速精准恢复就更难了。 二是数据库要做到24小时永不停歇,持续调优,保持稳定,传统上需要专业的DBA 来负责,需要丰富的运维经验。但是,对于云上的大规模数据库,由于人力不足或者经验存在差异,并不总能保质保量的解决问题,而这种不确定性在要求很高的商用生产环境中是要尽力避免的,因为“线上问题无小事”。 三是面对发展的业务对资源需求的动态变化,如何做好容量规划和资源优化,避免人工频繁干预,降低运维成本,这些都是在云时代的背景下,企业和开发者对自治数据库的实质需求。 从技术层面来看,数据库自治是一系列原子技术的组合,广义上包含两大类:数据库外部运维和内核技术的智能化。外部运维就是最近流行的AIOps,内核技术则是用AI技术提升数据库内核的某些性能。目前学术上对后者有很多前沿研究,比如MIT提出过使用深度学习网络代替B-tree做索引,在一些实例上取得了不错的效果;IBM使用深度模型做SQL执行计划优化等。但是,目前离成熟的、大规模产品落地还有一段距离。 “当前,业界的实现路径呈现‘百家争鸣,百花齐放’的状态。我们采取的策略是‘外围包围内核’,先从AIOps做起,逐步进入内核智能化的领域。不过有时候这两者界限并非那么明显,我们有的产品能力本身属于内核能力的一种外置。例如我们研发的外置SQL优化,对MySQL等开源数据库特别适用。商用数据库往往都有很成熟的执行器优化,可惜是几个传统头部数据库公司的商业机密。对开源托管类的数据库,往往是欠缺的状态,而我们提供的外置优化可以直接解决客户很多问题。” 数据库自治DAS基于全量SQL和性能指标的大数据能力,深度融合人工智能和专家经验,可以分成上游的可观测技术,和下游的可控制技术两个系统。上游包括例如异常SQL定位,信号异常检测,针对稀疏数据或倾斜分布的高效统计采样,还有把观测 技术的结果按场景进行归类,用来驱动下游的控制。下游技术包括例如SQL外置优化,限流,压测,调参,弹性扩缩容,资源调度,SQL审计等。这是一个复杂的,包含众多原子技术的体系。通过单点技术的原子能力,加上体系上的构建的丰富的产品功能,和阿里云上独有的规模化的服务,三者的结合构成飞轮效应,呈现给用户智能化的数据库自治能力,让用户聚焦在自己的业务创新和发展上。 对自治中可控制技术的部分,数