阿里云MyBase for Redis产品详解

一、Redis与阿里云Redis


1)什么是Redis


Redis 是当今世界最流行的Key-Value分布式缓存服务,提供多种数据结构,具备高性能、多架构、运行稳定、安全等能力,被广泛应用于互联网等行业。尤其是对高并发、高QPS的场景下, Redis被无数开发者和企业认可,是应对 DNS业务产品的不二选择。


Redis在全球DB Engings Ranking,2020/11最新排名中所有数据库类排名第七,在缓存类数据库常年排名第一。


关系型数据库与Redis缓存数据库做类比可知:

  • 关系型数据库是以结构化的形式把数据存储在磁盘上,单节点QPS是在5000~10000左右,比较适合复杂查询。
  • Redis是高速缓存的数据库,数据结构相对比关系型数据库简单,主要以Key-Value形式存储相关数据,数据都是保存在内存,读写也是发生在内存里,虽然没有持久化。单节点QPS 8~10万,与 Value的大小不同或机器CPU主频的不同也有差异,适合快速数据提取的工作。


2)阿里云Redis产品全景


阿里云Redis产品全景:如下图所示,分5小块,实际上分三大类:全托管、专属集群、多云联动。

阿里云MyBase for Redis产品详解


全托管主要在线上提供了Redis和Tair两种形式。Redis为广大客户提供了云上的原始数据库的开源托管服务,是用户上云快速接入的首选。为了给用户提供原汁原味的Redis体验,支持标准的组成和集群两种架构,功能上完全兼容社区特性,并且做了很多优化。在发布策略上,紧跟社区的发布速度。阿里Redis是全球首个对Redis 6.0进行支持的全球大型云厂商。


在客户业务的快速发展中,开源Redis慢慢凸显出来局限性,所以在兼容Redis的前提之下,推出了企业版的内存数据库Tair,也叫Redis企业版,定位在云原生的内存数据库,在性能、核心企业级能力、内存池化等方面为用户提供更强的能力。专属集群是为大客户专享,以自建的体验获得云上的服务。Tair MagPie将Tair能力延伸到他云、IDC的标准K8S服务上,缓解客户的绑定焦虑、地域不满足,企业策略等无法迁移上阿里云的现实安排。


3) 阿里云全托管Redis与Tair的定位


阿里云全托管Redis与Tair的定位,首先Redis作为用户上云的首选,完全进入社区特性,紧跟社区发布速度,而且尽可能的做到和社区的 PR相关的合并都尽可能的跟进。另外会积极贡献社区,因为有Redis全球开发维护团队的5人小组的成员之一,在阿里云,有3个人是在Redis原厂,还有一个在AWS上,我们的成员是全中国唯一一个进入全球开发小组的成员,所以对社区版的贡献非常多。


在社区版之上,自研了企业级的Tair(Redis企业版),主要是在最大程度保证Redis API和数据结构兼容,满足用户特定应用功能需求以及差异化性能、成本考量和高标准的容灾需要。另外推出,在线上有Redis增强型的数据结构,满足用户在各个场景下的需求。在Tair(Redis企业版)上,主要是有性能增强型、持久内存型、容量存储型,这三种均包含标准主从、集群,前两者开放读写分离能力。


阿里云MyBase for Redis产品详解


4)阿里云Redis产品系列各形态简介


阿里云Redis产品系列各形态,从高访问强度到高存储密度的演变,可以看到阿里云原来是使用对于性能要求最高的部分,使用 Tair 性能增强型产品,满足客户极致的性能要求。在访问强度稍微要求低一些的用户可以选择开源Redis,并且随着用户访问强度逐步降低,成本成为客户的考量因素时,Tair推出了持久内存型和容量存储型两种形态。在整个内存数据库层面,提供了非常完整的产品矩阵,覆盖了客户从高性能到大容量的各种需求。


本次介绍的阿里云MyBase for Redis专属集群包含Redis社区版和Tair性能增强型,两个性能要求比较高的产品形态。



二、阿里云MyBase for Redis


1)我们为什么要做专属集群?


首先作为云厂商,提供Redis相关数据库服务都属于云托管,用户在界面上下单购买Redis服务,拿到Redis数据库,但是对于大型自建Redis客户有局限性,对此我们做了相关产品的分析和规划。


第一,传统的大型自建Redis客户,有完整的运维体系,从实例创建销毁,到分配到哪一个主机的资源调度,再到相关的告警和监控,云上托管版Redis都没有办法完全与原先的运维体系进行整合。


第二,由于云上托管版Redis资源分配策略,每一种Redis现在售卖的规格都有相关带宽限制,每一个规格的带宽限制都会导致其无法充分利用,在有热点业务流量冲击时,带宽会成为瓶颈。


第三,由于与大型自建Redis客户存在差异,整个体系无法融合,过去的DBA管理运维系统无法再充分利用,对客户上云是比较大的阻力。


第四,资源调度对客户来讲是黑盒,如何能让客户放心像使用自建云托管版Redis一样,我们还需要在专属集群产品形态上给到客户。包括资源是否充分利用,在Redis集群形态下是不是不在同一个物理机上等疑问,都是云托管MyBase作为黑盒存在需要解释的问题。


总结:

① 自建Redis整体上云原先运维体系无法使用。

② 由于规格的带宽有所限制,无法充分利用主机带宽,不能应对热点业务的流量冲击。

③ 由于云上服务形态的限制,无法充分复用过去的运维管理经验与现成工具、系统。

④ 资源调度黑盒,资源是否充分利用、是否打散均不了解。


2)我们为什么要做?


能不能在云上享受云Redis服务,但同时又可以像使用自建Redis服务一样有诸多自主权?


既然是想享受阿里云Redis相关的内核优化、管控能力的服务,首先要具备阿里云强大持续发展的Redis引擎能力,给用户提供全面丰富的Redis管控功能,技术完全兜底。


给用户提供自建Redis服务的体验,需要下边这几个部分进行相关规划:


第一部分:物理资源分配策略灵活。


第二部分:隔离性更强,用户不用担心自己的Redis实例和其他客户的Redis实例混在一起。


第三部分:带宽比自建Redis服务还要灵活精准设置,因为我们自建Redis服务带宽都是按照规格设定死的,用户在自建IDC上或者在专属技术形态上是能够自己设置带宽。


第四部分:像自建Redis一样充分利用持久化数据文件。比如企业需要做容量分析,或者Redis数据在某一个时间点找不到地方做大数据分析,如果是自建服务直接读取持久化数据文件,读出以后,通过解析数据化文件进行进一步数据分析统计和加工。云Redis服务不开放持久化数据文件,这种应用场景下用户会受到限制。


第五部分:像自建Redis一样安装模块、调关键参数。Redis在5.0以后,大力发展模块系统,包括有关键参数。这些参数、模块在云Redis服务上不开放,如果用户需要用到这些,只能自建,或者放弃这些功能用云Redis。


第六部分:像自建Redis一样可以*部署性能采集工具。云Redis的服务虽然有监控,有相关Open API来让大家用,但是在Open API设计包括调用的频率上都有限制。自建Redis有很多的性能采集工具,我们也希望在专属集群的形态上进行支持,让用户能够把过去的性能采集工具、日志采集工具都能够*部署。


3)产品定义


云数据库专属集群MyBase for Redis,以主机形式购买云数据库服务,目前包括阿里云Redis产品中的Redis社区版和Redis企业版性能增强型。在赋予PaaS数据库同样能力之外,还具备CPU超配、网络带宽自主可控并整体超配、资源调度、弹性策略、更开放的权限、自主运维能力。


  • Redis社区版:开源托管版服务;
  • Redis企业版性能增强型:专门针对性能、数据备份,还有全球多活,实现高性能企业级的版本。


售卖方式:按月购买,至少购买两台主机;主机付费,实例免费。


产品原理:

第一步:创建专属集群。用户先去我们阿里云控制台上创建专属集群,创建专属集群的时候,需要选数据库引擎,包括相关的超配比、调度模式。数据库引擎有很多种,大家选Redis。专属集群是逻辑上的概念,不是物理上的概念。

第二步:购买主机。在创建专属集群以后,通过专属集群里面的购买主机添加相关主机,主机是实际的概念,可以选各种规格、磁盘类型,两台起配。选完主题以后,下单购买付费。

第三步:部署数据库实例。在主机上面部署数据库实例不收费,可以任意创建、销毁,不经过任何计费系统。包括使用Redis社区版、Redis企业版,都不再另外收取费用。Redis社区版和Redis企业版在托管服务上价格还是有一定差异的,但是在专属集群上实例都是不收费的,只在主机上收费,实例可以随便创建、销毁。

第四步:运营数据库。实例创建以后,可以自主对数据库实例进行相关运维操作,包括和原来系统进行整合。


阿里云MyBase for Redis产品详解


基本能力:

第一:完整云Redis能力。所有云Redis托管版服务,都在专属集群里面。通过专属集群开出来的实例,和直接购买托管版的社区版或者是企业版性能增强型的实例一样,能力、版本都一模一样。

第二:物理资源调度能力。可以清楚地看实例在哪台机器上,整个主机的CPU、内存、网络情况,用户可以直接调度。

第三:数据库资源开放。

第四:可集成DBaaS。

第五:资源超配能力。集成相关管控能力,具备资源超配能力。现在有 CPU超配能力,将来可能也会有内存超配能力。


4)MyBase for Redis 解决之道:云Redis的专属体验


MyBase for Redis产品的好处是:提供了云Redis的专属体验。云上体验:包括有强大内核持续技术更新,完整强大的管控系统,包含了诊断性监控、日志、备份、修改查询数据,还有专家7*24小时支持。用户有什么问题都可以通过工单的形式来找到我们,由我们去解决。


除了云上本来的体验以外,在云专属集群Redis部分,有三大特点:


第一:灵活度高,Redis/Tair*创建销毁实例,阿里云Redis社区版/企业版畅快使用,不用考虑退款等繁琐事宜,适合企业进行池化管理与成本分摊。因为大家就能看到实例部署在哪些机器上,占用了多少内存。


第二,与现有运维监控体系最大融合,依托于开放的操作系统权限,可以部署监控采集agent,实现和自建运维和监控系统的良好融合,用户迁移成本更低。如果用户原来用的是Redis的open API来集成,专属集群不影响,open API都是给大家提供的,跟托管版是一模一样的。


第三,带宽*配置、持久化数据文件开放读取能力,突破托管版实例规格的带宽限制,另外开放持久化文件方便后续数据分析和利用。


5)场景示例:云上测试环境(敏捷、开放、低TCO)


云上的测试环境,需要更灵活、更成本更低,通过专属集群怎么样解决:


第一,在CPU上会有超配,测试环境可设置更大的超配比1:N,支持部署N倍数量的数据库实例。测试成本大幅降低。 


阿里云MyBase for Redis产品详解


第二,提供数据库混部,耗CPU和耗内存的数据库混部,最大化提高CPU和内存的资源利用率,降低TCO。


阿里云MyBase for Redis产品详解


第三,开放OS权限,可安装部署工具软件、运行自定义脚本、可查看OS上的细节日志。测试验证时,分析问题更方便。


第四,免费不限量的服务化数据库实例,服务化的数据库实例无需付费,不限量部署,点击数个按钮即可完成部署,极大降低测试数据库成本,缩短测试环境搭建时间。


第五,实例迁移,便捷的将主机上的实例迁移到其他指定主机。匹配各业务部门之间,功能测试与性能测试等不同场景对资源占用,资源隔离的不同需求。


阿里云MyBase for Redis产品详解


如上图所示的示例:主机1用于功能验证,资源共享。性能测试时,可迁移到资源相对富余的主机2进行,大压力性能测试,不影响其他功能模块的正常运行。


6)MyBase for Redis 典型案例:CC视频


CC视频是一个做直播的公司,用Redis做相关消息传输,痛点在带宽限制上,包括运维自主可控方面。使用MyBase for Redis后,我们做到了以下几点,使客户非常满意。


  • 在业务高峰时单实例顺利支撑峰值1200MB/s的消息传输,并做到了无消息丢失,给直播平台的质量保证提到了一个新的高度。
  • 专属集群不改变客户DBA现有运维模式的同时,为Redis提供自动高可用、快速扩容能力,使得客户更聚焦在业务本身。
  • 优化的云数据库服务,提升客户数据处理能力。


阿里云MyBase for Redis产品详解



上一篇:开放下载!《云原生数据仓库AnalyticDB MySQL版性能白皮书》


下一篇:阿里云MongoDB,一直被模仿,从未被超越