云原生数据库如何打造业务弹性

author author     2023-01-11     570

关键词:

摘要: 云计算带来了业务弹性上的极大优势,阿里云数据库高级产品专家时慢从应用架构的变迁,客户实战案例,业务分析等方面详细介绍POLARDB,及如何利用POLARDB设计互联网创新型应用的数据库架构。

云计算带来了业务弹性上的极大优势,阿里云数据库高级产品专家时慢从应用架构的变迁,客户实战案例,业务分析等方面详细介绍POLARDB,及如何利用POLARDB设计互联网创新型应用的数据库架构。

技术分享图片

应用架构的变迁——为什么我们需要超级MySQL?
POLARDB跟MySQL是100%兼容的,有超越MySQL很多倍的性能,以及单实例最大100TB的超大存储空间,可以理解为阿里自研的超级MySQL。那么我们为什么要打造这样一款超级MySQL呢?我们理解这是应用架构进行互联网分布式变迁的必然结果。首先我们需要回顾一下应用架构的变迁的历史,从最早的CS架构到BS架构,从J2EE到Spring/Struts/Hibernate,再到现在的微服务架构,经历了很多代的架构转型。从传统应用的业务架构到互联网分布式的应用架构,在方方面面都发生了变化。从资源层,到数据层,中间件,应用的发布封装以及应用的框架,开发运维的角度都在发生了互联网分布式变迁。

技术分享图片

资源层:传统应用会使用X86 ,小机以及存储设备;互联网分布式应用在使用公有云,私有云,混合云等。
数据层:传统应用会使用Oracle,DB2等集中化的商业数据库,互联网应用使用的是MySQL,Redis,HBase这样的分布式数据库,他们不需要集中化的存储设备。
中间件:传统应用会使用WebLogic,WebSphere等,互联网应用在向微服务架构转型中通常会使用Swarm,K8S,Mesos。
应用发布封装:传统应用会使用JAVA开发并发布成war/ear文件封装,再发布到中间件。微服务架构通常会将应用发布成容器的镜像。
应用框架:传统应用通常会使用Spring,Struts,hibernate来开发,而目前互联网分布式应用更多使用的是SpringCloud, Double, EDAS等微服务架构。
开发运维:传统应用会使用可控的发布,保守的运维,新功能上线需要数周,甚至数月时间;互联网分布式架构更多使用的是DevOps持续集成,敏捷快速迭代。
我们理解,互联网分布式应用发生这些架构的改变,目标都是使业务更加敏捷,更加具有弹性,能承载来自互联网的高并发压力。在创新架构下,业务应用可以通过微服务的方式随时进行横向扩展,但压力并不会被处理掉,负载会直接透传到数据层面,解决了应用弹性的问题,反而对数据库产生了更大的挑战。互联网的分布式架构要求数据库更加敏捷,拥有更好的弹性以及更低的成本。(传统应用中,一个应用可能只需要一个数据库作承载,但在互联网分布式应用下,进行了微服务改造之后,一个业务系统可能就需要数十个甚至上百个数据库去承载,因此对成本也提出了要求。)

实战——阿里云数据库为业务架构变迁做好准备
目前,阿里云的数据库形态已经覆盖了互联网中99%的业务场景。关系型数据库包括有MySQL,SQL Server,PG,POLARDB。NoSQL产品家族包括Redis,MongoDB,HBase等。同时具备混合分析型的数据仓库,分布式数据库DRDS,以及数据库服务于工具(DTS,DBS,CloudDBA,DMS等)。
技术分享图片

演进路线
阿里云上提供了这么多的数据库产品,在实际应用中该如何进行选择呢?我们已经为业务的快速发展和更新迭代做好了准备。这是我们建议的应用架构的演进路线:在业务的初期,建议选择MySQL来快速构建业务应用。当成长起来之后,独立MySQL无法承载更大业务压力的时候,可以基于MySQL做读写分离,不需要对应用做任何改造。我们进入快速成长期,读写分离也无法承载业务需求时,可以无缝迁移到POLARDB,迁移中不需要对业务系统做任何的更改,而且POLARDB的读写分离通过共享存储消除了复制延迟,更适合对数据一致性有更高要求的场景。当业务进一步发展壮大期间,还可以在POLARDB上做垂直拆分。垂直拆分是指将业务模块垂直拆分到不同数据库实例,分到多个独立数据库中去,比如分成用户库,订单库,仓储库等,从而用更多的独立数据库联合来应对业务负载的压力。当业务发展到象淘宝这么大的规模和体量,就需要采用DRDS进行分布式改造、跨机房多活,以及根据业务拆分做单元化改造,这正是阿里淘系应用已经走过并行之有效的演进道路。

应用链路的优化——自动读写分离,短连接优化
我们使用数据库代理来进行链路访问层的优化。访问数据库的标准模式是直接访问主实例和只读实例。在这种模式下需要在业务层面做读写分离的逻辑拆分。我们提供了代理模式,让业务层和数据库层完全解耦。在访问数据库时,不需要直接连接数据库实例,而是连接对业务完全透明的Proxy,它接收到SQL请求后会自动化做读写分离,把所有写操作路由到主实例,并把读操作负载均衡的路由到只读实例上,从而实现对业务透明的自动化读写分离。代理模式除了实现读写分离外,还可以进行故障数据库的透明切换。不论是标准模式还是代理模式,当主实例发生故障后,都可以自动切换到备份的实例上,保证数据库的可用性。但在标准模式中,切换后业务需要进行数据库重连,但通过Proxy,业务应用不需要重连,感受不到高可用切换。同时,代理模式还提供了短连接优化。举例来说,如果业务是使用PHP开发,它连接数据库就是采用短链接的方式,在访问数据库时每次连接都会产生connection,使得数据库在处理连接池上不堪重负。Proxy可以将短链接转化成长链接,并自主维护连接池。同时,代理模式还提供了防暴力破解的功能。比如Proxy可以检测到某个IP不停的尝试重输密码,并主动进行屏蔽。

实时分析数据仓库——POLARMPP,POLARDB最佳搭档
数据的处理可以分成数据库生态和大数据生态。数据库生态适合于处理交易订单等数据一致性要求强的场景,但在处理能力和处理量级上不会特别大。比如订单量在1TB、2TB级别时,还可以使用,但数量一旦增长到3TB~5TB时,单库的性能就会出现非常大的瓶颈,此时复杂的分析查询就会使得数据库不堪重负。通常的做法是采用大数据生态,通过ETL或数据复制的方式把在线事务处理产生的数据复制到Hadoop生态中进行数据实时分析。在Hadoop 生态中,标准方式是利用MapReduce或Spark来做数据分析,但开发人员并不习惯MR或Spark,也不喜欢使用Scala语言,他们还是习惯于使用SQL。所以在这种模式下,经常还要给开发人员准备Hive、Impla等类SQL组件,让研发人员仍然可以使用SQL来处理数据。这种方式存在的问题,在于在线事务处理和离线数据仓库之间有延迟,少则几秒,多则几分钟甚至几小时。并且数据实际上存了两份,并不经济。

针对这种情况,我们提供了POLAR MPP和HybridDB来解决,它可以很好的处理数据的写入,提供百万级的TPS,非常适合用于存储用户的行为、标签、Log日志等。这种模式可以对百亿级的大表做出毫秒级的响应,对多表关联做复杂的聚合,做多值的子列,全文检索。最重要的是,它可以和POLARDB共用一份数据,极大的缓解了数据库生态和大数据生态中需要存储两份数据,并且读写存在延迟的问题。

业务场景分析——互联网创新型应用场景实践
有了云原生数据库作为武器,互联网创新型的业务场景应该如何设计呢?在讲到创新型业务前,先看一下传统的采用MySQL一主N从的架构,如何构建数据仓库驱动BI报表实现商务智能。这种架构的问题是需要存储N份数据,做数据的同步复制。MySQL 的主从之间要进行数据复制,从业务库到分析库也要进行数据复制。

那么采用云原生POLARDB的系统架构应该如何设计呢?这之间,POLARDB和只读分析库构成了云原生的数据集群,由POLAR Store统一进行数据的共享存储。业务应用会把在线的业务写到POLARDB中,当POLARDB一主一从的模式不足以应对时,可以快速进行扩展,扩展成一主两从甚至N从。这种扩展区别于MySQL,他提供了敏捷性和业务弹性。如果数据量比较大,MySQL只读库的生成可能就需要数个小时的时间。而不管数据量多大,在POLARDB生态下创建一个只读库只需要分钟级的时间。并且只需要一份数据就可以通过POLARMPP来驱动业务报表。

云原生架构带来如下的业务收益:

  1. 业务兼容,不改应用:只要是利用MySQL开发的业务系统,可以1. 无缝迁移到POLARDB上。
  2. 读写分离:通过POLARDB,一份数据即可实现多个节点的读写分离,并且支持分钟级的扩展。如果用MySQL 实现读写分离,需要通过数据复制生成多个只读库,浪费时间,浪费空间。
  3. 实时分析,数据共享:在数据仓库和BI分析业务中,也只需要一份数据,不需要进行数据复制。
  4. 只读实例共享一份数据:由于存储只需要一份,带来了更好的性价比,以一主五从的架构为例,POLARDB的价格要比MySQL低44%。它在提供更强大的性能的基础上,提供了更高的性价比。
  5. 毫秒级的延迟:由于主库和从库共享一份数据,因此中间只存在毫秒级的延迟。当主节点发生故障时,可以保证切换中的零数据丢失。
  6. Session级读写分离的数据一致性:在金融等一致性要求高的业务场景下,对读一致性的要求非常高,很难容忍秒级甚至毫秒级的数据延迟。利用POLARDB可以实现session内的数据一致性读。
  7. 按需付费,秒级备份:在使用MySQL的时候,如果预计要使用500GB的容量,我们需要买500G的存储空间,但实际上数据可能只占了不到100GB,但还是需要为500GB的预留容量买单。但POLARDB不需要做空间预留,存储按需付费。同时,POLARDB通过数据快照可以在秒级实现备份和恢复,更利于我们做数据库安全运维,带来更多价值。

六大挑战下,如何利用云原生数据战略打造数据驱动型企业?

...科技结合众多成功的数据驱动型企业的经验,推出云原生数据战略,简单来说,它有“3个支柱”和“1个基石”。第一大支柱:云原生的数据基础设施2004年,Am 查看详情

skg渠道中台借助sae+大禹打造云原生devops,提效60%

项目背景未来穿戴健康科技股份有限公司(SKG)是一家专注为个人与家庭提供智能可穿戴健康产品的高新技术企业,专业从事SKG品牌可穿戴健康产品和便携式健康产品的研发、设计、生产及销售。随着市场需求的迅速... 查看详情

阿里云日志服务sls,打造云原生时代智能运维

...阿里云资深技术专家、日志服务技术负责人简志提出“云原生时代,企业业务数字化是对工程师们严峻的挑战。作为运维工程师,我们应该充分利用AIOps的技术与能力,将数据中心升级为企业的创新中心”。云原生时... 查看详情

传统大型国企云原生转型,如何解决弹性运维和团队协同等问题?

项目背景贵州酒店集团有限公司于2019年2月28日注册成立,是经贵州省人民政府批准并授权省国资委履行出资人职责的省管大一型企业,全资及控股子企业23家,自营及委管酒店(项目)80余家,客房近1.3万... 查看详情

什么是云原生应用

天生就具备云的基因,适合云环境的业务应用系统云原生技术诞生是在互联网头部企业大规模软件研发交付需求驱动下技术平台化,通过数字基础设施升级解放生产力,围绕降本增效,面向提升可靠性、稳定性、... 查看详情

云原生体系下serverless弹性探索与实践

简介: 弹性是Serverless核心能力之一,SAE在传统弹性能力基础上,提供了多维的监控指标和弹性策略,是应用零改造上云的最佳选择。Serverless时代的来临 Serverless顾名思义,是一种“无服务器”架构,因... 查看详情

云原生体系下serverless弹性探索与实践

简介:弹性是Serverless核心能力之一,SAE在传统弹性能力基础上,提供了多维的监控指标和弹性策略,是应用零改造上云的最佳选择。Serverless时代的来临Serverless顾名思义,是一种“无服务器”架构,因为屏... 查看详情

当云原生成为一种显学,对象存储和数据湖如何顺势而为

前言:已经成为数字化时代显学的云原生并非单项技术,而是一种重塑了软件开发和和业务运行应用的设计思想,是一套技术体系和方法论。云原生“CloudNative”的Cloud是指云平台,Native则表示应用程序从设计之初... 查看详情

essd技术解读-01云原生时代,阿里云块存储essd快照服务如何被企业级数据保护所集成?

...用户提供高可用、高可靠、高性能的块级随机访问服务及原生的快照数据保护能力。原生业务新需求随着云原生技术的发展,越来越多的企业基于云计算的虚拟化、弹性扩展及蓬勃发展的云原生技术的分布式框架,容器... 查看详情

为何使用云原生应用架构三:独霸天下之四大绝技—弹,弹,弹性扩展篇

文章目录为何使用云原生应用架构三:独霸天下之四大绝技—弹,弹,弹性扩展篇业务/服务能力快速增长才是软件生命周期主旋律产品/服务持续增长背后是技术架构的全力输出服务垂直扩展服务水平扩展服务自主弹... 查看详情

云原生时代,需要什么样的数据库?

...杂的业务特征和对数据实时洞察的需求,推动了传统数据库技术向可扩展、高可用、实时弹性等方向发展。而云计算技术的发展为解决这些问题带来了新方法,大规模资源池化为上层应用带来良好的抽象和足够的弹性ÿ... 查看详情

我所理解的云原生

...计算简单来说就是云平台提供(包括服务器、存储、数据库、网络、软件、分析和智能)等云服务,通过因特网提供快速创新、弹性资源和规模经济。对于云服务而言,通常你可以根据业务 查看详情

云原生的定义(代码片段)

...件触发,完全被第三方管理,其业务层面的状态则存储在数据库或其他介质中。Serverless可以理解为云原生技术发展的高级阶段,使开发者更聚焦在业务逻辑,而减少对基础设施的关注。 查看详情

云计算的下半场:云原生

...下来,云容科技将带你们一起分析:云计算的下半场:云原生近年来,在政策的大力支持下,云计算在全国各地蓬勃发展,像雨后春笋般涌现出私有云,完成了传统IT基础设施向云架构的转型。如何更好地利用云是企业面临的另... 查看详情

云原生serverlessdatabase使用体验(代码片段)

...0c;这对于数据应用系统的性能无疑是巨大的挑战。关系型数据库MySQL是应用系统中最广泛使用的数据库产品,拥有强大的数据查询和强事务处理能力。在如今的云时代,应用系统逐渐演进到基于云原生Serverless架构去进行... 查看详情

让业务容器化更安全便捷,阿里云容器镜像服务acr推出免费制品中心

将业务进行容器化改造并打包成容器镜像是云原生化实践的第一步,为了使企业开发者更简便地打造云原生应用交付流程,2023年1月,阿里云容器镜像服务ACR正式推出“云原生制品中心”,为容器开发者免费提供了来源于阿里云... 查看详情

百度智能云可编程网关技术升级,为ai原生云打造10t级高速智能云网络

...节点、弹性公网IP、流日志等产品进行了升级,满足AI原生云时代10T级别的数据流通和管理需求。百度智能云网关从1.0到3.0的技术演进最早的网关采用专用硬件实现。随着对灵活性的需求以及X86能力的提升,网关逐步从专... 查看详情

百度智能云可编程网关技术升级,为ai原生云打造10t级高速智能云网络

...节点、弹性公网IP、流日志等产品进行了升级,满足AI原生云时代10T级别的数据流通和管理需求。百度智能云网关从1.0到3.0的技术演进最早的网关采用专用硬件实现。随着对灵活性的需求以及X86能力的提升,网关逐步从专... 查看详情