给系统打针高可用疫苗,鹅的数据库就是稳!

2023-10-20 14:14:52 浏览数 (2)

如今是数据驱动时代,数据库作为企业的核心资产之一,其安全性和稳定性显得尤为重要。然而,面对复杂多变的业务场景和不断演变的技术挑战,如何把握现有数据库架构可承受故障的故障级别、发生故障后的高可用性方案是否有效,成为了许多数据库用户关注的焦点,也是腾讯云MySQL在服务众多重保用户时思考的问题。

腾讯云MySQL提供多套提高云数据库可用性、性能、安全的方案,用户可通过配置详情和业务需要搭建全场景高可用架构,以提高数据库实例的整体能力。除此之外,腾讯云MySQL还有一个大杀器:支持现网模拟的故障演练

近期,腾讯云MySQL联合腾讯云混沌演练平台(Chaotic Fault Generator)共同打造了数据库故障演练项目,结合腾讯云内部的混沌蓝军先进实践经验,通过在现网环境中模拟各种故障场景,帮助用户深入了解其系统在面临突发状况时的表现。接入混沌演练平台后可大幅提升MySQL的可用性和稳定性,帮助用户揭示和规避风险。

目前,用户可在三个配置项(防闪断、 多可用区部署和三节点)上体验不同类型的故障演练,未来,腾讯云MySQL还将支持更多场景下的演练需求。

图:腾讯云MySQL产品控制台实例详情页--查看配置

何为混沌?

混沌演练工具是如何帮助用户提高数据库实例的可用性的呢?在详细地介绍使用方法之前,你可能会想先知道混沌是什么。

当你搭建完一套数据库架构后,理论上是无法确保一定不会出故障的。Netflix公司在经过一次历时三天的数据库故障事件后,结合上云经验提出了一套“在故障发生之前主动找出系统中的脆弱点”的方法学,即“混沌工程”。

本次腾讯云MySQL接入“混沌演练平台”就是想帮助用户在现网环境下,对系统进行可控的故障注入实验,观察系统行为并发现系统缺陷,以建立系统应对意外故障的能力和信心。换言之,就像打疫苗可以预防疾病一样,企业可以通过腾讯云混沌演练平台主动进行故障演习并加以改进,将风险扼杀在摇篮中,提升系统的“免疫力”。

腾讯云MySQL 接入混沌演练平台后,可以帮助用户:
  • 改善用云姿势,高效评估和验证系统架构的容错能力,比如业务迁移上云后是否具备多可用区容灾能力。
  • 提高应急效率,包括配置有效的告警监控指标和应急排障SOP等,从而降低故障恢复时长,避免可用性事故带来的经济损失。
  • 通过常态化混沌演练持续提高企业业务架构的云上可用性,提升企业的产品口碑。

腾讯云MySQL x 混沌

应用场景

通过混沌演练,腾讯云MySQL用户可以及时发现现有架构的高可用问题,并对治理后的效果进行有效验证,从而制定出更加全面和有效的容灾预案。

高可用场景1: 多可用区部署

什么是多可用区部署?简单来说,就是将数据库备份到不同的可用区,从而保证在某个可用区发生故障时,其他可用区中的数据库可以继续服务。

腾讯云MySQL实例具备多可用主备部署的特点,提高了数据库系统的可用性和容错性,从而降低了系统的单点故障风险。另外,它还能降低访问延迟,提高了用户请求响应速度,从而保证业务更加稳定和可靠。但即使做了部署,不少用户仍然会担心在故障真正发生时系统是否真的能及时拉起备节点,有了混沌演练平台,用户就可以进行现网实战演练了。

混沌演练平台提供「MySQL主节点故障」的演练能力,通过对多可用区架构中的主节点实例注入故障,观察MySQL实例能否顺利进行主从切换,并在原主可用区拉起新节点作为新备节点。

(下一章节将展示详细的操作流程,一起看到最后吧~)

图:腾讯云MySQL x 混沌演练平台--多可用区部署

高可用场景2: 防闪断

在实际工作场景中,运维人员会根据业务的需要经常对实例进行调整,例如配置变更、计划内HA切换、计划内重启等,此类操作往往会中断会话,导致连接闪断、新建连接失败等问题。

无需担心,腾讯云MySQL提供数据库代理能力,具有防闪断功能,当proxy感知到计划内的有损行为时,就会与切换前的主节点断开连接,将用户端到proxy上的连接恢复至切换后主节点的连接上,通过 session track 能力将会话相关的系统变量、用户变量、字符集编码信息转移至新的后端连接上,实现对应用程序端无损切换。

经过测试,在主备切换、内核小版本升级、调整实例规格的场景下,腾讯云MySQL可保持100%的连接保活率。现在,用户在腾讯云MySQL控制台上就可以方便地对某一个实例一键发起一个「切换实例主从角色」的故障演练任务,看看当主节点故障时,数据库代理是否能将原连接无损地恢复至切换后的主节点上。

图:腾讯云MySQL x 混沌演练平台--防闪断

高可用场景3: 三节点

三节点采用一主两备架构,支持强同步复制方式,能为用户提供金融级的可靠性和高可用性。三节点架构通过部署一个主节点和两个从节点,确保了在主节点出现故障时,可以快速切换到从节点进行故障恢复。这种自动故障转移机制大大提高了数据库的可用性,降低了业务中断的风险。混沌正是通过向三节点架构中的主节点注入故障,模拟主节点连接中断场景,检验两个实时热备的数据一致性和可靠性。

图:腾讯云MySQL x 混沌演练平台--三节点

如何使用混沌?

下面我们以验证实例“多可用区部署”的场景为例,带大家详细看看混沌是如何工作的。

step1: 演练准备

演练前,用户所购买的腾讯云MySQL双节点实例的架构图如下:主实例在广州七区,备实例在广州六区,实现了跨可用区部署(用户还可以开通数据库代理功能,拥有一个RO组添加只读实例,实现读写分离)。在主实例的右边,我们可以看到「故障演练」的入口,点击进入。

图:腾讯云MySQL产品控制台实例详情页--实例架构图

step2: 创建演练任务

1.点击进入「故障演练」入口后,可以看到腾讯云混沌演练平台的演练场景介绍页:

  • 混沌平台将自动代入待演练的云MySQL实例信息
  • 针对“多可用区部署“的配置项一对一匹配演练场景(MySQL主节点故障)
  • 生动形象的动图说明了故障注入的实现原理和操作指南

图:腾讯云混沌演练平台--MySQL联动介绍

2. 点击「一键创建演练」,进入新建演练页面。完成基本信息填写、确认演练对象实例、故障注入的动作和编排,监控指标配置后,点击「提交」完成演练创建。

图:腾讯云混沌演练平台--新建演练

step3: 执行故障注入

正式执行故障注入,平台将会向实例注入错误,来模拟多节点架构实例主节点宕机故障场景,然后触发 MySQL实例发生主从切换。

图:腾讯云混沌演练平台--执行演练

故障执行成功之后,可在云数据库 MySQL 控制台 观测故障注入效果。可以看到实例主从节点架构发生了变化,故障后广州六区备节点被提为主节点,广州七区重新拉起了一个新节点作为备节点;同时,用户还可以收到异常告警(数据来自数据库智能管家 DBbrain 巡检)。

图:腾讯云混沌演练平台--观察演练效果

由此可见,故障注入成功,该实例的多可用去区部署的主备架构也成功通过了验证。这个结果将极大提高用户对现网云上服务的信心。

此外,混沌演练平台还具备丰富的行业演练模板、可视化故障注入、云产品监控护栏等功能,保障演练安全的同时,进一步提升了数据库用户进行自动化故障演习的效率。

图:腾讯云混沌演练平台--行业演练模版

结语

腾讯云MySQL与混沌演练平台的紧密联动,旨在帮助用户及时发现数据库潜在的可用性问题,并提前采取措施消除风险,从而实现正确用云、可靠用云。通过混沌演练平台的实践,数据库用户可以更加清晰地认识到现有架构的不足,从而制定出更加全面和有效的容灾预案。这无疑将大大提高数据库的可用性和安全性,为企业在面对未来挑战时提供了坚实的保障。

未来,腾讯云MySQL还将开放更多场景下的故障演练能力,我们一起打造最好用的数据库!

-- 更多精彩 --

打开思路,数据库的全场景高可用性架构长什么样?

↓↓点击阅读原文,了解更多优惠

0 人点赞