写点什么

盘点:2018 年双 11 背后的蚂蚁核心技术

  • 2019-08-29
  • 本文字数:3349 字

    阅读完需:约 11 分钟

盘点:2018年双11背后的蚂蚁核心技术

小蚂蚁说:

你们都很关心的 “OB 双 11 大促实战分享” 专题来啦!本系列将为你系统性的介绍 OceanBase 支撑蚂蚁双 11 背后的技术原理和实战分享。

从平台到架构,再到实现,一起来探索蚂蚁双 11 这场神秘的技术之旅吧!


2018 年的双 11 十周年,最终成交额以 2135 亿元创纪录收官,支付宝系统在这场“商业奥运会”中再次经受住了考验。这也是 OceanBase 顺利支撑蚂蚁双 11 的第五年。


从五年前,只有 10%流量切到 OceanBase 上,到如今 OceanBase 2.0 版本成功支撑 2018 年双 11 的支付宝核心链路。每年不变的是一如既往的表现平稳,丝般顺滑,变化的是技术能力的不断升级和迭代。今年的双 11,OceanBase 2.0 扛起了大梁,性能比去年提升了 50%,真正实现了“零成本”支撑大促。

一、2018 双 11 大促使用了哪些核心技术?

今年的双 11,OceanBase 致力于通过底层架构及平台能力的提升,来实现双 11 稳定性、成本优化、性能及效率方面的全方位的提升。相较以往始终如一“丝般顺滑”的大促能力外,2018 年的双 11,OceanBase 更加注重长久技术能力的沉淀:


  • OceanBase2.0 版本首次上线支付宝的核心链路,包括交易、支付系统,为“峰值百万支付能力”的三年战略沉淀了通用的“极致弹性”的分布式数据库能力,夯实了百万支付的底层基座。

  • 在底层存储介质方面,OceanBase 2.0 核心链路首次 100%运行在容器上,同时存储计算分离架构上线,大幅降低资源成本的同时夯实统一存储基座。

  • 在智能化运维的实践方面,OCP(OceanBase 云平台)着眼于 SQL 优化诊断、故障根因分析和智能容量规划等数据库关键场景,将数据库专家的经验与 AI 算法/机器学习相结合,提供智能化的数据库服务。

  • 在平台能力的沉淀上,OCP 引入 Orchestration 理念,通过编排/复用原子变更任务灵活,实现大促快速弹出/弹回的流程,同时平台内置变更免疫及变更三板斧能力(可监控/可灰度/可回滚),极大的提升了大促整体的稳定性和效率;在整个大促期间,OCP 自动执行 40000+变更,最终实现全程零故障。


在商业产品化方面:智能化运维及平台能力抽象出大促及对外商业化场景,建设通用能力来覆盖蚂蚁内外场景

二、OceanBase 2.0 & 百万支付

每年双 11 的压力在不断创造新高,支付系统需要具备百万每秒的支付能力,那么一个亟待解决的问题是:如何解决最小数据分片的峰值能力超过单机性能的问题。


OceanBase 2.0 应运而生,其目标是在应用无感知的情况下对数据分片进一步拆分,将数据 sharding 到无限多的机器上,实现极致弹性能力优雅支撑百万支付峰值。

1.百万支付架构

如下图的百万支付架构所示,传统数据库的弹性架构,将数据进行物理拆分到不同机器,业务在数据访问、研发、后期维护及数据配套设施上都非常繁琐;同时拆分后资源很难快速回收,且数据拆分及聚合无法实现业务无损。



相比于传统数据库的弹性架构,OceanBase 2.0 架构完全不侵入业务,内部通过分区实现数据分片的自组织及负载均衡,通过生成列及分区规则实现自动路由,通过分区聚合(partition_group)消除分布式事务性能开销以提升性能,从而实现无损线性伸缩。另外,数据分片间 share_nothing 及多版本的架构,实现分片故障隔离及单点故障消除的高可用架构。

2.性能提升

为实现“零成本大促”,OceanBase 2.0 花了非常多的精力致力于性能的提升。相比 OceanBase1.0,2.0 在分布式架构上全面升级,如原生 sharding/分布式事务优化/优化事务提交日志开销。


OceanBase 作为底层基础软件,任何微小的性能提升都会为业务节省大量资源,秉承持续优化的匠心,OceanBase 2.0 在数据库底层架构、系统实现层面及数据库运行环境全方位进行优化。最终,OceanBase 2.0 相比 1.0 提升了 50%的性能,实现今年双 11 大促的零机器增加。

三、OceanBase 容器化 & 存储计算分离

双 11 峰值需要大量的资源支撑,而峰值后资源处于低水位状态,如何快速申请/释放这部分资源?双 11 当天非支付链路资源空闲,大促是否可以抢占这批资源?大促不同活动时间错峰,不同链路的资源可否实现快速腾挪?类似的资源问题不一而足。


大家可以发现以上问题的本质在于:如何最大化程度降低双 11 当天的资源成本?这是大促技术要实现的一个核心价值。


双 11 大促资源成本与两个因素相关,一个是大促资源的总数目,另一个是持有时长。我们可以通过系统优化提升单机性能,来降低大促资源的总数目(如前章节提到的 OceanBase 2.0 的性能优化)。


那么如何降低持有时长呢?我们统一的思路是:用“高峰期抢占/低峰值释放资源”的方式来大幅降低持有时长;其两个关键前提技术就是容器化和存储计算分离。

1.OceanBase 容器化

OceanBase 容器化的核心思想是“资源调度”,大促目标就是“OceanBase 能够被快速调度到各种资源载体上(如离线资源、云资源、峰值无压力的数据库其他集群)”;容器化屏蔽了底层资源载体的差异化,具备弹性部署高效的优点,是资源调度的前提条件。OceanBase 打造自身调度能力,深入结合副本、租户的概念,精细化资源画像,使得 OB 容器化部署快速实现分时复用、资源抢占及混部。

2.存储计算分离

存储计算分离,顾名思义,将数据库运行依赖的计算资源和存储资源部署到不同的资源载体上,从而实现数据库的弱状态化,使得数据库可分别对存储和计算资源进行弹性伸缩。其好处是显而易见的。


典型场景:


大促态——CPU 资源需求激增,而存储资源增幅很小,那么我们可以针对性对计算资源的机型进行扩容,从而降低资源成本且提升扩容效率;


日常态——OB LSM 架构将离散 IO 转化成顺序 IO,因此存储的 IO 能力不是瓶颈,更多的是存储空间上的需求;存储计算分离后,多集群间可降低存储碎片,共享整体存储资源池,提升资源利用率。

四、平台智能化

随着业务规模的快速增长,系统稳定性 SLA 预发严峻和 OceanBase 部署的多样化,传统平台已无法满足我们的需求,可以预见不久的将来,运维将成为业务扩展的瓶颈。因此,OceanBase 平台正在逐步走向智能化道路实现智能运维。


OCP 着眼于 SQL 优化诊断、故障根因分析和智能容量等大促关键场景,目标是将运维专家的技术经验和 AI 算法/机器学习技术相结合,分解运维关键技术,开发成一系列的智能运维模型,应用于大规模运维系统中。


众所周知,SQL plan 的正确性对数据库运行至关重要。OCP 针对风险场景 SQL,在千万峰值压力下,实时进行 plan 正确性比对,并对可能存在性能变坏隐患的 SQL 进行分钟级修正。


容量水位是大促至关重要的一环,OCP 通过数据建模/智能水位预测对集群/租户/docker 进行容量画像,结合 OceanBase 内置 Tenant Group 能力,实现容器/集群/租户等多个维度的自动扩缩容,同时计算容量 plan 在集群/租户维度混部,实现最佳负载均衡部署【 深度部署资源利用率达到(n-1)/n 】,大幅节省了机器资源。


OCP 作为 OceanBase 的“智能大脑”,实时监控数据库运行状态,小至单条 SQL plan,大至数千台机器容量,真正做到了生产环境智能化全覆盖。未来,OCP 还将不断创新数据库智能化的运维之路,打造更加完善的数据库自治体系。

五、生态与连接

蚂蚁金服与金融机构最早建立的连接是基于支付业务的合作,后来又逐渐扩展了很多其他普惠金融类的业务,比如网商银行的同业合作,借呗/花呗等。如今随着在蚂蚁金服内部多年积累的技术能力与产品能力,OceanBase 也将全面走向外部,对所有行业开放,通过科技作为新的连接纽带助力企业的数字化转型。


过去金融业 IT 系统的基础架构建设基本都来自国外,如 IBM、甲骨文、EMC 这些公司构建底层架构,其中门槛最高的就是数据库的整体平滑替换。OceanBase 团队从成立之初就肩负着使命,即我们要做一款通用数据库真正的去推动整个社会的进步,能够让整个社会的生产力发生变化。


从 2016 年底,OceanBase 就开始准备走出去,用技术改变业务形态;用技术创造新的业务模式,与更多企业建立更为紧密的连接关系。近两年对外服务的过程中,通过与 ISV 的深度合作与赋能,不仅提供 OceanBase 内核的能力,也不断丰富周边配套产品生态,涵盖使用数据库过程中的方方面面。


未来,我们将继续致力于提供高可用、高性能、低成本的数据库服务,相信通过科技的连接助力更多企业,让科技的产出变成可以量化的业务价值。



本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)。


原文链接:


https://mp.weixin.qq.com/s/UMZxWgjI3HxtR1FneS06dA


2019-08-29 18:32926

评论

发布
暂无评论
发现更多内容

MySql基础-笔记4 -数据表创建、删除和数据插入、查询等操作

MySQL 数据库 删除 创建

MASA MAUI Plugin (八)Android相册多选照片(Intent 方式)

MASA技术团队

.net blazor MAUI MASA Blazor

MySql基础-笔记10-索引

MySQL 数据库

风险洞察之事件总线的探索与演进

京东科技开发者

京东云 事件总线 京东技术 数据管道 风险洞察

微服务拆分治理最佳实践

京东科技开发者

数据库 微服务 京东云 京东技术 安全接口

MySQL审计插件-MariaDB Audit Plugin

GreatSQL

:MySQL 数据库 maria greatsql greatsql社区

飞桨全量支持业内AI科学计算工具——DeepXDE!

飞桨PaddlePaddle

人工智能 深度学习 开源

MySql基础-笔记11-临时表、复制表、元数据、序列使用

MySQL 数据库

AI for Science系列(三):赛桨PaddleScience底层核心框架技术创新详解

飞桨PaddlePaddle

人工智能 paddle 飞桨 框架技术

GhatGPT在信息安全方面的应用

HummerCloud

ChatGPT

单元测试利器——手把手教你使用Mockito

京东科技开发者

单元测试 Mockito 京东云 安全测试 京东技术

乌卡时代的云成本管理:从0到1了解FinOps

SEAL安全

云服务 FinOps 企业号 2 月 PK 榜

搜索EE场景排序链路升级

京东科技开发者

模型 搜索 EE 企业号 2 月 PK 榜 Explore & Exploit

项目终于用上了低代码,才知道为什么真香了!

引迈信息

项目管理 低代码

软件测试/测试开发 | App测试时常用的adb命令你都掌握了哪些呢?

测试人

android 软件测试 自动化测试 测试开发 adb

MySql基础-笔记6 -排序、分组、连接的使用、NULL值处理

MySQL 数据库

软件测试 | 霍格沃兹线下班开课啦!

测吧(北京)科技有限公司

测试

MySql基础-笔记5 -WHERE 、UPDATE、DELETE、LIKE、UNION使用

MySQL 数据库

MySql基础-笔记9 -ALTER命令

MySQL 数据库

Gluten 首次开源技术沙龙成功举办,更多新能力值得期待

Kyligence

开源技术 Gluten

活动回顾丨研发效能度量线下沙龙圆满举办

Kyligence

数据分析 Kyligence Zen

AI for Science系列(二):基于AI框架的CFD工具组件!赛桨v1.0 Beta API介绍以及典型案例分享!

飞桨PaddlePaddle

深度学习 paddle API 飞桨

长安链入选“2022科创中国”开源创新榜

科技热闻

直播预告 | 企业如何轻松完成数据治理?火山引擎DataLeap给你一份实战攻略!

字节跳动数据平台

数据库 大数据 数据治理 数据实践

推荐系统[二]:召回算法超详细讲解[召回模型演化过程、召回模型主流常见算法(DeepMF_TDM_Airbnb Embedding_Item2vec等)、召回路径简介、多路召回融合]

汀丶人工智能

自然语言处理 深度学习 推荐系统 搜索算法 召回算法

Unittest接口和UI自动化测试框架中的发送邮件服务如何使用?

Python 自动化测试 unittest 邮件服务

中科协发布2022“科创中国”开源创新榜 OceanBase开源社区入选

OceanBase 数据库

数据库 oceanbase

本周 2 场直播预告!Intel 高级工程师带你探索开源机密计算社区 CCZoo | 第 65 期

OpenAnolis小助手

云计算 运维 直播 intel 龙蜥大讲堂

使用 NGINX 在 Kubernetes 中对 TCP 和 UDP 流量进行负载均衡

NGINX开源社区

nginx Kuber udp tpc 企业号 2 月 PK 榜

10分钟学会使用 Loki 日志聚合系统

北京好雨科技有限公司

Kubernetes 云原生 rainbond 企业号 2 月 PK 榜

盘点:2018年双11背后的蚂蚁核心技术_文化 & 方法_天街_InfoQ精选文章