2017双11技术揭秘—阿里巴巴数据库技术架构演进

标签: geek | 发表时间:2018-01-03 00:00 | 作者:
出处:http://itindex.net/relian

摘要: 每年电商双11大促对阿里技术人都是一次大考,对阿里数据库团队更是如此。经过9年的发展,双11单日交易额从2009年的0.5亿一路攀升到2017年的1682亿,秒级交易创建峰值达到了32.5万笔/秒。支撑这一切业务指标的背后,是底层技术体系的一次次迭代升级。

作者:谌文涛(俞月)

每年电商双11大促对阿里技术人都是一次大考,对阿里数据库团队更是如此。经过9年的发展,双11单日交易额从2009年的0.5亿一路攀升到2017年的1682亿,秒级交易创建峰值达到了32.5万笔/秒。支撑这一切业务指标的背后,是底层技术体系的一次次迭代升级。
图片描述

阿里巴巴数据库系统经历了10多年的发展,今年正式确定从 第三代大规模分库分表 向 第四代X-DB分布式数据库系统 演进的目标。X-DB分布式数据库的落地已经在2017年双11大促中获得了可行性验证,同时底层开始引入存储计算分离架构。分布式在系统稳定性、容灾能力、容量扩展性、技术体系内聚性上有了质的提升,今年双11开启了阿里数据库技术架构新的篇章。
图片描述

本文以阿里电商交易链路中的核心系统库存中心为例,一窥阿里集团数据数据库的发展历程。库存中心数据库集群(简称库存DB集群),从2012年独立拆分后,其发展可以概括为以下3个阶段:

2012~2013年:分库分表水平拆分,构建大规模数据库集群
2014~2016年:单元化异地多活架构,数据多单元间同步
2017年:X-DB 1.0分布式集群部署上线,新的起点
作为阿里数据库体系中的核心系统,库存DB集群的发展历程可以作为缩影,代表了阿里巴巴数据库体系的演进。

诞生
库存DB集群诞生于2012年,是业务垂直拆分的产物。库存最早是商品中心数据库的一个字段,随着淘宝业务的复杂化,单一字段已经满足不了基于后端仓储的库存管理体系,所以便有了垂直拆分出来的库存DB集群。

水平拆分
2012~2017年,双11交易额一步步的刷新纪录,库存DB集群的QPS/TPS也实现了几十倍的增长。水平拆分的基本思路是把数据库扩展到多个物理节点上,让每个节点处理不同的读写请求,从而缓解单一数据库的性能问题。

借助于数据库团队的DTS(Data Transmission Service)产品,库存中心进行了大规模的水平拆分,分库和分表数量扩展到最初的几百倍,平稳的支撑了这一个阶段业务的快速发展。与此同时,在热点商品扣减、防超卖数据强一致需求、跨城异地容灾数据质量问题、业务数据量急剧膨胀、超大规模数据库集群运维等问题点上,迫切需要新一代架构来解决。

异地多活单元化
2014~2015年,为了进一步提升用户的购物体验,库存DB集群与主站交易链路一同做了单元化部署。单元化很大程度上解决了买家的使用体验问题,在本单元内封闭完成读写操作。但是对于卖家维度的数据,比如编辑商品、扣减库存,就会涉及到跨单元中心去写。关于单元化架构,之前已经有了很多介绍。

有了多个单元,对于底层数据库来说,面临的最大挑战就是数据同步,因为对于单元封闭的买家维度的数据,需要把单元的数据全部同步到中心;对于读写分离类型的业务,我们要把中心的数据同步到单元。这条数据通道就是依靠DRC(Data Replication Center)来完成。

如今,DRC不仅成为集团单元化链路的基础设施,对应的云产品DTS已经从2016年开始让阿里云用户、聚石塔商家低成本的搭建异地容灾。单元化架构给库存DB集群带来的最大挑战是多单元间的数据强一致问题,我们也为此做了很大的努力。
图片描述
X-DB分布式集群
2017年双11,库存DB集群第一次使用X-DB 1.0分布式集群部署,平稳的支持了32.5万笔/秒的交易创建峰值。X-DB是阿里巴巴自研高性能分布式可全球化部署数据库,其核心技术目标概括为以下6点:

100%兼容MySQL生态,应用无缝迁移
跨AZ、Region的全球化部署能力,5个9以上的可用率
自动化的数据Sharding,计算、存储均可水平扩展
高性能的事务处理,相同硬件下达到MySQL 10倍的事务处理能力,百万TPS
自动化的数据冷热分离,存储成本为MySQL的1/10
计算存储分离,存储按需扩展
库存DB集群双十一部署架构:
图片描述
正是由于X-DB提供了全面兼容MySQL、高性能、低成本、跨城容灾、数据强一致的能力。在2017年年初,数据库团队和业务研发团队确定了在库存中心部署X-DB 1.0的目标,解决业务目前面临的痛点:

全面兼容MySQL,实现业务系统平滑迁入
极致性能,双11单实例热点扣减峰值TPS是去年的3倍
低成本,相比于传统的单元化主备架构部署,减少2个数据副本以及单元间数据同步资源成本
跨城容灾,借助Batching和Pipelining技术实现跨城强同步场景吞吐量几乎无衰减
数据强一致,借助Paxos协议提供多单元间数据强一致能力;批量关闭中心集群全部实例,集群30秒内完成单元选主切换,数据零丢失
计算存储分离,彻底解决传统机型计算资源和存储资源固定配比问题,搭配容器化技术,大促峰值期间将数据库弹性部署运行在离线任务主机,落地零扩容成本支持双十一大促
X-DB首次亮相在2017年双11的舞台,平稳支撑零点峰值32.5万笔/秒,开启了阿里数据库体系从分库分表时代向分布式集群时代的大门。技术之路永无止境,我们今天的技术现状离业务对我们的要求还有很大的差距。但是千里之行,始于足下,借用《魔戒》里的经典台词:“There’s some good in this world, Mr. Frodo. And it’s worth fighting for.”

相关 [技术 揭秘 阿里巴巴] 推荐:

2017双11技术揭秘—阿里巴巴数据库技术架构演进

- - IT瘾-geek
摘要: 每年电商双11大促对阿里技术人都是一次大考,对阿里数据库团队更是如此. 经过9年的发展,双11单日交易额从2009年的0.5亿一路攀升到2017年的1682亿,秒级交易创建峰值达到了32.5万笔/秒. 支撑这一切业务指标的背后,是底层技术体系的一次次迭代升级. 每年电商双11大促对阿里技术人都是一次大考,对阿里数据库团队更是如此.

解密阿里巴巴的技术发展路径

- - 钛媒体网
2008年的一天, 阿里巴巴集团(下称“阿里”)开了一次内部会议. 在这次当时看来很平常的会议上,明确了两个议题:一,阿里是一家数据公司;二,阿里要把“计算”变成一种像水和电一样的公共品. 当时在中国还没有人谈“大数据”的概念;更没有人想到云计算会和一家互联网公司未来发展如此紧密. 1999年阿里成立之初,创始人“十八罗汉”中就不乏 技术基因.

解密:阿里巴巴公司根据截图查到泄露信息的员工的技术是?

- - 博客园_新闻
本文作者 fuqiang liu,文章原载于知乎,雷锋网已获授权. 本文通过一个的实验,简要介绍频域手段添加数字盲水印的方法,并进一步验证其抗攻击性. 在上述实验的基础上,总结躲避数字盲水印的方法. 本文分为四个部分,第一部分综述;第二部分频域数字盲水印制作原理介绍;第三部分盲水印攻击性实验;第四部分总结;.

为什么 K8s 在阿里能成功?| 问底中国 IT 技术演进 - 阿里巴巴云原生 - 博客园

- -
曾凡松 阿里云云原生应用平台高级技术专家. 张振 阿里云云原生应用平台高级技术专家. 导读:本文描述了阿里巴巴在容器管理领域的技术演进历程,解读了为什么 K8s 最终能够大获成功的原因,以及到今年 双11 阿里巴巴内部的 K8s 应用情况. 内容着重描述了阿里巴巴基于 K8s 的云原生改造实践过程的三大能力升级,在对应能力升级过程中沉淀的技术解决方案,以及通过这些能力升级所取得的业务价值.

阿里巴巴的零知识证明

- 见涛 - 科学松鼠会
战争中你被俘了,敌人拷问你情报. 你是这么想的:如果我把情报都告诉他们,他们就会认为我没有价值了,就会杀了我省粮食,但如果我死活不说,他们也会认为我没有价值而杀了我. 怎样才能做到既让他们确信我知道情报,但又一丁点情报也不泄露呢. 这的确是一个令人纠结的问题,但阿里巴巴想了一个好办法,当强盗向他拷问打开山洞石门的咒语时,他对强盗说:“你们离我一箭之地,用弓箭指着我,你们举起右手我就念咒语打开石门,举起左手我就念咒语关上石门,如果我做不到或逃跑,你们就用弓箭射死我.

[原]阿里巴巴B2B搜索学习

- - 文武天下
主搜索:商品搜索、商家搜索、采购搜索、app搜索. 行业搜索:淘货源、淘工厂、聚好货、主题市场、品牌馆等. 由于用户多,需求强烈,收益大,所以功能、场景、架构做到极致高效. 代码复用性强:基础通用功能进行组件抽象化. 组件通用性好:一些组件或者组件进行组合的服务,适用更多场景,支持更多功能. 转化效果好:算法做的比较深入、细致.

来阿里巴巴一年有感(中)

- - Shining Ray
阿里巴巴现有有3万名员工,工号已经排到了12万. 如此庞大的组织,如此多的部门、单元,能朝着同样的愿景去一致行动,仿佛一个有机的整体,可见其管理体系的完备. 当我加入这样一个庞然大物,心情颇像《海上钢琴师》中的主角 1900 要踏足陆地进入城市,担心自己能不能适应好这个组织,发挥出自己的能力. 而经过一年的学习,跟随着其他同事做事,耳濡目染也学到了不少技巧.

专访阿里巴巴研究员赵海平:从Facebook到阿里巴巴

- - 博客园_新闻
赵海平,2007 年加入只有不到 50 个软件工程师的 Facebook,致力于软件性能和架构分析,在此期间创建了 HipHop 项目,重新编写和实现 PHP 语言,使其速度提高 5 到 6 倍,为公司节约数十亿美元. HipHop 项目之后,致力于“用异步处理来优化分布式系统”的设计理念中,并为此做了多项分布式数据库的优化研究,在 PHP 语言中加入了 yield 和 generator 的新功能,来帮助日趋复杂的 Facebook 网页设计.

阿里巴巴开源项目: 阿里巴巴去Oracle数据迁移同步工具

- - agapple
   08年左右,阿里巴巴开始尝试MySQL的相关研究,并开发了基于MySQL分库分表技术的相关产品,Cobar/TDDL(目前为阿里云DRDS产品),解决了单机Oracle无法满足的扩展性问题,当时也掀起一股去IOE项目的浪潮,愚公这项目因此而诞生,其要解决的目标就是帮助用户完成从Oracle数据迁移到MySQL上,完成去IOE的第一步. .