前言
订单场景是商业公司中最核心的场景之一,具体如购物订单、外卖订单、交易流水、设备信息等等。 技术负责人在进行订单场景技术选型时候需要在各个维度进行架构决策,会对成本、性能、规模、运维、研发效率、扩展性等各个方面进行综合考虑和取舍。
根据接入我们产品的用户经验来看,在业务初期数据规模较小,基本上 MySQL 类产品能够通吃所有需求,很少遇到瓶颈或问题。随着业务规模增长,会有越来越多的问题暴露出来,包括但不限于 MySQL 的不断扩容难题、高昂成本、查询性能不足等问题,而这时候用户会把所有可能的替换产品都罗列出来进行筛选和排除,大多数用户最终会选择我们的云上产品::表格存储 Tablestore。
为什么大家会不约而同的选择Tablestore?接下来讲一下最受客户欢迎的几个点:
为什么订单场景选择 Tablestore ?
1. Serverless
Serverless 发展历史和服务端的运维发展史密不可分,对象存储(OSS)是大家都熟悉的一款 Serverless 存储服务,我们以对象存储(OSS)为例介绍一下Serverless的发展历史:
- 农耕时代:买一台服务器托管在 IDC,数据直接以文件形式存放在磁盘上,用户自己控制文件的增删改查。在这个时代,硬件、软件都需要进行运维。
- 工业时代:买几台永不停机的阿里云 ECS 服务器,搭建一个分布式的开源对象存储 MinIO 集群,遇到问题需要专业的 MinIO 专家来解决和调优。在这个时代,仅需要软件进行运维。
- 互联网时代:直接使用阿里云 Serverless 的对象存储(OSS)服务,按需使用,无需运维,极致性能。
通过上述的 Serverless 发展史,我们可以直观的感受到 Serverless 的魅力:研发再也不需要需关心服务端的硬件和软件的部署运维、容灾等问题,不再需要花费大量人力去关注和扩容水位,只需要关心核心业务价值,即开即用,使用多少付费多少地按量付费,可以更短的开发周期让产品尽早上市。现在越来越多的产品在设计之初就 All-In-Serverless,使用“函数计算FC + 表格存储Tablestore + 对象存储OSS”这样的架构设计,将服务的运维成本压缩到最低。越是底层数据存储服务,越需要 Serverless 能力。
OSS 是阿里云自研的一款Serverless 的非结构化存储产品,与之对应的,OTS(Tablestore)是阿里云自研的一款 Serverless 的结构化存储产品,是阿里云立项之初定下的战略级 Serverless 自研数据库产品,经过13年的锤炼,我们拥有大量业内前沿的国内、国际创新专利,服务了大量的阿里集团内、外部用户,经过了数次双十一的考验,我们极致的 Serverless 能力是订单场景最有力的选择理由之一。
2. 成本
有很大一部分用户选择表格存储 Tablestore 是因为成本费用问题,表格存储 Tablestore 可以做到在大多数用户的使用场景下成本大幅下降,有大量的 MySQL 关系数据库类产品、Elasticsearch 搜索类产品用户在遇到成本问题后迁移到表格存储 Tablestore上,让业务能够用更低的成本承载更优质的服务。
我们的成本为什么可以做到很低?主要依赖以下这些能力:
- 存算分离:“存储计算分离”这一特性几乎已经成为现代数据库的标配能力之一,存算分离让计算和存储的资源得到充分利用。
- 盘古 + EC:表格存储 Tablestore 底层使用了世界领先的阿里云“盘古”分布式存储系统,其先进的容错架构和柔性平台设计可以将存储成本降到极低,开启 EC(Erasure Code)后可以继续压榨存储成本。
- 冷热分层:有温度变化的业务数据,可以自动从热数据层迁移到冷数据层,来降低存储成本。
- 灵活的计费方式:按量、预留、资源包三种计费方式,不同模式的业务使用不同的计费方式。
3. 查询性能
订单场景对查询的丰富度有要求,又对查询性能要求很高。表格存储 Tablestore 底层实现了多种索引帮助数据库查询进行加速,包括但不限于主键索引、二级索引、倒排索引、BKD-Tree、列存、BloomFilter 等多种索引加速能力,结合多年的查询优化经验积累和沉淀,能够实现主键查询、非主键列的自由组合查询、自定义排序、模糊查询、全文检索、地理位置 GEO 查询、统计聚合等各种常见的查询方式。
表格存储 Tablestore 依赖底层丰富的索引加速能力,支撑了各种类型的查询,能够实现:
- 在阿里集团内部真实的千亿~万亿规模订单场景下,依然能够表现优秀,实现毫秒级的查询性能。
- 全新实现的查询优化器可以在大多数场景下比常见的数据库查询加速(如 Elasticsearch )方式快,而且会根据查询模式自动进行数据重排,进一步提升性能和降低毛刺。
- 通过二级散列功能可以有效提升大租户的查询性能,并消除超时。
- 支持 API 和 SQL 两种查询方式。
4. 可靠性和可用性
表格存储 Tablestore 具有极高可靠性和可用性。首先,如介绍 Serverless 时所介绍,表格存储 Tablestore 从创立之初就具有极高的战略地位,经过阿里集团内、外部大量的用户锤炼,十分可靠和值得信赖;其次,表格存储 Tablestore 底层存储基于分布式存储系统“盘古”,可以在一些场景下实现11个9的可靠性;然后,表格存储 Tablestore 是作为存储/数据库产品,在各个环节都会尽力保证数据不丢不错;最后,表格存储 Tablestore 不仅经历了数次双十一的历练,也经过无数次外部用户的大型促销活动或运营活动,在阿里集团内部、外部积累了大量的用户作为信用背书,这里仅列举其中的订单场景的用户:
- 内部:阿里云订单、菜鸟、淘宝特价版、飞猪、饿了么、1688、闲鱼、AliExpress等。
- 外部:某大型连锁超市、某大型出行公司,某大型电信运营商、某保险公司等。
5. 快速带来业务价值
作为 Serverless 的服务提供者,表格存储 Tablestore 以用户为导向,以满足用户需求并快速实现用户商业价值为主要目标,我们提供了丰富的额外服务可以帮助用户快速入门、业务迁移、构建核心代码,包括但不局限于:
- 入门案例和示例代码:各个场景的文章和示例代码,方便用户入门。
- 钉钉用户群:多个内部和外部用户群,有任何问题都可以在群内交流和反馈,群里有资深研发、产品、老板进行交流。
- 专家支持服务:针对长期用户和大客户,表格存储Tablestore提供了特别的专家支持服务,研发同学可以帮助用户设计和 Review 方案、解决一些疑难问题、对实例进行重点护航。
总结
表格存储 Tablestore 在订单场景深耕了多年,积累了大量的经验,在规模、性能、成本、运维成本、可靠性和可用性、服务等各方面都具有极佳的竞争力,欢迎大家体验和交流,本文末尾列举一些订单相关的技术文章作为补充阅读: