3分钟学会如何调度运营海量Redis系统

栏目: 数据库 · 发布时间: 7年前

内容简介:作者:冯伟源作者:冯伟源,高级工程师,腾讯云Redis系统运维负责人。6年DBA经验,一直从事SQL优化、实例调优、数据库架构、海量数据库集群运维、运营平台建设和管理等工作。为 QQ、Qzone、QQ音乐、微云、腾讯云等业务提供数据库服务。导语:腾讯云Redis自2015年诞生以来,爆发式增长,为上万家客户提供服务。作者作为唯一的运维负责人,面对三大挑战时如何破解?

作者:冯伟源

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

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

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

解读腾讯云Redis

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

腾讯云Redis目前分别提供主从版、集群版、新一代三个版本。在使用上,基本兼容 Redis 协议,支持字符串、链表、集合、有序集合、哈希表等多种数据类型,能帮助客户完成不同类型的业务场景开发。腾讯云Redis支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。搜索关注“腾讯云数据库TencentDB"官方微信,最新最热数据库前沿知识和手把手实战教程等你来约,更可在移动端一键管理数据库。

3分钟学会如何调度运营海量Redis系统

3分钟学会如何调度运营海量Redis系统

运营问题

我们在运营Redis的过程中,遇到各种各样的问题总结如下:

1. 环境:网络、TCP参数设置的问题;

2. 设计:做持久化时,页表复制造成的卡顿;

3. 开发者:慢查询,连接风暴,缺流控等;

4. 最终用户:比如电商的秒杀活动,访问陡增导致处理能力到极限。

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

3分钟学会如何调度运营海量Redis系统

三大挑战

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

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

3分钟学会如何调度运营海量Redis系统

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

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

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

设计思路上,采用通用框架,可以管理不同数据库类型的信息,也为后面的运维自动化奠定基础。

3分钟学会如何调度运营海量Redis系统

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

系统提供服务之初,整体运维规模还不大,很多运维工作可以通过手工解决。在客户量爆发后,1~2个DBA是无法通过手工解决万台设备运营,更无法面对亿级QPS性能冲击。

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

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

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

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

3分钟学会如何调度运营海量Redis系统

3分钟学会如何调度运营海量Redis系统

3分钟学会如何调度运营海量Redis系统

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

手工触发的运维流程,只能算是半自动化。我们该如何把整体的运营工作打造成全自动化呢?

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

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

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

3分钟学会如何调度运营海量Redis系统

3分钟学会如何调度运营海量Redis系统

3分钟学会如何调度运营海量Redis系统

3分钟学会如何调度运营海量Redis系统

总结运营之道

运维成熟度的衡量

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

总结:技术 支持 业务,技术 推动 业务,技术 引领 业务。 搜索关注“腾讯云数据库TencentDB"官方微信,最新最热数据库前沿知识和手把手实战教程等你来约,更可在移动端一键管理数据库。

3分钟学会如何调度运营海量Redis系统

云时代下对DBA的全面要求

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

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

此文已由腾讯云+社区在各渠道发布

获取更多新鲜技术干货,可以关注我们 腾讯云技术社区-云加社区官方号及知乎机构号


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Spark SQL内核剖析

Spark SQL内核剖析

朱锋、张韶全、黄明 / 电子工业出版社 / 2018-8 / 69.00元

Spark SQL 是 Spark 技术体系中较有影响力的应用(Killer application),也是 SQL-on-Hadoop 解决方案 中举足轻重的产品。《Spark SQL内核剖析》由 11 章构成,从源码层面深入介绍 Spark SQL 内部实现机制,以及在实际业务场 景中的开发实践,其中包括 SQL 编译实现、逻辑计划的生成与优化、物理计划的生成与优化、Aggregation 算......一起来看看 《Spark SQL内核剖析》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具