首页 > 科技 > 提高 10 倍性能,揭秘淘宝、天猫背后的图片存储如何扛住双十一巨流?| 问底中国 IT 技术演进

提高 10 倍性能,揭秘淘宝、天猫背后的图片存储如何扛住双十一巨流?| 问底中国 IT 技术演进

2019天猫“双11”,零点钟声刚过去1分36秒,成交额已突破100亿元人民币,最终成交额为2684亿,又一次刷新了世界记录。

对象存储OSS作为淘宝、天猫、支付宝等核心阿里App背后的图片存储底座,又一次平稳的顶住了双11凌晨洪峰,并且提供了10倍的图片浏览性能优化,在本文中,来自阿里云资深技术专家罗庆超将为大家揭秘OSS背后的稳定性设计。

作者 | 罗庆超,阿里云资深技术专家

责编 | 屠敏

前言

阿里云对象存储OSS是阿里集团非结构化数据的统一存储系统,支撑了集团内的大量业务,存储了海量的图片、视频、音频、文档等文件。OSS的同城冗余存储特性为蚂蚁主站实现世界领先的容灾能力提供了RPO为零的技术支撑,完全自主研发的FPGA图片处理功能以5倍的单机性能、1/10的处理延迟,为双11提供了更稳定、更高效的服务能力。

OSS双11稳定性工作思路

OSS很早就参与了双11支撑,在业务洪峰的不断打磨下,持续淬炼产品的架构、特性、稳定性,通过多年的摸索,总结了如下支撑双11稳定性的思路,作为大促支撑的工作指南。

2.1 业务规划

今年双11的主题是一心一役,为了打好这场战役,团队详细梳理了业务情况。整体来看,集团上云到OSS的核心业务主要支撑淘宝天猫的图片、视频浏览,为了保证无损的切换、以及体验优化,制定了2阶段的迁移目标:

  • 第一阶段目标为OSS适配业务,保障平滑切换。

  • 第二阶段目标为享受公共云弹性收益、并优化图片处理性能。

通过对业务来龙去脉的掌握,团队针对最终目标分解出清晰的步骤和路标,从而支撑业务和技术的快速迭代、敏捷交付。

2.2 架构设计

梳理清需求和路标,就可以针对技术架构、业务架构进行详细设计,确保需求和架构设计一致,从而支撑客户需求的正确落地。

2.2.1 OSS 技术架构

今年杭州云栖大会,OSS基于貔貅3新硬件和盘古2.0底层演进到了新时代,基于如下的架构发布了 9 大新特性。

OSS通过大规模的生产实践,提供了5个业界领先的关键竞争力:

  • 可靠性,指在硬盘、服务器、网络等故障情况下,以及火灾、地震、洪水等灾害时,可以有效防止数据丢失,通过跨机机柜、机房、区域的数据冗余,实现了12个9的高可靠性。

  • 可用性,指在服务器故障时、光线挖断时,可自动切换实现业务连续性,通过容错设计,实现了99.995%的可用性。

  • 安全合规,指数据访问的认证、授权、加密、以及行业法规遵从,支持多项合规认证,比如KMS加密、WORM认证等。

  • 弹性扩容,能够自适应业务数据快速增长,避免出现存储空间被打爆,通过业界领先的资源供应链管理、软件分布式弹性设计,实现百EB级空间、百万亿级对象规模能力。

  • 自动生命管理管理,支持冷热数据的管理,优化TCO,提供标准、低频、归档存储,并自动化迁移,优化存储使用成本。

2.2.2 业务异地多活架构

为保障业务连续性,采用了异地多活架构,核心技术为一写多读。开通了OSS主区域到两个备区域的跨区域复制功能,如下图所示。

  • 写入时只写主区域,开发便捷。利用OSS跨区域复制能力,将数据复制到备区域,从而备区域有全量的数据。

  • 读取时可根据地域就近读取,降低延迟。由于写入时只写数据到主区域,数据是异步复制到备区域,所以用户读备区域数据时,可能数据还未复制完成,此时通过OSS镜像回源功能从主区域读取数据。

从而,可在不同的区域级故障场景时,实现快速切换,提供容灾秒级RPO(Recovery Point Objective),保证业务应用连续性。

  • 备区域不可用,上层业务快速切换到另外2个区域,并将流量均分,业务能立即恢复,切换也非常方便。

  • 主区域不可用,则选择新的主区域(如选择区域2),并开通区域2到区域3的跨域复制,从而业务可以将写请求切换到新的主区域,读请求也切换到剩下的区域;同时,基于OSS的版本控制和业务无更新写,实现了主区域故障切换的数据一致性。

2.3 特性功能

2.3.1 数据高可靠容灾特性

围绕着数据高可靠需求,团队在今年双11重点开发&部署了如下关键特性:

  • 同城冗余存储(3AZ, Access Zone),实现RPO为0的容灾能力。要实现3AZ冗余,需要OSS的关键组件女娲(分布式一致性)、盘古(分布式文件系统)、有巢(分布式KV索引)等都需要实现跨数据中心冗余,基于遵守PAXOS的一致性协议、精妙设计的AZ间带宽和时延、以及数据分片的策略,保证了AZ故障后的快速切换,零数据丢失。经过蚂蚁主站(支付宝账单、刷脸类业务)、网商银行、淘宝短视频、天猫大屏等的业务打磨,检验了3AZ的能力,得到了广泛认可。

  • 跨区域复制,它实现跨不同OSS区域的存储空间(Bucket)异步对象复制,将对象的创建、更新和删除等操作从源存储空间复制到不同区域的目标存储空间,提供RPO为秒级~分钟级的容灾能力。在集团图片云异地多活架构中,它发挥了关键作用。

2.3.2 高性能特性

为了满足业务的高性能要求,开发了如下的性能优化特性,如下图所示。

  • 图片处理加速引擎,缩放性能十倍提升。双11凌晨流量洪峰时,有大量的图片处理请求,其中图片缩放请求占据了相当大的比例。OSS基于FPGA异构计算卸载,结合自研的 Resize 算法,集中在缓存优化、内存访问优化、FPGA资源优化挖掘技术深度,实现时延是CPU处理时延的1/10。

  • 区域级桶分布策略,支持淘宝、天猫图片云业务高 QPS 能力。通过该分布策略,可以将桶中的对象数据分布到区域范围内的所有机器上,不仅可以实现数据存放的均衡性,还可以极大提升单个 Bucket 的 QPS 能力。根据今年双11淘宝图片云需求,OSS能够为该业务的桶提供近百万 QPS 能力。

  • OSS传输加速。随着业务向新区域扩展,业务数据的存储位置发生了变化,导致时延也发生了变化。传输加速利用底层的全球网络,采用CNAME自定义加速区域,实现就近传输,最高可达到4倍加速效果。

2.4 开发运维效率

OSS作为阿里云基础设施服务,开发运维效率至关重要。基于OSS孵化的赤骥管控已经演化为阿里云存储的管控平台,服务于对象存储、文件存储、表格存储、日志存储、智能存储、女娲等。OSS-Brain是基于海量的线上运维数据,设计的智能运维组件,除了保障OSS的健康稳定运行外,还可以支撑架构设计。如下是详细介绍:

  • 赤骥自动化监控运维。针对“监控+预案”做好事前准备,在双11压测和准备期间积累了大量预案,形成了稳定性保障的强力后盾。采用“动态工作流”支撑事中灵活应对,面向快速“告警、定位、恢复”的目标设计动态表单引擎和批量执行引擎,性能上支持百万级任务调度和万级别的任务并发,快速响应应急处理。

  • OSS-Brain 数据智能运维平台。它的使命是用“数据+算法”来保障 OSS 的稳定运行,赋能线上运维及运营。结合机器学习中常用的分类算法(逻辑回归、随机森林、GBDT),聚类算法(DBSCAN、层次聚类)、回归算法(线性回归、GBRT等),以及深度学习算法(CNN、RNN、LSTM),实现智能运维。

2.5 稳定性看护

2.5.1 主动防护

针对双11特点,梳理了如下稳定性主动防护点:

  • 基于需求预测算法的库存管理。云服务基于需求的智能预测可以保障服务的稳定性,同时也要降低算法预测误差,保障投资回报比。

  • 多租户下的差异化流控。双11集团用户上云,要做好租户的流控隔离。OSS为此提供了桶级流控、租户级流控能力,以及针对业务请求的差异化流控。

  • 防SYN-FLOOD攻击。针对云服务的安全攻击很普遍,SYN-FLOOD 是常见的类型,OSS作为云基础设施服务,通过此功能支撑高并发访问、突发请求,保证租户不被影响。

2.5.2 拉网式风险排查,谨防漏网之鱼

在双11的方案讨论、日常巡检、按期压测等过程中,都会发现风险点,为此专门组织了拉网式排查,对每个隐患都要找出根因,不放过任何潜在问题。

2.6 流程和文化

为了让双11的经验得到传承,总结了相关管理流程和文化:

  • 需求管理、任务分解。

  • 值班手册、人人必遵。

  • 预案演练、结对配合。

成果和展望

在稳定性思路的指导下,团队认真仔细的开展任务,结合高效的执行力,顺利支撑了今年双11。希望未来继续坚持“稳定性工作思路”,并应用到每天每秒的日常运维中,让所有的用户都能享受到服务稳如磐石、体验丝般顺滑的对象存储OSS。

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/274743.html