摘要:企业IT系统面临层出不穷的新业务,安全,成本等诸多挑战。阿里云NoSQL数据库通过与企业业务深度结合,快速创新,提供最新的技术帮助企业用户迎接挑战,获得金融、社交、直播等众多大客户的信任。本文中,阿里云智能数据库产品事业部高级产品专家朱洁为大家介绍阿里云NoSQL数据库在众多最新领域的创新和技术实践。
专家简介:朱洁(花名:所在),阿里云智能数据库产品事业部高级产品专家,当前为阿里云数据库NoSQL数据库产品Leader。10+数据库/大数据研发管理经验,专注于数据库/大数据服务平台建设、规划和实践应用,著有畅销书《大数据架构详解:从数据获取到深度学习》。
直播回放
链接:https://yq.aliyun.com/live/1049
议题PPT下载,戳这里!
https://yq.aliyun.com/download/3565
Gartner远见者象限唯一中国企业——阿里云
阿里云是2018全球数据库魔力象限远见者象限的唯一中国企业,与Google等科技巨头位于同一象限。并且分析师认为:在所有云厂商中,阿里云拥有最为丰富的数据库种类,基本上覆盖了所有客户的业务场景,并且能够提供多种数据库解决方案。除了公共云外,阿里云数据库还提供了完整的私有化部署形态——Apsara Stack和混合云数据共享解决方案,这是AWS、Google所欠缺的,也是阿里云数据库服务的重要优势。
10万客户的信任和选择
阿里云数据库背后是10多万客户的选择和信任,在Top 100的客户里面,有大约94%的采纳率。今天,无论是对于中大型客户还是小客户而言,阿里云数据库都拥有一个较好的口碑。
阿里云完整覆盖主流NoSQL数据库
目前,阿里云已经完整覆盖主流NoSQL数据库。相比于关系型数据库,NoSQL数据库的发展时间并不长,大概为10年左右。随着互联网技术的发展,很多企业发现传统的关系型数据库在很多场景下存在非常大的局限性,也正是因为业务的推动,诞生了一批非常流行的NoSQL数据库。而如今,阿里云基本上覆盖了主流的这些NoSQL数据库,包括基于内存的Redis、存储文档的MongoDB、具有大数据属性的HBase以及图数据库Graph Database等。NoSQL数据库的核心就是弥补关系型数据库的不足,提供高性能、大容量、低时延和低成本等特性。
企业客户面临的Top挑战
对于阿里云如此众多的客户而言,他们所面对的核心挑战总结而言主要包括以下三点:
业务挑战:客户业务呈现指数级增长,并且随着企业实力的增强,业务开始出海。此外,还不断出现一些创新业务,比如阿里的双11,这也使得数据库面临着巨大挑战。
成本挑战:经济形势不好,面临困难的时候就会发现成本压力非常大。当业务增长比较好的时候,仍然会发现基础设施、数据库扩展以及人力成本也会跟着业务呈现线性增长,运维成本也会非常高。
安全挑战:如今,可用性达到99.99%成为了各个企业的默认需求。而在大数据的场景下,越来越多的企业认识到数据是企业的重要资产。此时,数据安全就显得尤为重要。对于企业而言,黑客的恶意攻击和勒索趋势逐渐加重。
云NoSQL数据库最新技术趋势
阿里云数据库团队看到了客户在业务、成本和安全等方面的挑战,因此围绕场景化、智能化、企业级和一站式这四个方面做了大量的工作。
云NoSQL数据库最新技术趋势——场景化
对于阿里云NoSQL数据库的场景化而言,主要提供了混合云解决方案、多媒体解决方案、游戏解决方案、新零售解决方案以及低成本解决方案。
(1) 混合云解决方案
之所以需要混合云解决方案,主要是因为以下三点:
安全性:传统情况下,一般企业往往会建设单个IDC,但是单IDC的脆弱性容易导致业务受损,而混合云方案却可以极大的提高业务可用性。
降成本:多IDC甚至异地IDC管理所带来的基础设施及运维成本居高不下,往往会为基础设施和运维人员带来诸多挑战。此外,时间成本太高使得IT能力难以跟上业务发展的速度,而混合云方案可以降低客户基础设施的投入,并提供低成本的容灾方案。
大趋势:业务上云已经成为基本趋势,客户需要聚焦到核心业务管理上,而不是将时间和精力浪费到搭建基础设施上去,因此需要将专业的事交给专业的人负责,而混合云方案可以减少基础设施及非核心业务管理成本。
下图所示的是阿里云推出的Redis混合云解决方案。传统情况下,客户自建多机房架构至少需要“两地四中心”,而对于关键的金融级业务,可能至少需要搭建“三地六中心”。如果采取客户自建的方式就会遇到很多挑战,比如网络高稳定性的挑战,业务高峰容易发生脑裂导致决策低效,无法保证高可用等。此外,自建方案使得初期投入较高,想要建设“两地四中心”架构需要非常强大的人力和财力以及时间成本的支持,而对于很多需要较快成长速度的公司而言,这将造成巨大的压力,而且跨地域分布式部署业务也会非常复杂。
而在阿里云推出的Redis混合云解决方案中,用户可以保留自己的机房,同时提供了DTS在线服务以及开源工具帮助客户实现IDC机房和线上实例的数据同步。此外,该方案还内置了容灾能力。如果用户使用该方案,就相当于将基础设施的建设任务交给了阿里云。用户可以灵活地配置业务流量,也可以灰度逐步将流量切换到线上,并且规避了线上或线下的单点问题,可以保障业务高可用。而业务而言,最重要的就是可以实现实例的快速部署,避免了基础设施上线周期长和初期投入较高的问题,能够帮助用户快速具备混合云能力。对于用户最为关心的数据一致性问题,阿里云Redis混合云方案还提供了通过full_check开源工具实现线下和线下的数据校验,保证了数据一致性。这里只是列举了Redis的例子,其实阿里云的MySQL和MongoDB服务也都具备这样的能力。
(2)多媒体解决方案
下图所示的抽象的多媒体行业架构,其实多媒体行业与其他行业的业务架构并没有显著的不同,其特点在于用户基数非常大,日活百万甚至能够达到千万。并且存储量大,访问量也非常大。突发流量以及热点事件、新闻会对于数据库后端造成巨大的压力,并且会出现全国甚至全球的多地访问。而且,在多媒体行业中,成本要求比较高,属于价格敏感型。此外,还具有高可用、高延时的要求。
对大部分多媒体行业的客户而言,如果选用自建数据库方案可能会首先想到两种策略,即应用层DIY解决方案和数据库层DIY解决方案。应用层DIY解决方案中需要考虑如何解决热点问题,虽然可以简单地将访问通过加前缀来打散,但是这就会导致出现层出不穷的热点Key,使得后期的维护和管理成本非常高。另外一点就是两层缓存,除了原本在数据库层加一层缓存之外,为了性能还需要在路由层再加一层缓存,将一些热点事件混存在路由层,使得其能够快速返回给用户,而这会导致刷新频率较低的问题,进而导致缓存策略出现问题。
数据库层DIY解决方案的核心思想是通过源端的业务进行垂直拆分。不同的业务进入到不同的数据库中,通过资源的扩展来解决性能问题,通过缓存增加只读副本的方式来解决并发访问问题。但这种方案的劣势是会导致只读副本过多,运维成本会非常高。此外,由于网络传输需要时间,因此一旦数据链路过长,就容易出现脏读情况。
为了解决上述问题,阿里云提供了Redis多媒体解决方案。常言道“天下武功,唯快不破”。Redis是单进程单线程模型,其在小包场景下QPS只有8~10万级别。而阿里云Redis 性能增强版在100%兼容Redis协议的基础上,使得性能提升3倍以上,并通过内核级别的改造使得QPS最高可达50万以上。因此,通过阿里云性能增强读写分离架构就可以完美解决超高并发访问难题,该方案使得单个热点数据QPS最高可达450万,而单集群QPS最高2亿5600万。
(3)新零售解决方案
新零售是最近两年比较火的一个概念,举一个实际案例:某一个客户的订单信息表里面包含了378列,其中13个列需要模糊查询,同时对于入库以及查询响应速度具有较高要求。然而,想要同时满足模糊查询、高入库速度以及秒级查询响应这三点比较困难。一般而言,最常见的解决方案就是将一份数据同步到Electricsearch里面,但这种方式的入库性能非常差,对并发查询的支持度也不足够,并且查询函数也十分有限。
为了解决上述问题,阿里云在新零售解决方案中将HBase和Solr集成在一起,将全量数据与索引数据分开,使得数据和缓存的比例大概为30:1。将数据自动同步到Solr里面,建好倒排索引并且尽量放到内存中,并对外提供统一的查询接口。当需要对数据进行精确查询时会匹配到Phoneix中,而当需要模糊查询的时候则会匹配到Solr中。通过Phoneix+Solr的组合,同时结合HBase高并发、高吞吐以及和搜索倒排的能力去解决既需要模糊查询,又要精确查询的问题,同时满足了快速响应和低时延的要求。
(4)低成本解决方案
成本永远是一个绕不开的挑战,在各行各业里面都是永恒的话题。最简单的场景就是当业务中有较为明显的冷热分离时应该如何解决。可能大家在第一时间就会想到使用低成本的硬件存储来冷数据,这也是一种常用的做法。而Redis与普通数据库之间的一个显著区别就是其对于响应时间的要求非常高。
因此,在阿里云提供的低成本解决方案中进行了大量创新,该方案对Redis的数据结构进行了拆分,将所有的Key都放入内存中。这样一来,即使需要全量Key也不会影响热数据查询性能,数据将会自动通过淘汰算法写入磁盘中,这非常适合数据容量非常大,并且对成本有诉求的场景。
(5)游戏解决方案
在可用性方面,大中型企业往往需要达到99.9%或者99.99%。但这样高可用诉求不一定适合游戏行业,因为对于游戏而言,一般生命周期会非常短,开发效率要求高,因此其核心诉求是开发要快。因为游戏变化很快,当游戏火爆的时候需要快速开服、滚服、合服,因此弹性要求非常高,可用性反而可以降低要求,甚至可以接受30分钟内的数据丢失。但是,游戏行业对于成本较为敏感,也需要提供容易使用的经营分析工具,希望通过精细化运营来优化游戏的生命周期。
阿里云提供了基于MongoDB的游戏解决方案可以支撑游戏业务的快速发展。对于克隆实例、快速开服、滚服等需求而言,阿里云MongoDB游戏解决方案基于源实例数据,可以快速进行新实例的创建并自动复制进源实例的数据,全过程自动化进行,确保在批量开服、滚服场景上快速支撑。对于单库恢复的需求,阿里云MongoDB游戏解决方案支持单库级别的数据恢复,对于多服合一的场景,无需在单库出现问题时回档所有数据,可以指定单库进行恢复,不仅效率高,而且操作便捷,可以大幅度降低回档的停服时间,为业务带来更多效益。对于分析能力而言,阿里云MongoDB游戏解决方案支持副本集快速扩容从节点,提供了高性价比的系统分析读取能力,无需升级规格即可快速支持BI系统的连接及分析需求,并且支持MongoDB connector for spark,可以快速联通Spark分析集群,实现基于大数据的用户行为数据分析挖掘。
云NoSQL数据库最新技术趋势——智能化
对于数据库的智能化而言,主要包括了SQL诊断、空间诊断、会话诊断、安全诊断以及性能趋势分析等方面的能力。
之所以要做数据库的智能化这件事情,是因为DBA经常会遇到如下图中所示的情况,这使得DBA往往应接不暇。
而传统依靠专家对数据库进行优化的方式存在很多方面的局限。
为了应对以上问题,阿里云提供了CloudDBA。阿里云CloudDBA通过将数据库专家的经验转换为产品,借助数据库内核技术、海量数据分析和机器学习等技术手段,提供自助化地数据库诊断和优化服务,赋能用户,成为用户身边的数据库专家,保障数据库高效、稳定的运行。目前,阿里云CloudDBA在SQL诊断、空间诊断、会话诊断、安全诊断以及性能趋势等方面都提供了非常完善的能力。
阿里云CloudDBA的发展历经了很长时间,其源自于2014年的SQL诊断引擎,主要用于检测出一些慢SQL查询来优化性能。到了2016年,随着技术能力的增强,SQL诊断引擎就升级为CloudDBA,并且覆盖阿里巴巴集团内部的淘宝、天猫、蚂蚁金服、高德等各个BU。从2017年开始, CloudDBA通过阿里云进一步开放出来,提供给阿里云客户使用。
CloudDBA所提供的SQL诊断、一键优化、会话诊断、空间优化等一系列核心能力背后的原理就是采集、分析、发现、Action、跟踪、评估形成的闭环。
可以将数据库优化系统分成几个等级:基础级、管理级、预测级、适应级以及自主级。随着级别的提升,数据库的智能化程度也就越高。当达到自主级的时候,数据库至少需要具备自我配置、自我优化、自我修复、自我保护以及自我学习的能力。而根据调研的结果发现,在典型场景里面,CloudDBA能够使得慢查询减少50%,资源占用减少50%以上,运行性能大幅度提升,这对于用户和DBA而言都是非常大的帮助。
云NoSQL数据库最新技术趋势——企业级
开源数据库往往内核能力很强大,但是企业级能力却非常差,因此很难适应大企业管理的需求,也难以满足各方面的安全能力。因此,阿里云数据库团队也做了很多事情,使得NoSQL 数据库服务能够提供企业级能力,更适合中大型企业用户的使用。
阿里云作为全球云厂商首家推出Redis全球分布式能力的企业,解决了多媒体、游戏、电商等多行业客户业务出海、地域级灾备、全球同服/多活、跨域数据迁移的诉求。多项关键能力在行业内处于领先地位:
全球多活:内核级别支持,实现多节点全球容灾。
高可用:同步通道支持断点续传,容忍天级别的隔断,子实例HA自动切换。
高性能:单通道10万TPS,高于Redis处理速度;延迟低、洲际内百毫秒延迟。
支持数据最终一致性:CRDT冲突解决方案+数据一致性检测,基于Redis内核改造,原生Redis内核无此功能。
虽然对于个人用户而言,病毒和黑客攻击可能越来越少了,但在企业里面,数据库的安全问题却不容忽视,比如开源的MongoDB在权限管理上就存在很大欠缺,很多的黑客专门攻击企业客户的MongoDB数据库并勒索赎金。
阿里云为客户提供了MongoDB的全链路安全,在事前、事中和事后保障客户的数据库安全。在事前,通过VPC、白名单方式实现权限隔离,使得黑客难以进入;在事中,即使黑客有能力突破,也可以通过传输SSL加密和TDE加密来保证数据难以破解;在事后,即使黑客破坏了数据,也可以通过审计方式将数据找回来,并且能够通过行为审计知道攻击来自哪里。通过这样事前、事中和事后全链路的防护保证了数据库安全,做到数据库安全管理工作有证可查,有据可依。
可能大家认为监控是一件非常普通的工作,但实际上并不是这样的。举一个不起恰当的例子,5分钟级监控和1秒监控就是X光和核磁共振的差别,5分钟监控所能看到的数据非常贫乏,但是在其中可能隐含着很多需要优化的地方,一旦业务量上升,问题就可能爆发出来。如果能够做到秒级监控,就能够帮助专家通过全面的信息将问题找出来,当发生了故障也能够实时获取故障原因。目前,阿里云数据库团队自研的秒级监控系统inspector真正做到了1秒1点的真秒级粒度、全量指标采集、无一疏漏。通过这样的监控方式,使得数据库的任何抖动都无处遁形。
容灾策略也比较常见,如果DBA自建数据库,可能所需要做的第一件事情就是容灾。而阿里云提供了一整套完整的容灾体系,对于同城、异地容灾体系而言,阿里云提供了同城多机房部署、宕机重建技术以及Mongoshake异地双向复制能力,能够杜绝机器级、机房级、地方级故障影响,并且能够满足监管、合规、企业核心数据容灾诉求。
对于审计而言,最为核心的问题在于性能。因为需要将日志等信息全量地记录下来,因此需要非常高的性能,通过内核级别优化,可以将性能损耗控制在5%以内,可以使得用户毫不犹豫地开通审计能力。相比以往用户自建审计功能的方案,阿里云提供了human readable的审计日志,使得普通用户也可以读懂审计日志。此外,阿里云能够提供低成本、7x24的审计能力,一旦发生误操作或者高危操作,也可以提供事后分析数据。而审计日志也能够提供业务分析数据,帮助用户对业务进行针对性优化。
云NoSQL数据库最新技术趋势——一站式
一般而言,很难使用一种技术解决客户的所有问题。但是对于客户而言,希望尽量使用更少的技术和能力来解决客户问题,这样的学习和应用成本都会比较低。
数据库纷纷进入多模时代,开源数据库领域也呈现出这样的趋势,比如MongoDB作为文档型数据库已经开始支持事务。
阿里云HBase在多模方面与其他数据库的不同在于:阿里云HBase结合了HBase生态,支持了Key-Value、文档、时序、时空等各种数据模型,这是其他多模数据库所无法达到的。用户可以根据自身业务诉求和实际需求选择最为合适的数据模型达到最高的开发效率。
对于一个企业而言,业务负载一般会有很多种。传统数据库方案中,往往需要将数据存储下来进行分析并进行事务处理。但是在进入大数据时代之后,出现了很多种业务负载,包括流、搜索、时序、时空等。阿里云通过将业界比较流行的HBase和Spark等集成在一起,对外提供了一站式解决方案,目前这一方案也在很多客户企业中得以成熟应用。
一些场景希望将两个数据库很好地结合在一起。对于RDS、PolarDB、HBase等在线数据库而言,如果想要对其中的数据进行离线分析往往需要一个离线集群,用户可以自己将数据导出来,整理完数据格式进行分析。而借助阿里云的服务,则可以通过多个服务之间的相互配合,只需要在控制台上填写数据表之间的映射关系以及处理逻辑就能够一键实现自动归档。这个方案支持多种模式,比如每天全量、每天增量、每天增全量、小时全量以及志实时导出等,用户可以根据系统性能进行取舍,进而实现混合TP和AP处理。
目前,阿里云各种的NoSQL数据库产品都非常完善,以Redis为例,其从最基础的单机版、单机高可用版到单机读写分离版,再到集群版、集群高可用版以及集群读写分离版等。这是因为面对不同的企业以及不同的部门,他们可能选择不同性能的数据库,因此需要满足不同的诉求,来实现性价比的最高化,这也是云计算和传统IDC最大的不同点之一。
如果没有一个完整的数据链路,就会使得数据难以利用起来。阿里云数据库基本上搞定了云下到云上、云上到云下,从专有云到阿里云以及阿里云到阿里云之间各种场景、各种粒度以及各种版本的数据链路支持。并且通过完善的数据链路帮助客户解决了各种场景下的数据传输问题。
总结和展望
本文分享了NoSQL数据库技术的场景化、智能化、企业级以及一站式的发展趋势。其实,对于企业而言,最为核心的问题就是面对业务挑战、成本挑战、安全挑战,如何进行演进和发展,而这些问题正是阿里云需要帮助客户解决的。阿里云数据库服务将会持续围绕上述问题和挑战不断发展和完善。同时,新应用、新技术、新理念正在驱动数据库技术发展,阿里云数据库也在智能化等方面进行大量的探索。此外,最为重要的一点就是云数据库创新速度是传统数据库的数十倍,希望大家能够尝试使用阿里云数据库。