伴随着云计算技术的持续发展,云原生技术在各个行业广泛应用,基于云计算基础设施的应用开发架构已经发生了变革,目的是为了让应用在业务日益复杂多变的场景下可以更好地利用云基建,做到更加敏捷高效。其中,中间件作为云平台业务上云的关键组件,起到了重要的支撑作用。普及并推广云原生中间件对加速云原生技术落地有着长久且积极的意义。
什么是云原生中间件?
在了解云原生中间件之前,我们先了解一下什么是云原生,什么是中间件?
云原生是面向云应用设计的一种思想理念,是发挥云效能的实践路径。云原生(CloudNative)是一个组合词,Cloud+Native。Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境,云原生即原生为云而设计,在云上运行,利用和发挥云平台的弹性+分布式优势。基于云原生的技术和管理方法,用户能够更好地把业务生于云或迁移到云平台,从而享受云的良好和持续的服务能力。
中间件是一种独立的系统软件或服务程序,主要解决异构网络环境下分布式应用软件的互连和互操作问题,为应用提供标准接口、协议等通用服务和功能,屏蔽实现细节,提高应用系统易移植性。中间件在操作系统、网络和数据库的上层,应用软件的下层,可以为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活地开发和集成复杂的应用软件。
云计算时代的中间件在企业业务上云过程中,实现了原有IT资源、公有云、私有云等不同平台上的应用互联互通标准化,同时云计算也为中间件技术的发展提供了更广阔的空间,中间件逐渐成为云基础构建中的一部分。云原生赋予中间件新的内涵,即云原生中间件下沉到云基础设施,保持功能不变的情况下与应用解耦,在运行时为应用动态赋能,支撑上层应用系统。云原生中间件是指公有云、私有云和混合云等动态环境中,用于构建和运行可弹性扩展的应用,持续交付部署业务生产系统的分布式中间件。
Redis中间件迈向云原生的实践
虽然Redis作为一款开源的KV数据库已经被较多企业应用,但是想要在线上用好它却并非易事。Redis的高可用和可扩展无论是自带的Redis Sentinel还是Redis Cluster都要求客户端进行额外的支持,而目前基本上没有合适的客户端能够做这些事情,并且让客户端来做这些事情也并不合适,因为它会让维护变得特别困难。首云Redis云原生中间件可以屏蔽业务与后端Redis连接过程中繁复的细节实现问题而提供Redis服务,这样可以很好的解决Redis的可用和可扩展性问题,同时也使得Redis维护变得更加简单。
Redis中间件在云数据产品实践的架构图
Redis云原生中间件具备的主要能力:
兼容Redis的RESP协议,无需调整业务代码;
向后较好适配Redis主从架构、哨兵架构、集群架构;
对集群支持多key命令、自定义命令、读写权限用户;
支持读写分离;
支持对全命令开启禁用功能;
提供丰富的指标统计信息,包括CPU、内存、流量、请求延迟、key请求数、大 Value 请求等等。
云原生中间件为云数据库Redis带来了哪些价值?
在某些业务场景中,数据库管理员需要对业务进行一些权限控制,常规的做法就是使用rename-command 重命名命令,比如:
这种做法需要提前在配置文件中修改,如果遇到紧急需求,业务需要开放其中一个禁用命令且不能停服,恐怕无法通过这种常规做法实现。首云云数据库Redis通过自有的云原生中间件赋能,动态的开启和禁用这些命令,并且对已有连接和新建连接即可生效。具体操作如下:
在控制台中的Redis实例参数配置模块,对“disalbe-command-list“参数进行配置即可。
连接到当前实例的redis进行操作,如图:
总结
Redis中间件是首都在线(300846)关于Redis云原生方向的一些探索和实践,也意味着首云向云原生又迈进了一步。未来将会在云原生方向进行更多深层次的思考和实践,进一步提升资源的利用率和系统的稳定性。