云架构的思考4--云上灾备

目录

  • 1 关键指标
  • 2 灾备方案
  • 3 云上灾备常见模式
    • 3.1 “地域”模式
    • 3.2 “应用”模式
    • 3.3 “数据”模式
  • 4 总结

前几章讲了云上架构、开发等事项,其实灾备也算是架构中的一步,但是这里特意拎出来讲主要有2个原因,其一是因为灾备相对独立且复杂,而且并非所有的业务需求都需要有灾备;其二是在云上的灾备是云的吸引力之一,因为以前做一个灾备,特别是异地灾备的数据中心有多困难多费钱就不说了,现在云似乎可以让灾备随时触手可及。那么本章就来讲一下云上灾备的内容。

1 关键指标

灾备说到底就是在系统发生灾难性打击的时候,是否存在备用解决方案,简单来说就是还具备高可用吗?那么要实现高可用就必须冗余,因此灾备说到底就是对你系统的冗余(无论哪种方式)。那么不同业务、不同系统、不同层次、不同要求对灾备的需求都不一样,实现不一样的灾备其人力物力也不一样。这里有2个指标必须知道:
RPO:简单来说就是能恢复数据到哪个时间点(一般决定于数据备份频率)
RTO:需要从故障发生后,多久时间恢复服务可用(一般决定于高可用或冷热备)
这2个指标的高低决定你会采用哪种方式的灾备,也取决于灾备的成本,RPO和RTO越低,成本越高,灾备方案也复杂。

2 灾备方案

不同的灾备方案有不同的效果,同时具备优缺点,这里以表格方式列举不同灾备方式:

\备份冷备温备热备
方案描述将应用和数据以备份(snapshot)方式备份到灾备区,且数据备份延迟可能达1天将应用和数据部署在灾备区,但是不启动的冷备,且数据可以准实时备份整体系统以最小资源运行在灾备区,当出现灾难时,自动切换和扩展资源。整体系统在灾备区重新运行一套一模一样的系统,当出现灾难时,自动切换。
RPO/RTORPO:可能会是1天到1周时间;RTO:相对比较长,可能几个小时;RPO:相对于“备份”有更低的RPO,可能几分钟到几小时;RTO:相对于“备份”有更短的RTO,可能几分钟到十几分钟;RPO:比较低的RPO,可能几分钟;RTO:比较低的RTO,可能几分钟 ;RPO:非常低的RPO,可能几秒钟;RTO:非常低的RTO,可能几秒钟;
优点成本低;实现简单成本较低;恢复较快恢复快;几乎等同于高可用;
缺点RPO和RTO高;RPO和RTO一般;成本较高 ;成本高;实现复杂;

可以看出灾备的要求和成本正比,且成本可能会指数增长。因此在考虑自己的系统灾备问题时,更需要多方面考虑,往往的情况是采用混合方式,也就是核心主要系统采用热备,其它非核心系统按照其重要程度逐步降低要求。另外除了灾备方案之外,灾备区的选择也是一种需要考量的参数,下一节中云上灾备常见模式就能看到不同灾备区对应的灾备方案也会有所不同,当然成本也会有所不同。

3 云上灾备常见模式

讲完了指标和灾备方案,那么在云上有哪些常见的云上灾备模式

3.1 “地域”模式

所谓的地域模式就是利用云的多地域优势进行灾备。在公有云上有2个概念需要知道,一个是“区域”即表示一个区域(可以是广州、上海等),一般一个云厂商有很多个区域,这些区域并没有内网专线联通。另外一个是“可用区”即表示在一个区域(比如上海、广州等)建造了多个数据中心,每个数据中心相聚十几到几十公里,每个中心使用高速带宽连接一起,这样每个数据中心就称为“可用区”。简单来说一个云厂商有多个区域,每个区域有一个到多个可用区。我们在做灾备时,就可以利用不同云厂商、区域、可用区的解决方案来实现不同程度的灾备。

  • 可用区灾备:我们知道虽然我们部署了一个集群,但是很可能这个集群都是在一个可用区(也就是一个数据中心),但这个可用区网络出现问题或者出现破坏性行为时,可能导致整个系统不可用。而利用云的多可用区特点做灾备,可以提高我们的高可用。由于一个区域内的可用区都是由内网联通的,所以很多云产品(负载均衡、自动伸缩等)都是提供多可用区的模式,因此采用可用区灾备是一种成本比较低且方便的操作。但是毕竟多可用区都是属于一个区域,有可能出现整个区域不可用的情况,这时候就需要跨区域灾备。
  • 跨区域灾备:前面简述了区域指的是云厂商在一个区域部署的多个数据中心,但是一个区域出现自然灾害导致整片区域不可用的情况还是会存在,因此为了我们应用高可用性,我们还需要做到跨区域灾备。跨区域灾备就不想可用区灾备那么简单,因为区域之间的网络是没有专门高速通道联通,意味着你需要比较大的成本且需要牺牲一些内容。一般采用DNS做一个域名转发,使用就近原则将请求分配到距离用户最近的区域,但是无状态的应用可以多个区域部署,前端搭载负载均衡,在通过DNS转发到负载均衡上面。而数据层面就很难做到多区域强一致性,这部分在“数据”模式中详细讨论。这里我们知道可以通过多区域灾备模式提升我们应用的高可用性。
  • 混合云灾备:我们知道除了公有云,还存在私有云、专有云甚至本地数据中心,利用混合云模式,将数据和应用在公有云和其它云模式下相互灾备也是一种场景的模式,特别是利用公有云来作备份,利用公有云来分担流量,这些都是一些灾备折中方案,既可以节省一定成本,也能利用到公有云的特性。
  • 多个云供应商灾备:云供应商虽然提供很高的SLA保障,但是云供应商出现问题的事件却一直没有听过。如果云供应商出现问题,作为用户你只能干等着他们修复问题,却无法做其它事情,因此现在很多企业采用的是多个云供应商部署方式,一方面是解决被单个供应商绑定的困扰,另一方面就是灾备。

3.2 “应用”模式

部署的应用有哪些模式做容灾。

  • 快照:通过对云主机的快照备份,然后定时将备份传送到灾备区进行备份,必要时可以使用快照迅速恢复云主机
  • 镜像:对于无状态的应用,我们可3.以提前制作镜像,这样我们就能快速部署新的应用同时也能提高部署效率,通过镜像我们可以在灾备区迅速搭建新的应用
  • 云灾备工具:不同云厂商对于虚拟机、云主机都提供一个便利的灾备工具,通过灾备工具可以迅速恢复或者重新搭建新的应用。

3.3 “数据”模式

在所有的灾备中,数据的灾备是最复杂的,因为数据一般要求很高的强一致性,而灾备的原理就是冗余,如果既要冗余又要强一致性,那么可能会导致性能下降。CAP原理就是需要做出一些选择。下面说一下云上不同存储的一些灾备模式

  • 云盘(块存储)灾备:在数据存储中,我们可能会采用云盘(如果理解不了就直接理解主机挂载的硬盘)。这类存储就是很主机挂上关系的,因此在灾备的时候,你不止需要考虑其备份的速度,还需要考虑恢复的的挂载机制。因此这类存储的灾备一般采用云厂商提供的一些备份方案,将其准实时地自动地备份到灾备区,同时也能够迅速在灾备区挂载到新的云主机中。
  • 对象存储灾备:对象存储一般指云产品上面如S3、OSS等产品,存储静态文件的数据存储。这些存储一般都是成熟的云产品,我们采用的方式可以是使用跨区域复制+版本机制来达到灾备效果。
  • 关系型数据库:关系型数据库是比较常见的应用数据库,这里分两部分,一个部分是自建的关系型数据库,这部分不在讨论访问。另一部分是云关系型数据库。一般的云关系型数据库都是由云厂商提供的,都会提供高可用的版本,也就是可以是主从模式、双主模式、集群模式等,但是一般都是在一个区域内保证多个可用区部署,如果涉及到跨区域,一般还是采用都是备份或者日志同步(DTS工具)方式,在灾备区备份一份数据(无论是冷备还是热备,取决于你对RTO的要求)。

4 总结

之所以灾备单独拿出来讲是因为灾备比较重要,更是因为灾备在云上做起来会容易的多并且不需要付出太大的代价就能可以对你多种方案的试验。但我们知道灾备更多的是要应付出现极端情况下的系统不可用,也知道RPO和RTO越低,对于灾备的成本也就越高。我们通过对云部署模式、应用、数据等几个方面详细讲了云上灾备模式,希望对你在云架构设计上有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/222380.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux-----5、文件系统

# 文件系统 # 终端的基本操作 ㈠ 打开多个终端 ㈡ 快速清屏 新建标签:command T 新建窗口:command N 关闭标签:command Q 关闭窗口:command W 放大:command 缩小:command - 清屏&#xff…

智慧城市/一网统管建设:人员危险行为检测算法,为城市安全保驾护航

随着人们压力的不断增加,经常会看见在日常生活中由于小摩擦造成的大事故。如何在事故发生时进行及时告警,又如何在事故发生后进行证据搜索与事件溯源?旭帆科技智能视频监控人员危险行为/事件检测算法可以给出答案。 全程监控,有源…

函数节流(js的问题)

函数节流也用到了高阶函数的知识,因为比较重要,所以单开了一个标题。 javascript中的函数在大多数情况下都是由用户主动调用触发的,除非是函数本身的实现不合理。但是在一些少数情况下,函数可能被很频繁的调用,而造成大…

【Linux】多线程编程

目录 1. 线程基础知识 2. 线程创建 3. 线程ID(TID) 4. 线程终止 5. 线程取消 6. 线程等待 7. 线程分离 8. 线程互斥 8.1 初始化互斥量 8.2 销毁互斥量 8.3 互斥量加锁和解锁 9. 可重入和线程安全 10. 线程同步之条件变量 10.1 初始化条件变…

Qt图像处理-亮度、对比度、灰度、锐化、负片的实现

本文演示Qt中图像的亮度、对比度、灰度、锐化、负片处理实现 一、概述 亮度和对比度原理 图像亮度通俗理解便是图像的明暗程度,数字图像 f(x,y) = i(x,y) r(x, y) ,如果灰度值在[0,255]之间,则 f 值越接近0亮度越低,f 值越接近255亮度越高。而且我们也要把亮度和对比…

Maven下载及安装自用版

Maven下载及安装自用版 可能是Maven用久了。感觉Maven用起来还算顺手,比Gradle要好上手一些。 一、下载 Maven 下载地址 注意下载版本和依赖要求,下载后,解压放在指定的位置;注意安装地址,放在自己规划好的开发环境专用文件夹里…

ubuntu创建apt-mirror本地仓库

首先创建apt-mirror的服务端,也就是存储所有apt-get下载的文件和依赖。大约需要300G,预留400G左右空间就可以开始了。 安装ubuntu省略,用的是ubuntu202204 ubuntu挂载硬盘(不需要的可以跳过): #下载挂载工具 sudo apt…

C++类与对象(一)

目录 一,面向过程和面向对象初步认识 二,类的引入 三,类的定义 四,类的访问限定符及封装 五,类的实例化 六,类对象模型 七,this指针 一,面向过程和面向对象初步认识 c语言是面…

使用动画曲线编辑器打造炫酷的3D可视化ACE

前言 在制作3D可视化看板时,除了精细的模型结构外,炫酷的动画效果也是必不可少的。无论是复杂的还是简单的动画效果,要实现100%的自然平滑都是具有挑战性的工作。这涉及到物理引擎的计算和对动画效果的数学建模分析。一般来说,只…

HPM6750系列--第七篇 Visual Studio Code使用openocd调试查看外设信息

一、目的 在《HPM6750系列--第四篇 搭建Visual Studio Code开发调试环境》我们已经手把手指导大家如何在visual studio code中进行开发,包括编译调试等步骤以及相关配置文件。 但是在实际调试时发现找不到芯片寄存器实时显示的窗口,本篇主要讲解如何实现…

天翼云盘秒变硬盘分享

https://cloud.189.cn/web/share?codeAvUnqaj6NNza(访问码:wf4r)y 以下介绍为作者开发的单机版软件,可用于Windows环境中将天翼云盘挂载为本地硬盘,确实可以达到本地硬盘的使用感知,对于多终端数据副本一…

电子信息、物联网专业大学生如何提高动手能力

作为一名电子类或物联网类专业学生,仅仅掌握专业基础理论知识是不够的,还需要增加实际动手能力和实践经验。那么,动手实践能力真的那么重要吗?我们应该怎么提高动手能力呢?本文就谈谈这些问题。 所谓动手能力&#xf…

移植Modelsim仿真工程

背景 上班在公司用的PC1生成并完整的进行了仿真,打包成zip,经过微信传输并在家里的PC2上打开想要继续进行仿真,需要如何处理呢? 环境 软件路径公司PC1Quartus II Prime Pro 21.4C:\intelfpga_pro\21.4\quartus\bin64\qpro.exeMo…

python的Pandas库介绍

🎈 博主:一只程序猿子 🎈 博客主页:一只程序猿子 博客主页 🎈 个人介绍:爱好(bushi)编程! 🎈 创作不易:喜欢的话麻烦您点个👍和⭐! 🎈…

JAVA:深入探讨Map的多种遍历方式

1、简述 在现代编程中,Map(映射)是一种常见的数据结构,用于存储键-值对。在许多编程语言中,Map提供了灵活的数据组织方式,但为了充分发挥其功能,我们需要了解多种遍历方式。本文将深入探讨Map的…

网络基础——路由协议及ensp操作

目录 一、路由器及路由表 1.路由协议: 2.路由器转发原理: 3.路由表: 二、静态路由优缺点及特殊静态路由默认路由 1.静态路由的优缺点: 2.下一跳地址 3.默认路由 三、静态路由配置 四、补充备胎 平均负载 五、补充&…

Maven的安装配置流程

步骤一:下载Maven 打开Maven官方网站,进入"Download"页面。我这里有下好的,网盘链接在文末!! 在"Download"页面中找到最新版本的Maven,选择一个稳定的版本。通常,你会看到…

05 python数据容器

5.1 数据容器认识 5.2 python列表 5.2.1 列表的定义 演示数据容器之:list 语法:[元素,元素,....] #定义一个列表List List [itheima,uityu,gsdfg] List1 [itheima,6666,True] print(List) print(List1) print(type(List)) pr…

开源 Serverless 框架 Laf 性能优化实践

介绍 Laf 是一个完全开源的 Serverless 框架,Laf 的 Node.js 运行时容器 (以下简称为 Runtime) 是 Laf 的函数执行环境,依托于 Express.js 框架。采用容器进程常驻的方式,每一个应用对应于一个或多个容器 (弹性伸缩下),底层使用了…

el-table自定义表格数据

如上所示: 表格内的数据是:当前班级所在名次段的人数 / 当前班级1至n名的累计人数 5/12 也就是 5/75 需要变更为: 截至到当前名次段总人数(上次考试) / 截至到当前名次段总人数(本次考试&#xff09…