写点什么

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

  • 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:002957

评论

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

深度分享|金融行业模型管理效能提升的规划与思考

索信达控股

大数据 金融科技 金融 风险管理 营销管理

从京东零售云走出来的3D数字人正在触动未来的互动世界

网络攻防学习笔记 Day82

穿过生命散发芬芳

网络攻防 7月日更

Python OpenCV 图像的双线性插值算法,全网最细致的算法说明

梦想橡皮擦

Python 7月日更

handler内存泄露,已成功拿下字节、腾讯、脉脉offer

欢喜学安卓

android 程序员 面试 移动开发

支持60+数据传输链路,华为云DRS链路商用大盘点

华为云开发者联盟

华为云 DRS

痛苦调优10小时,我把 Spark 脚本运行时间从15小时缩短到12分钟!

小拍Piper

scala spark 计算机 spark-shell spark-env

音视频的这些功能你知道吗?

anyRTC开发者

音视频 屏幕共享 智能降噪

架构实战营模块2课后作业

hello

架构实战营

回帖送大奖 『和AI在一起』

百度大脑

人工智能 活动 大奖

Rust从0到1-面向对象编程-Trait 对象

rust oop 面向对象编程 Trait Objects Trait 对象

浪潮云说丨如何对多云进行统一运营

云计算

Pandas高级教程之:自定义选项

程序那些事

Python 数据挖掘 数据分析 pandas 程序那些事

BSC币安智能链挖矿模式开发

获客I3O6O643Z97

分布式存储 币安智能链

大数据获取客户系统软件开发源码

获客I3O6O643Z97

大数据

JAVA语言异步非阻塞设计模式(应用篇)

有道技术团队

后端 网易有道

Vue进阶(七十九):应用 postMessage 实现父子跨域通信

No Silver Bullet

Vue 跨域 7月日更 跨域通信

PancakeSwap交易所市值管理机器人开发

Geek_23f0c3

市值管理机器人开发 PancakeSwap交易所 交易所机器人

互操作性和去信任化的两难困境,到底需要治标还是治本?

CECBC

鉴释陈新中:源代码安全在物联网时代的重要性

鉴释

物联网 源代码

Vue进阶(九十五):addEventListener() 监听事件

No Silver Bullet

Vue 事件监听 7月日更

flutter开发工具,细数Android开发者的艰辛历程

欢喜学安卓

android 程序员 面试 移动开发

关于单元测试的那些事儿,Mockito 都能帮你解决

华为云开发者联盟

测试 Mockito Mock Java 开发 模拟测试框架

数字经济时代下,区块链如何助力数字产业发展?

旺链科技

区块链 分布式存储 数字经济

Camtasia入门技巧之视频剪辑

淋雨

视频剪辑 Camtasia 录屏软件

大数据精准营销APP系统开发源码搭建

获客I3O6O643Z97

大数据 抖音霸屏

小程序开发教程,2021Android开发现状分析

欢喜学安卓

android 程序员 面试 移动开发

Go语言:参数传递中,值、引用及指针之间的区别

微客鸟窝

Go 语言

为什么“内存管理”漏洞值得你的绝对关注!

鉴释

代码审查 内存 代码

华为云MVP程云:知识化转型,最终要赋能一线

华为云开发者联盟

人工智能 自然语言处理 机器学习 华为云 智能问答机器人

不保护数据的代价!

鉴释

数据 数据安全

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