如何运营亿级QPS的Redis系统

欢迎你们前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~数据库

做者:冯伟源,高级工程师,腾讯云Redis系统运维负责人。6年DBA经验,一直从事SQL优化、实例调优、数据库架构、海量数据库集群运维、运营平台建设和管理等工做。为 QQ、Qzone、QQ音乐、微云、腾讯云等业务提供数据库服务。

导语:腾讯云Redis自2015年诞生以来,爆发时增加,为上万家客户提供服务。做者做为惟一的运维负责人,面对三大挑战是如何破解?缓存

  • 元信息的一致性管理
  • 万台设备高效运维
  • 如何实现智能调度

解读腾讯云Redis

腾讯云Redis是基于腾讯内部分布式缓存领域在QQ、音乐、Qzone、微云等业务多年的技术沉淀,为客户打造除的一款高可用、高可靠的Redis服务平台。其业务发展迅速,目前有上万台设备QPS已达亿级微信

腾讯云Redis目前分别提供主从版、集群版、新一代三个版本。在使用上,基本兼容 Redis 协议,支持字符串、链表、集合、有序集合、哈希表等多种数据类型,能帮助客户完成不一样类型的业务场景开发。腾讯云Redis支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。网络

img

img

运营问题

咱们在运营Redis的过程当中,遇到各类各样的问题总结以下:数据结构

  1. 环境:网络、TCP参数设置的问题;
  2. 设计:作持久化时,页表复制形成的卡顿;
  3. 开发者:慢查询,链接风暴,缺流控等;
  4. 最终用户:好比电商的秒杀活动,访问陡增致使处理能力到极限。

总的来讲,是服务运行过程当中,资源的需求供给不匹配。架构

img

三大挑战

在应对这些运营难题过程当中,咱们陆续地翻越三座大山:框架

挑战一:元信息的一致性管理

img

元信息的混乱致使一些运维故障在平常运营中常常碰到?最基本的四类元信息是集群、设备、实例和配置。 咱们解决这类问题的时候定3条原则。运维

  • “全”---元信息梳理统计全;
  • “准”---和现网各类信息保持一致;
  • “一”---统一的入口,提供统一的API,来进行数据的读取与修改,让元数据的变动能够被审计。

首先对全部元信息进行梳理,提取各类元信息的公共特征,分类建模,而后抽象出模板对象的属性与方法,定义数据结构,最后设定数据同步与消费的方式,对外提供API接口。这样一套基本的DB-CMDB子系统就建成了。也就是数据库层统一元信息管理系统。机器学习

设计思路上,采用通用框架,能够管理不一样数据库类型的信息,也为后面的运维自动化奠基基础。分布式

img

挑战二:万台设备的做业方式

系统提供服务之初,总体运维规模还不大,不少运维工做能够经过手工解决。在客户量爆发后,1~2个DBA是没法经过手工解决万台设备运营?更没法面对亿级QPS性能冲击?

为了应对规模化的运营,咱们打造“做业平台”的系统,来承载咱们的运维逻辑。

  • 平台化---原子操做,工具托管在平台上
  • 流程化---工具串成流程,流程化,可复用
  • 可视化---各种运维操做可视化,简单明了

首先将脚本编辑做为工具,托管在平台上。这种工具的原则是原子操做,只有失败与成功两种状态。工具串起来成为流程,每一个工具能够被多个流程复用,这样大部分运维操做,包括上下架机器,Redis的迁移,扩缩容均可以经过流程来实施。同时各种操做均经过可视化来展现,简单明了。

目前腾讯云Redis做业平台已建成数百种场景化的工做流程,日调用次数达上千次,覆盖大部分的运维场景,变动致使的事故减小,服务更为稳定可靠,场景化运维工做效率提高300%。经过平台化、可视化、流程化的“做业平台”,整个团队的工做协同,积累,传承作得更好。

img

img

img

挑战三:如何实现智能调度

手工触发的运维流程,只能算是半自动化。咱们该如何把总体的运营工做打形成全自动化呢?

  • 自动化调度系统
  • 决策系统

自动化调度系统:对于按事件和时间调度系统异常时触发的告警,第一是按时间调度,好比每周三下午3点重启一个服务,经过时间来触发。第二是按事件调度,咱们把每一种告警,都做为一种事件,注册到调度系统中。调度系统捕获到事件后,能够调用做业平台的任务或者流程去完成一些工做,这就造成一个运维的闭环。

决策系统:在处理一个事情以前,咱们还须要获取各类信息,如何根据信息作决策?一个决策系统,先发起决策请求,过程当中可能会涉及到一些决策树,或者AI决策等,根据决策的结果,再肯定调哪些做业流程,或者是否调做业流程。

img

img

img

img

总结运营之道

运维成熟度的衡量

运维成熟度在腾讯云的成熟度衡量:从比较原始的方式,到实现一些标准的工具。再到可视化、流程化、平台化,以及实现能基于时间与事件触发的自动调度平台,实现全自动化的运维闭环。智能化解读,经过机器学习,深度学习的方法能帮助咱们更好地作一些决策,好比说数据库自动调参,智能分析实现数据的冷热沉降;最后,经过业务画像,数据分析,成本优化等为业务带来更多的价值。

总结:技术支持业务,技术推进业务,技术引领业务。

img

云时代下对DBA的全面要求

云时代下,DBA应该对自身能力提出更高更全面的要求。咱们不但要保证系统高效稳定,协助好使用者,还要在产品打造方向、架构设计的细节上,组件的源码,社区的跟进甚至是引领,咱们都须要有本身的积累与影响力。

咱们既是运维,也是开发,也是产品。这也是云时代下,服务化、DO合一的一个趋势!

此文已由做者受权腾讯云+社区发布,原文连接:https://cloud.tencent.com/dev...

欢迎你们前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~

相关文章
相关标签/搜索