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

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

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

图片描述

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

图片描述

资源层:传统应用会使用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经过数据快照能够在秒级实现备份和恢复,更利于咱们作数据库安全运维,带来更多价值。
相关文章
相关标签/搜索