2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

评论

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

CMake库搜索函数居然不搜索LD_LIBRARY_PATH

华为云开发者联盟

后端 开发

只分享这一次!阿里软件架构师深入底层手写JDK源码

程序猿阿宇

架构 Java 面试 大厂技能 后端技术 秋招

阿里内网最新发布“M8”级Java面试笔记,助力金九银十

程序员啊叶

Java 编程 程序员 架构 java面试

华为云数据治理生产线DataArts,让“数据'慧'说话”

华为云开发者联盟

云计算 华为云

4位资深专家多年大厂经验分享出Flink技术内幕架构设计与实现原理

程序员啊叶

Java 编程 程序员 架构 java面试

如何写一份高可读性的软件工程设计文档

C++后台开发

数据库 软件工程 后端开发 C/C++后台开发 C/C++开发

SMI 与 Gateway API 的 GAMMA 倡议意味着什么?

张晓辉

Kubernetes 服务网格 SMI

DTSE Tech Talk丨第2期:1小时深度解读SaaS应用系统设计

华为云开发者联盟

云计算 后端 SaaS

太牛了,百度这份开发手册几乎涵盖了Spring Cloud所有操作

程序猿阿宇

架构 java程序员 java面试 秋招 程序员‘

备战金九银十,两份JAVA面试题2022最新整合版,祝你脱颖而出

王小凡

Java MySQL spring 面试 springboot

真香!180页100+题15W+字解析的《Java高级面试指南》,果断收下

程序员啊叶

Java 编程 程序员 架构 java面试

腾讯被裁,转头去字节!Java后端核心面试题在手,怎能进不去大厂

程序员啊叶

Java 编程 程序员 架构 java面试

SocialFi 何以成就 Web3 去中心化社交未来

One Block Community

区块链

五面阿里,终拿offer,不明白为什么面试官总喜欢问Java这种问题

程序知音

Java 阿里 后端技术 八股文 Java面试八股文

蓦然回首,“工厂、构造、原型”设计模式,正在灯火阑珊处

掘金安东尼

JavaScript 前端 7月月更

浅谈非 EVM 公链的可能性: 兼容多类型虚拟机是否是区块链未来?

One Block Community

区块链

时序数据库在船舶风险管理领域的应用

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

Kubernetes应用管理深度剖析

Bob

云原生 容器化 后端技术 Kubernetes 集群

我给大家免费公开五份阿里Java架构师学习手册!助力金九银十

程序猿阿宇

架构 Java 面试 大厂面试 大厂技能 秋招

大厂面试突击必备:“网络编程”高频八连击,扛得住吗?

程序员啊叶

Java 编程 程序员 架构 java面试

想用K8s,还得先会Docker吗?其实完全没必要

程序员啊叶

Java 编程 程序员 架构 java面试

难道Redis真的变慢了吗?

程序员啊叶

Java 编程 程序员 架构 java面试

设计消息队列存储消息数据的 MySQL 表格

爱晒太阳的大白

京东发布这份SpringBoot实战手册带你从0手动搭建企业级商城项目

程序猿阿宇

程序员 面试 java程序员 Spring Boot CLI 秋招

上天入地Hadoop——使用高性能分布式技术完成大数据处理任务

程序猿阿宇

大数据 架构 Java 面试 java程序员 编程、

六面蚂蚁金服,唬住了面试官要了30K;其实Java面试也没那么难

程序知音

Java 程序员 后端技术 秋招 Java面试八股文

HarmonyOS分布式协同演奏技术实现路线(Java)

程序员啊叶

Java 编程 程序员 架构 java面试

Moonbeam创始人解读多链新概念Connected Contract

One Block Community

区块链

深入浅出边缘云 | 3. 资源配置

俞凡

架构 边缘计算 网络 深入浅出边缘云

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