写点什么

腾讯云高可用和容灾解决方案

  • 2019-10-25
  • 本文字数:2938 字

    阅读完需:约 10 分钟

腾讯云高可用和容灾解决方案

实现业务连续性的技术手段通常包括高可用性和灾备恢复两种,所以本文其实讲述的是在腾讯云上实现业务连续性的解决方案。

一、业务连续性

业务连续性(Business Continuity)是指在中断事件发生后,组织在预先确定的可接受的水平上连续交付产品或提供服务的能力。它明确一个机构的关键职能以及可能对这些职能构成的威胁,并据此采取相应的技术手段,制定计划和流程,确保这些关键职能在任何环境下都能持续发挥作用。


业务连续性(BC)针对的事件场景应包括三类:一般故障(Outage)、紧急事件(Emergency)和灾难事件(Disaster)。


实现业务连续性所需的 IT 措施包含三个方面:业务状态数据的备份和复制、业务处理能力的冗余和切换、外部接口冗余和切换。

业务连续性管理

业务连续性管理(Business Continuity Management,简称 BCM)是一套一体化的管理流程,通过该流程可识别组织面临的潜在威胁以及这些威胁一旦发生可能对业务运行带来的影响,并为组织提供了一个指导框架来建立有效应对威胁的自我恢复能力,从而保护关键相关方的利益、声誉、品牌和创造价值的活动。


业务连续性管理是一个长期的、不断完善的循环过程,需遵循国际标准的 PDCA 循环模型,即策划 (Plan)—实施 (Do)—检查 (Check)—改进 (Act)。


实现业务连续性的技术手段

实现业务连续性的技术手段通常包括高可用性(单数据中心下即可完成)和灾备恢复(通常涉及至少两个数据中心,一个生产中心,一个容灾中心)两种。

1 高可用性(High Availability,简称 HA)

指的是通过技术手段,尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。业界的通行做法是采用群集系统(Cluster),将各个主机系统、网络系统、存储设备(部分高可用系统包含存储设备的高可用)等通过各种手段有机地组成一个群体,共同对外提供服务。


通过创建群集系统(采用实现高可用性的软件)将冗余的高可用性的硬件组件和软件组件组合起来,以达到消除单点故障、减少设备意外发生时的宕机时间。一般说,高可用技术通过对网卡、 CPU、内存、系统软件设置不同的可用性监测点,在这些节点发生故障时实现冗余切换,持续提供服务。


然而,传统的高可用技术(如双机热备)并不能有效应对数据或者软件逻辑故障所造成的意外宕机情况,如人为误操作、网络病毒攻击等,近几年兴起的 CDP(Continuous Data Protect 持续数据保护)技术,在面对业务各类风险事件时的高级别的应急技术则可以看做是高可用的有效补充与扩展(当然, CDP 技术也融合了备份、快照等多种技术于一体)。

2 灾难恢复(Disaster Recovery)

灾难恢复(DR)(国内通常简称为灾备或容灾)属于业务连续性的技术层面。在信息服务中断后,调动资源,在异地重建信息技术服务平台(包括基础架构、通信、系统、应用及数据),灾难恢复也包括本地的恢复与重建。


目前,流行的灾备系统往往包括本地的 HA 集群和异地的 DR 数据中心。从故障角度, HA 主要处理单组件的故障导致负载在集群内的服务器之间的切换, DR 则是应对大规模的故障导致负载在数据中心之间做切换。从网络角度, LAN 尺度的任务是 HA 的范畴, WAN 尺度的任务是 DR 的范围。从云的角度, HA 是一个云环境内保障业务连续性的机制, DR 是多个云环境间保障业务连续性的机制。从目标角度, HA 主要是保证业务高可用, DR 是保证数据可靠的基础上的业务可用。

二、腾讯云高可用解决方案


[ 标准 Web 系统的架构分层,图片来源于网络,供参考 ]


CDB for MySQL 灾备

针对业务连续服务和数据可靠性有强需求或是监管需要的场景,CDB 提供灾备实例,帮助用户以较低的成本提升业务连续服务的能力,同时提升数据的可靠性。

1CDB for MySQL 普通实例架构(同个可用区)


[ CDB for MySQL 普通实例架构(同个可用区) ]

2CDB for MySQL 同城灾备实例架构(不同可用区)


[ CDB for MySQL 同城灾备实例架构(不同可用区) ]


说明:腾讯云数据库多可用区部署目前仅支持深圳金融专区,大客户可以特殊支持,其他可用区的支持还在规划中。



CDB for MySQL 异地灾备实例架构



[ CDB for MySQL 异地灾备实例架构 ]

高可用基本结构 1:CLB+不同可用区 CVM

CLB 可绑定的处于同个 VPC 下的同个地域不同可用区 CVM,则可在负载均衡实例所在的地域内的多个可用区中选择绑定 CVM 实例,以增加应用程序的健壮性,屏蔽单点故障。



如上图所示,在负载均衡实例下绑定不同可用区的 CVM,当广州三区发生故障时,广州四区的服务器仍可正常提供服务,这样即可以避免因为单个可用区的故障而导致对外服务的不可用。

高可用基本结构 2:CLB+不同可用区 CVM+MySQL 实例(同可用区)

在同个可用区中,每个 CDB for MySQL 实例均有实时热备的备机提供数据库的高可用;


但可以为 MySQL 创建灾备实例,在主实例发生故障,可在数秒内激活灾备实例,恢复完整读写功能;


高可用基本结构 3:CLB+不同可用区 CVM+MySQL 实例(不同可用区)

部分可用区 Mysql 实例支持多可用区部署(目前仅支持深圳金融专区);


三、腾讯云容灾解决方案


[ 业务连续性解决方案的几种主要应用场景 ]


上图中三种应用场景是大家耳熟能详的,从用户使用角度来理解容灾场景,则有如下两种场景:

跨可用区容灾

跨可用区容灾需要保证一个 CLB 实例的后端服务器 CVM 分布在多个可用区,即避免一个可用区不可用时,CLB 后端的 CVM 都无法使用从而影响用户访问。


即使 CLB 支持添加属于不同可用区的 CVM,用户也是购买两个 CLB 实例来实现跨可用区容灾,用户可以使用云解析将注册系统的域名解析到上面的两个 CLB 实例,实现 CLB 的调度。


如果还使用 CDB 等产品,还需要考虑 CDB 的跨可用区容灾问题,CDB for MySQL 支持灾备实例。

跨地域容灾

随着业务的发展,用户对业务系统的高可用要求越来越高,已经不满足于只能做到跨可用区的容灾,用户希望即使某个地域的系统都不可用了,还可用通过其它地域的系统继续提供服务,这就是跨地域容灾。


跨地域容灾是个非常大的课题,不仅仅涉及到网络层面,更涉及到应用系统的改造和适配,数据的同步和一致性等很棘手的问题。这里仅说明下网络层面的跨地域容灾。从产品角度看,跨可用区容灾一般是通过 DNS 来实现的。


传统的如 F5 的全局负载均衡(以前叫 GTM,现在叫 BIG-IP DNS)就有比较完善的解决方案,或者一些提供 DNS 服务的系统也有类似的功能。负载均衡 CLB 产品本身没有提供这样的能力,跨地域容灾的能力是通过云解析 DNS+DNSPod 产品来实现的,云解析 DNS 产品提供了解析的能力,DNSPod 提供容灾的能力,网站宕机后自动切换 DNS 记录,多种切换算法,满足用户不同需求。


另外,对于跨地域(跨 VPC)容灾可能需要使用在不同地域间同步数据或者跨地域私网调用,可以使用【对等连接】产品构建不同地域的通信链路。

同城双机房(跨可用区容灾)架构

参考上面高可用基本架构 3

异地(跨地域容灾)架构

两地三中心架构


补充,要实现所谓的容灾功能需要依赖云上产品的数据同步能力:


  • CVM 镜像:目前支持跨地域复制,但是制作镜像需要关机;

  • COS 复制:后续会支持跨园区复制的功能;

  • DTS 复制:创建数据库同步任务;

  • CLB 多可用区:目前只有金融专区支持;

  • MySQL 多可用区:目前只有深圳金融区支持;


本文转载自公众号云加社区(ID:QcloudCommunity)。


原文链接:


https://mp.weixin.qq.com/s/PTS4lP9zJnhQnVNrWLJFOg


2019-10-25 18:003295

评论

发布
暂无评论
发现更多内容

下一朵云,会是谁

ToB行业头条

前端线下面授培训机构的选择

小谷哥

Go1.20新版本正式发布,新特性值得一看

王中阳Go

Go golang 高效工作 学习方法

真正的低代码平台

陈飞

PaaS SaaS 低代码平台

点对点传输现状,镭速高速点对点传输解决方案

镭速

设计模式-工厂方法模式和抽象工厂模式

C++后台开发

数据结构 设计模式 后端开发 Linux服务器开发 C++开发

单体应用、SOA、微服务,优劣势都有哪些?

FinFish

微服务 微服务架构 前端开发 移动开发 小程序化

谷歌用Bard打响了Chat GPT的第一枪,百度版Chat GPT 何时出炉?

GPU算力

NFT铸造系统模式开发定制

开发微hkkf5566

上海前端培训学习的就业前景

小谷哥

速剖架构(一)-- 流量的自然走向

Dinfan

架构设计

可路由计算引擎实现前置数据库

石臻臻的杂货铺

数据库

尚硅谷发布九章云台项目视频

小谷哥

前端技术培训学习哪个机构好?

小谷哥

大数据培训学习怎么入门

小谷哥

干货分享 | UE游戏鼠标双击判定

3DCAT实时渲染

游戏开发 虚幻引擎 ue 游戏开发引擎

《流浪地球2》“数字生命”最后一秒拯救人类,现实中AI也正在“长出”灵魂

硬科技星球

浅谈 2022 前端工作流中全流程多层次的四款测试工具

Liam

前端 测试 前端开发 测试工具 测试开发

RocketMQ 监控告警:生产环境如何快速通过监控预警发现堆积、收发失败等问题?

阿里巴巴云原生

阿里云 RocketMQ 云原生

Apache RocketMQ 入选 SegmentFault 年度中国技术品牌影响力企业榜单!

阿里巴巴云原生

阿里云 Apache RocketMQ

UE干货| UE虚幻引擎调试神器—控件反射器

3DCAT实时渲染

游戏开发 虚幻引擎 ue 游戏开发引擎

化繁为简|中信建投基于StarRocks构建统一查询服务平台

StarRocks

数据库 大数据 开源

新书上市 | 以过去预测未来,有趣的时间序列

图灵教育

机器学习 统计学 时间序列 时间序列预测

新书上市 | 以过去预测未来,有趣的时间序列

图灵社区

机器学习 统计学 时间序列 时间序列预测

BIGO 如何做到夜间同时运行 2.4K 个工作流实例?

白鲸开源

spark 工作流调度 Apache DolphinScheduler 离线计算

CNStack 2.0:云原生的技术中台

阿里巴巴云原生

阿里云 云原生 技术中台

干货分享 | 3个Zbrush实用减面工具分享

3DCAT实时渲染

3D渲染 3D模型

基于流量双发平台的高效回归方案

网易云信

反垃圾 业务集群

程序员必备的数据库知识 2:Join 算法

NineData

数据库 程序员 join SQL sever NineData

前端报表如何实现无预览打印解决方案或静默打印

葡萄城技术团队

启科量子解决方案实践:使用QuTrunk+AWS Deep Learning AMI(TensorFlow2)构建量子神经网络

启科量子开发者官方号

人工智能 量子计算

腾讯云高可用和容灾解决方案_文化 & 方法_涂小敏_InfoQ精选文章