什么是对互联网“在线业务友好”的数据库服务?

作者介绍:沈炼,蚂蚁数据部数据库内核负责人。2014年入职蚂蚁,承担蚂蚁集团的数据库架构职责,先后负责了核心链路上OceanBase、OceanBase高可用体系建设、NoSQL数据库产品建设。沈炼对互联网金融、数据库内核、数据库高可用体系等领域有着深厚的理解。沈炼秉承“止于至善”的理念,深耕互联网金融和数据库两个专业方向,保持着十年如一日的热情与专注。

背景

何为“数据库服务”,我的理解是一种交付形态。数据库产品是指用于存储和管理数据的计算机软件系统,软件是其交付形态,在线业务常用的数据库产品包括关系型数据库和NoSQL。而数据库服务指将数据库产品以访问接口的形态交付到用户(也就是在线业务),并维持其稳定且安全的运行。相比于数据库产品,数据库服务具有更长的生命周期和更多的技术内涵,除了数据库产品本身的可靠性,还需要接入的简易性、运行的稳定性、数据的安全性和合规性、成本的可控性等。

因此,互联网“在线业务”对“数据库服务”有着独特的技术诉求,需要对业务工作负载和数据库产品特性有着深刻的理解。然而脱离于互联网平台之外,很少有这方面的专门阐述,本文正是试图弥补这一缺憾。我们将围绕蚂蚁业务场景阐述什么是对互联网“在线业务”友好的“数据库服务”,本文的技术主张也适用于其他的互联网平台业务。

水平伸缩

随着互联网的持续爆发和移动互联网的兴起,支付宝作为一款优秀的国民App,流量屡创新高,极大考验了整套后端系统的水平伸缩性。

蚂蚁的应用架构经历了数代发展,从第一代的集中式架构,到第二代的分布式架构,再到第三代的自研平台的架构、第四代的云平台架构、第五代的云原生架构,每代架构都有着不同的业务使命和技术使命,但“弹性”始终作为基本课题贯穿其中。蚂蚁也长出了SOFAStack这样的代表应用层的分布式产品,使得应用代表的无状态服务层具备了可伸缩、可扩展的能力。但数据库代表的有状态服务层的伸缩性具有着更高的难度和技术挑战,需要解决扩展性、一致性、高可用、高性能等难题。

关系数据库最显著的特征是ACID,给应用程序提供了数据一致性、数据完整性和数据持久性的语义。在海量流量的冲击下,单机数据库受限于单机资源很快出现性能瓶颈和容量瓶颈,分布式中间件和分布式数据库提供了不同层次的解决方案。

分布式中间件位于应用系统和数据库集群之间,遵循数据库通信协议和SQL标准。截获客户端发往数据库的SQL请求,并进行解析和转发,根据数据的分布规则发送到对应的数据库实例。接受数据库实例返回的执行结果,解析后转发至对应的客户端。分布式中间件通过这种解析并转发请求的方式,将应用流量分发到多个数据库实例上,减轻了每个数据库实例上的应用流量,从而突破了单数据库实例的性能瓶颈和容量瓶颈。业界的分布式中间件产品有Cobar、MyCAT、DRDS等,蚂蚁的中间件产品则是ZDAL、DDS。

在分布式数据库的具体实现中,关系型数据库和NoSQL有着不同的技术路径和不同的对应用层的语义呈现:

分布式数据库在解决了水平伸缩性的同时,还提供了更好的高可用能力。例如OceanBase,能够在少数派副本故障时提供RPO=0、RTO<30秒的高可用SLA,这是传统关系型数据库完全无法想象的。

对于蚂蚁的在线业务,端到端的水平伸缩性是一个必选项,蚂蚁的数代应用架构演进也体现了这点。对于数据库服务,必须从设计之初就把水平伸缩性纳入设计目标之中。不具备水平伸缩性的数据库服务一定不业务友好。

应用敏捷

蚂蚁包罗万象的业务场景产生了丰富多样的数据库服务诉求。金融业务产生的交易数据;搜广推业务产生的圈人数据;安全业务产生的用户行为数据;消费金融业务产生的风控数据;AI业务产生的训练数据;小程序云业务产生的社交数据和移动应用数据;短视频业务产生的多模态内容数据;监控业务产生的指标数据等。多样化数据产生的诉求是灵活的数据模型和数据操作,关系型数据库提供的关系模型面对这种场景时举步维艰。

我们不能也不应该淹没在各种业务数据的细节里,却忽视了对问题本质的思考和理解。多样化数据的存储诉求的底层逻辑是“数据不应该被存储形式束缚”,传统的关系型数据库定义了关系模型和SQL接口,这种范式并不能适用于所有的数据场景,新型数据模型、访问接口和数据架构呼之欲出。应用程序需要新的数据范式来解放自身,就像半个世纪前关系模型将应用程序从处理数据的物理存储结构的繁文缛节中解放出来一样,这就是应用敏捷性。

数据模型

数据模型是对数据库的存储结构和语义的描述,是对现实世界数据特征的抽象。数据模型在应用程序和数据库之间建立了一座桥梁,屏蔽了数据在数据库如何储存的细节,并向应用程序提供数据的抽象视图。恰当的数据模型能够极大简化应用程序的数据逻辑,避免应用开发者陷于处理业务数据与数据库数据模型之间不匹配的问题。传统关系型数据库提供了关系模型的数据语义,而现代NoSQL则提供了很多非关系模型的数据语义,包括KV模型、宽表模型、文档模型、图模型、时序模型等。数据库的数据语义突破数据模型的束缚以更匹配业务数据表示的形式呈现是一种应用敏捷性。

基础技术栈

数据模型是一种应用敏捷性,基础技术栈(包括应用开发栈和应用工具栈)是另一种应用敏捷性。基础技术栈提供了标准构建模块,使得应用开发可以直接在其上构建应用程序,免去了使用胶水组件将多种独立组件粘合在一起的额外投入,我们以MEANStack和TICKStack来举例。

我们上面介绍的基础技术栈都是以NoSQL作为核心的(MongoDB@MEAN、InfluxDB@TICK),面向特定场景或特定行业的整套解决方案,具有全栈、易迁移、易扩展、社区生态丰富等优点,从而使得应用开发/应用搭建能够专注于业务逻辑,是一种应用敏捷性的体现。

数据分析

OLTP作为面向在线交易的场景,往往具有短事务和小数据量的特点,专注于事务处理的并发性和快速性。与OLTP对应的是OLAP,面向数据分析和决策支持的场景,往往涉及大量数据的分析,专注于查询的复杂性。然而,现代OLTP往往会有数据分析的需求,基于事务数据实时提供分析视图,因此数据分析能力也是一种应用敏捷性。典型的数据分析流派有Lambda、HTAP、HSAP,代表了若干着不同的设计理念。

灵活检索

在线业务往往有着数据检索的需求,一个成熟的解决方案是在主数据库之外联合查询引擎一起提供数据服务,两者之间的数据通过业务主键关联。主数据库用于存储原始数据,同时把待检索字段和业务主键写入查询引擎里面建立索引,查询时先基于检索字段去查询引擎获取业务主键,再基于业务主键去主数据库获取完整的原始数据。多存储架构会引入数据一致性的问题,例如应用在主数据库写入成功,但在查询引擎写入失败,此时会发送一个补偿消息到消息队列用于异步重试,从而达到数据的最终一致性。一个被广泛使用的产品组合为HBase+ElasticSearch+MQ,其架构图如下:

多产品组合引入了架构复杂度,增加了硬件成本,且应用程序需要处理多产品之间数据一致性的问题。对,数据一致性是分布式系统的设计关键,从水平扩展性到容灾设计,再到现在的多产品组合架构,我们始终绕不过数据一致性的话题。对于数据一致性有几种解决方案:2PC、Totalorderbroadcast、最终一致性,或者终极大招——容忍不一致。数据一致性的语义应该由数据库服务屏蔽掉,并通过灵活的接口语义呈现出来,这就是应用敏捷性。

因此对于在线业务的数据检索需求,一个业务友好的解决方案是数据库服务同时提供原始数据存储和数据检索的功能,且提供可配置的数据一致性语义。数据检索特性应该尽量多元化,包括地理位置检索、全文检索、向量检索等。

总结

我们说数据库服务应该给应用程序提供应用敏捷性,其本质是某种易用性,尽量使得应用程序减少实现数据逻辑的投入,更专注于业务逻辑自身。易用性有多种理念,例如我们本文介绍的数据模型、基础技术栈、数据分析、灵活检索等,数据库服务不需要也无法践行所有这些理念,需要的是把这些理念融入到日常的架构设计和服务交付中去,如果能够以合理的ROI践行一两个理念,那也就达到对业务友好的目的了。

安全合规

安全合规是在线业务一项非常基本的诉求,可以帮助企业更好的保护其数据资产,保障业务运行的连续性,降低法律风险。安全合规的方案设计需要从数据的生命周期入手,遍历所有流程,分析其风险敞口并针对性防护。数据库的入口主要有两个,分别是应用程序和运维人员/运维系统。应用程序通过数据库协议与数据库进行通信和数据交换,涉及到认证鉴权、数据传输、数据存储等流程。

蚂蚁业务具有金融属性,完备的安全合规能力是一个必选项。对于数据库服务,必须从设计之初就把安全合规纳入设计目标之中,并保持跟随业务安全合规诉求提高而演进的初心和能力。不具备安全合规能力,或者安全合规能力不能演进的数据库服务对于业务系统,是不可承受之重。

成本优化

现代数据具有4V特性,其中有个是规模性(Volume),规模性表示数据量的爆炸性增长,对性能和存储容量提出了很高的诉求,最后都会直观反应到数据库成本上,高昂的成本最后会成为企业继续发展的拦路虎,尤其是当前的存量时代。因此随着数据库服务的发展,成本优化是必须纳入考虑的事情,否则会阻碍数据库服务的进一步发展。

业务数据库架构优化是成本收益最大的优化措施。我们前面介绍了各种多产品架构,包括PolyglotPersistence、CQRS、Lambda架构等,多产品架构会引入多份数据存储的开销、应用代码适配多产品引入的代码复杂度开销、多产品的运维开销、建站的交付开销等。我们作为数据库服务提供者,本着帮助业务收敛其数据库架构的目标,需要尽可能促进数据库产品丰富其特性。多种技术可以达到收敛数据库架构的目标:多模数据库,一份数据提供多种数据模型服务,避免可能的PolyglotPersistence和CQRS架构;HTAP&HSAP,一套系统同时提供数据写入和数据分析的职责,避免可能的Lambda架构;具有检索特性的持久化数据库,一套系统同时提供数据持久化和数据检索的职责,避免可能的PolyglotPersistence和CQRS架构。

总之,成本优化对企业有着非常积极的意义,但同时对业务自身也可能产生巨大的改造成本,需要数据库服务提供方跟业务方齐心协力,一起缔造优秀的ROI和TCO。成本优化对于数据库服务提供方可能是一个懈怠的事情,需要有企业成本控制小组从整体资源层面进行审计,以做到整体最优。

轻量交付

蚂蚁是一个多站点的业务环境,经常会有新建站点而交付数据库服务的需求。轻量交付能力能够显著缩短建站周期、提升建站体验、优化建站成本,具备轻量交付能力的数据库服务能够有效提升其业务友好性。

轻量交付首先离不开数据库产品的管控成熟度。数据库服务依赖的硬件设施需要能够适配企业当前普适的硬件形态,例如硬件设施经历了从物理机形态到虚拟机形态的演进,再到当前的容器形态,数据库产品需要积极去适配,积极适配当前企业普适的硬件形态能够有效降低交付前置事项对人肉的依赖;服务搭建流程需要能够接口化且具备原子动作的可重入能力和回滚能力,这对管控平台的成熟度提出了要求,从而能够被上层系统所集成,能够最大限度的规范化、自动化,并最终无人化;数据库服务需要具有完备的健康自检能力,完整覆盖服务自身的所有组件与接口,及依赖的第三方服务,从而保证交付质量。

轻量交付也离不开数据库产品的架构轻量化,架构轻量化表示对第三方组件的依赖尽可能少,从而能够有效降低站点的“重量”,避免引入一些又大又重的组件,这对于站点的成本控制有着非常积极的意义。

轻量交付也意味着面向更高一层的Programmingmodel交付,积极的主动或跟随推高应用程序的思考层次。例如云计算的发展使得计算资源被不断推高,从物理机到云服务器,再到容器,使得应用程序对计算资源的适配越来越轻量化。数据库服务也同样随着云计算的发展而发展,从On-Premises到云托管,再到Serverless,应用程序的Programmingmodel也在不断推高,其专注点越来越回归到业务逻辑自身。因此数据库服务的轻量交付必须积极拥抱应用程序的Programmingmodel。

总之,轻量交付是一个系统化工程,囊括了数据库产品的架构轻量化、管控成熟度、交付层次等方面,而管控成熟度又是以产品成熟度为前提的。能够轻量交付的数据库服务一定是一款比较成熟的数据库产品且拥有成熟的配套管控体系,从而是对业务友好的数据库服务。数据库产品往往受限于自身的生命周期,很难做到超出自身成熟度的轻量交付,但我们应该把轻量交付作为终态目标而不断逼近。

从业务视角需要的是数据库服务,而不仅仅是数据库产品,数据库服务提供者必须从业务视角审视自己如何提供更好的数据库服务。数据库服务相比于数据库产品有着更多的技术内涵,囊括了数据库内核产品、数据库管控产品、访问中间件、数据库部署架构、业务数据存储架构等整套技术栈,囊括了从服务交付、稳定运行、成本优化、合规整改等完整的数据生命周期,需要从业务编程模型、业务工作负载和数据库特性等多角度分析和优化,从而做到整体最优。对业务友好的数据库服务能够极大简化业务层在数据库逻辑上的投入,能够更专注于业务逻辑自身,对企业发展有着巨大的价值。

科技在进步,业务在演进,数据库服务也必须与时俱进,才能持续对业务友好。

THE END
1.KS公司推出全新在线业务平台,实现业务流程数字化升级随着互联网和移动技术的迅猛发展,越来越多的传统业务逐渐向线上迁移,这种趋势不仅提高了运营效率,还拓展了市场范围,提升了用户体验,本文将详细介绍ks在线业务的概念、优势、实施步骤及常见问题解答。 ks在线业务概述 2.1 定义与背景 ks在线业务是指将传统的业务流程、服务或交易通过互联网平台进行管理和执行的业务模式,http://aubu.geunion.com.cn/post/39383.html
2.银行提供的在线服务有哪些便利性?银行频道在当今数字化时代,银行提供的在线服务为客户带来了诸多便利性,极大地改变了人们的金融生活方式。 首先,在线服务打破了时间和空间的限制。以往,客户需要在银行的工作时间内前往柜台办理业务,这对于工作繁忙或者身处异地的人来说十分不便。而现在,通过银行的在线平台,无论是凌晨还是周末,只要有网络,客户就能随时随地处理金https://bank.hexun.com/2024-12-19/216279727.html
3.24小时在线服务车驾管业务就问“交管小安”24小时在线服务 车驾管业务就问“交管小安” 深圳新闻网2024年12月24日讯(深圳特区报记者 解树森)记者昨日(23日)获悉,“交管12123”手机客户端文本机器人“交管小安”近日已经上线,可以为车主、驾驶人提供24小时智能业务咨询、流程导办和操作指引等服务。https://www.sznews.com/news/content/2024-12/24/content_31406630.htm
4.在线服务的定义是什么?如何选择适合自己企业的在线服务? 如何跟踪和评估在线服务的持续改进和升级需求? 什么是云计算服务,它如何改变企业的运营方式? 在线服务如何与现有的IT基础设施集成? 如何管理在线服务的成本和预算? 在线服务如何支持企业的业务增长和发展? 如何在在线服务使用过程中解决技术问题和故障?https://www.mbalib.com/ask/question-0c1efd9e87f89432c7f9d353949621d3.html
5.在线云客服淘宝电影业务在线选座售后热线 057188157838周一~周日 9:00-21:00提供选座购票、电子兑换劵业务咨询 点此联系我们 淘宝电影购买入口 点此查看 农村淘宝招募、咨询热线4008260826周一~周日 9:00-18:00为农村淘宝合伙人提供专线服务。同时面向社会提供农村淘宝相关业务咨询。 https://www.taobao.com/about/contact.php
6.打造个人网络门户,开启你的在线业务之旅在当前数字化快速发展的时代,个人网络门户已经成为个体和企业展示自我、润色品牌以及进行在线业务的重要工具。这篇文章将从多个角度探讨如何打造一个成功的个人网络门户,以帮助你开启并稳步发展你的在线业务。 一、了解个人网络门户的核心 在开始创建个人网络门户之前,理解其基础功能至关重要。个人网络门户通常是一个综合性https://www.3000.cn/news/6/25966
7.如何通过在线客服系统提升业务效率?十大关键功能解读高效的客户服务已成为企业成功的关键因素之一。在线客服系统的引入与优化,则为企业提供了有效提升服务效率、增强客户满意度的新途径。本文将深入探讨在线客服系统中能显著提升业务效率的十大关键功能及其应用策略。 多渠道集成 在线客服系统应具备跨平台接入能力,整合网站、社交媒体、移动应用、邮件等多种沟通渠道,实现全渠https://www.feelchat.net/news/content-605
8.在线数据处理与交易处理业务操作流程1.浏览器输入https://ythzxfw.miit.gov.cn/打开一体化在线政务服务平台首页,“政务服务”分类下选择“行政许可”。 温馨提示:建议使用Chrome、Firefox、Edge、IE10及以上版本,360安全浏览器等主流浏览器访问。 2.选择“法人服务”中的“电信及互联网业务”子类,点击“电信业务经营许可”事项的“在线办理”按钮进行登https://lnca.miit.gov.cn/bsfw/bszn/art/2023/art_5f8e9fba4f7a43dda9fd5ac84edfdaec.html