青云QingCloud
作者青云QingCloud·2015-06-12 10:28
技术经理·北京青云科技股份有限公司

林源解读Redis新玩法:基于QingCloud增强伸缩性、备份与监控能力

字数 3498阅读 1399评论 0赞 0

云计算经过这两年的发展,市场格局已经逐渐清晰,厮杀之势已成。众所周知,云计算是以服务的形式提供IT化能力,服务形式可以分为IaaS、PaaS、SaaS三种。今天的主角青云QingCloud就是提供IaaS服务的佼佼者,据了解目前青云的活跃用户已经超过22,000,其中80%是企业付费用户

截止到14年6月份,青云都是纯做IaaS,主要关注基础设施(即硬件)虚拟化、资源共享、资源调配等虚拟资源能力的提供,如果面向系统建设考虑,用户需要自己部署相应的平台软件(数据库、中间件等)。不过在提供云服务的过程中,硬件作为基础设施层,仍然需要承载平台和应用软件能力,随着青云自身平台用户规模的增加,用户对于平台软件方面的服务化,即PaaS层服务能力需求也越来越强。

PaaS层主要关注提供平台软件的服务能力(如数据库、中间件等),青云基于自身laaS层提供的虚拟资源,再通过PaaS管理平台来部署和管理平台软件服务,为用户提供数据库和缓存服务。据青云QingCloud联合创始人&架构师林源介绍,青云本次推出的Redis高性能缓存集群包含多个缓存节点,支持一主一从和一主多从的架构,并提供可持久化和自动备份服务,确保用户数据的快速读写和高可用性。

                                          
                                                青云QingCloud联合创始人&架构师林源

林源表示互联网技术的迅猛发展使得传统的关系数据库在应对海量数据访问处理时面临巨大的挑战,而作为非关系数据库代表的Key-Value数据库以其卓越的性能和可扩展性为解决此类问题提供了切实可行的解决方案。高性能Key-Value数据库的主要特点就是具有极高的并发读写性能,Redis更是其中的佼佼者,在C语言的基础上编写,使得Redis不仅结构稳定,而且性能出色。同时林源指出了Redis的适用领域,并介绍了各类的典型应用,最后总结了当前Redis发展所遇到的主要问题。

Redis是一个高性能的key-value存储系统,和Memcached类似,它支持存储的value类型相对更多,包括String(字符串)、List(链表)、Set(集合)和Zset(有序集合)。与Memcached一样,为了保证效率,数据都是存储在内存中,区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了主从同步。

似乎Redis更像一个加强版的Memcached,那么何时使用Memcached,何时使用Redis呢?林源表示,Redis的出现,很大程度补偿了Memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Python、Ruby、Erlang、PHP客户端,使用很方便。同时Redis使用单线程的IO复用模型,自己封装了一个简单的AeEvent事件处理框架,主要实现了Epoll、Kqueue和Select,对于单纯只有IO操作来说,单线程可以将速度优势发挥到最大,但是Redis也提供了一些简单的计算功能,比如排序、聚合等,对于这些操作,单线程模型实际会严重影响整体吞吐量,CPU计算过程中,整个IO调度都是被阻塞住的。总的来说,它有两个区别,一是Memcached没有持久化的功能,但Redis有,你可以把Redis当做数据库来使用,可以存数据;二是Redis数据结构比Memcached丰富。

不过青云的Redis是一个独立的服务,跟用户之前的业务主机是完全分开的,通过网络交互,不会影响用户本身的性能

另外Redis除了作为存储之外还提供了一些其它方面的功能,比如聚合计算、Pubsub、Scripting等,对于此类功能需要了解其实现原理,清楚地了解到它的局限性后,才能正确的使用,比如Pubsub功能,这个实际是没有任何持久化支持的,消费方连接闪断或重连之间过来的消息是会全部丢失的,又比如聚合计算和Scripting等功能受Redis单线程模型所限,是不可能达到很高的吞吐量的,需要谨慎使用。青云提供了一个标准的Redis版本,目前版本号为2.8.17,可以方便以前用Redis服务的用户可以很便捷的迁移过来。并且青云会帮助用户做Redis的运维、优化和配置,降低用户在运维上的开销和成本。

同时相较于传统Redis在内存使用量大的问题,青云推出的Redis缓存集群服务提供了可持久化服务,还可以根据需求改变持久化机制,为用户提供灵活可控的缓存服务。

林源介绍道,青云的Redis是一个集群服务。用户得到的Redis是有集群概念的,集群的节点可以任意选择,可以有一个Master节点和多个Slave节点。它的目的是随着WorkLoad增长,用户可以随时扩张或者收缩节点个数,以满足业务需求。二是扩容,提供在线扩容能力。在运行过程中,Redis的工作压力可能会增长,主要会涉及到两方面的扩容,一个是Scale-Out,另一个是Scale-Up。Scale-Out可以增加节点,扩充它读的能力。还有一种就是Scale-up,在内存不够,需要增加的时候使用。用户在界面上通过简单的操作,甚至直接通过APICall的方式就可以让整个系统在线上的运维变得非常简单。三是备份。所有数据库,包括缓存、MySQL都跟数据有着紧密的关系,数据对于用户来说是很重要,所以提供了备份功能,既有自动备份,也有手动备份,完全看用户的需求进行选择。通过多节点的方式保证集群的可用性,同通过备份的方式,避免客户在生产过程中的误操作造成灾难的发生,以确保数据的安全,与此同时利用二层隔离的私有网络,保证用户之间业务100%隔离,做到业务层面的安全保障。

            
                                                       青云监控图表

四是监控告警。监控是企业集群运行必不可少的一环,青云在这一环节做的非常到位,通过API的监控,为Redis用户提供多项实时监控及告警服务,包括内存、操作数、命中率、连接数、查询命中数、Key数量等监控项,通过可视化图表的形式直观的展现出来。此外,用户还可以针对每个缓存的节点单独绑定监控告警策略。

谈及未来发展,林源表示仅仅有IaaS是不够的。青云未来会创造更多的PaaS产品,林源表示青云接下来会提供Auto Scaling服务,Auto Scaling是指自动给应用按需增加或者减少计算资源,在实现之后可以帮助用户实现真正的运维自动化。同时15年一月份还会上线Memcached缓存服务,以及其他的开源数据库例如PostgreSQL、MongoDB等等。最后还会提供数据分析以及可视化服务,给用户提供大数据分析的工具,就是一整套大数据分析的框架,可能包括Zookeeper、队列服务(Queue Service)、Hadoop集群等等。

从基础设施到软件一体化服务平台,是未来云服务厂商发展的必然之路,通过提供软硬件一体化PaaS层云服务。形成共享资源池,同时提供平台级软件能力,然后按照各个应用需求在PaaS资源池中申请硬件资源、获得软件服务的方式,不断部署不同的业务应用,实现系统的集中化整合。这样可以有效节省计算和存储资源、机房空间、耗电和配套设施、人力维护成本,提高系统的可靠性、扩展能力、计算能力,避免出现业务要求和系统支撑能力不匹配的问题。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广