更多内容,添加公众号关注:

场景一:

某智能家居厂家,用户喊出“小X同学,帮我扫地”后,服务器宕机了,扫地机器人不能立即启动,于是,用户可能再连续喊几次后,无奈又习惯的按下了扫地机器人的启动按钮。

场景二:

某高层建筑有2000个房间,10个房间烟感连续发出报警,理论上出现了火灾并在逐步扩散,恰巧,服务器又宕机了,然后...

两个场景都是服务器宕机,但后果却不同,根据业务实际情况,我们必须考虑软件架构的高可用性。

有人会说,上云吧,上云比自己搭建服务器稳定多了。通常情况下是这样的,但是,不要忽略SLA这个重要的概念,云产品都是有SLA的,SLA是什么呢?SLA全称是ServiceLevel Agreement,翻译为服务水平协议,他表明了公有云提供服务的等级以及质量。比如我们说月度99.95%的SLA,意味着每个月服务出现故障的时间只能占总时间的0.05%,如果这个月是30天,那么约等于21.6分钟。

对于场景一,或许21.6分钟是可容忍的,但对于场景二,绝对是不允许的。

针对各种高可用方案,通常会提到下面这些概念(不是针对Azure的概念):

同城 容灾

同城 容灾 是在同城或相近区域内 ( ≤ 200K M )建立两个数据中心 : 一个为数据中心,负责日常生产运行 ; 另一个为灾难备份中心,负责在灾难发生后的应用系统运行。同城灾难备份的数据中心与灾难备份中心的距离比较近,通信线路质量较好,比较容易实现数据的同步 复制 ,保证高度的数据完整性和数据零丢失。同城灾难备份一般用于防范火灾、建筑物破坏、供电故障、计算机系统及人为破坏引起的灾难。

异地 容灾

异地 容灾 主备中心之间的距离较远 (> 200KM ) , 异地灾难备份不仅可以防范火灾、建筑物破坏等可能遇到的风险隐患,还能够防范战争、地震、水灾等风险。由于同城灾难备份和异地灾难备份各有所长,为达到最理想的防灾效果,数据中心应考虑采用同城和异地各建立一个灾难备份中心的方式解决。

Azure上有很多高可用的方案可供我们选择,以尽可能提高我们的业务系统能够尽可能的稳定对外提供服务,首先要做的是了解Azure上的高可用相关的概念,才能灵活应用。

什么是 Azure 区域?

Azure 在世界各地的多个数据中心运行。 这些数据中心分组到地理区域,让用户可灵活选择构建应用程序的位置。可以在规定的地理区域(例如“中国东部”、“中国北部”或“中国东部2”)中创建 Azure 资源。  为了提供冗余和可用性,每个区域都设有多个数据中心。 这样,便可灵活设计应用程序,创建距离用户最近的VM,满足任何法律、符合性或税务要求。截至2019年11月,Azure全球共计54个区域,中国大陆有4个区域。

Azure 地域Azure 区域组织为地域形式。Azure 地域保证数据驻留、主权、符合性和恢复能力的要求在地域边界内得到遵从。

区域对

每个 Azure 区域都与同一地理位置内的另一区域配对。 此方法适用于跨地域复制资源(例如VM 存储),降低因自然灾害、社会动乱、电力中断或物理网络中断而同时影响两个区域的可能性。 区域对的其他优点包括:出现范围较广的 Azure 区域中断时,每个区域对中有一个区域优先级更高,这样可以缩短应用程序的还原时间。将逐一对配对的区域进行计划内Azure 更新,尽量减少停机时间并降低应用程序中断风险。出于税务和执法管辖权方面的考虑,数据仍以配对的形式驻留在同一地域内。

Azure 中的高可用性概述

可以通过多种不同的方式创建 Azure 中的高可用性。 有两个选项是“可用性集”和“可用性区域”。 通过使用可用性集,你的VM 将受到保护,从而免受数据中心内可能发生的故障的影响。 这包括硬件故障和Azure 软件故障。 通过使用可用性区域,你的VM 将放置在物理上独立、没有共享资源的基础设施上,因此将受到保护,不受整个数据中心故障的影响。当你想要在 Azure 中部署基于 VM 的可靠解决方案时,请使用可用性集或可用性区域。

可用性集概述

可用性集是一种逻辑分组功能,在Azure 中使用它可以确保将 VM 资源部署在 Azure 数据中心后,这些资源相互隔离。 Azure 确保可用性集中部署的 VM 能够跨多个物理服务器、计算机架、存储单元和网络交换机运行。 如果出现硬件或Azure 软件故障,只有一部分 VM 会受到影响,整体应用程序仍会保持运行,可供客户使用。 如果想要构建可靠的云解决方案,可用性集是一项关键功能。假设某个基于 VM 的典型解决方案包含四个前端 Web 服务器,以及两个托管数据库的后端VM。 在 Azure 中,若想在部署 VM 之前先定义两个可用性集:一个可用性集用于“Web”层级,另一个可用性集用于“数据库”层级。 创建新的VM 时,可在 azvm create 命令中指定可用性集作为参数,Azure 会自动确保在可用性集中创建的VM 在多个物理硬件资源之间保持独立。 如果运行某个Web 服务器或数据库服务器的物理硬件有问题,可以确信Web 服务器和数据库 VM 的其他实例会保持运行状态,因为它们位于不同的硬件上。

可用性区域概述(截至2019年11月,中国区尚无可用性区域)

可用性区域是一个高可用性产品/服务,在数据中心发生故障时可以保护应用程序和数据。 可用性区域是Azure 区域中独特的物理位置。 每个区域由一个或多个数据中心组成,这些数据中心配置了独立电源、冷却和网络。 为确保能够进行复原,所有已启用的区域中必须至少有三个单独的区域。 区域中可用性区域的物理隔离可以在发生数据中心故障的情况下保护应用程序和数据。 区域冗余服务可跨可用性区域复制应用程序和数据,以防范单点故障。 借助可用性区域,Azure 提供业界最佳的 99.99% VM 正常运行时间 SLA。与可用性集类似,假设某个基于VM 的典型解决方案包含四个前端 Web 服务器,以及两个托管数据库的后端VM。 与可用性集类似,你将希望在两个单独的可用性区域中部署VM:一个可用性区域用于“Web”层,另一个可用性区域用于“数据库”层。 当你创建新的VM 并将可用性区域指定为 azvm create 命令的参数时,Azure 会自动确保你创建的 VM 隔离在完全不同的可用性区域中。 如果运行某个Web 服务器或数据库服务器 VM 的整个数据中心出现问题,你就会知道Web 服务器和数据库 VM 的其他实例仍在运行,因为它们在完全独立的数据中心中运行。

Azure 区域中的可用性区域是容错域和更新域的组合。 例如,如果在Azure 区域的三个区域中创建三个或更多VM,则 VM 将有效分布在三个容错域和三个更新域中。 Azure 平台会识别更新域上的此分布,以确保不同区域中的VM 不会同时更新。通过将计算、存储、网络和数据资源共置在一个区域并将其复制到其他区域,在应用程序体系结构中内置高可用性。 支持可用性区域的Azure 服务划分为两类:

区域性服务–将资源固定到特定区域(例如虚拟机、托管磁盘、标准IP 地址)或

区域冗余服务 – 平台自动跨区域复制(例如区域冗余存储和SQL 数据库)。

若要在 Azure 上实现全面的业务连续性,可结合使用可用性区域和Azure 区域对来构建应用程序体系结构。 可以使用Azure 区域中的可用性区域以同步方式复制应用程序和数据以实现高可用性,并以异步方式跨Azure 区域复制以实现灾难恢复保护。

容错域

容错域是共享公用电源和网络交换机的基础硬件逻辑组,类似于本地数据中心内的机架。 在可用性集内创建 VM 时,Azure 平台会将 VM 自动分布到这些容错域。 此方法可限制潜在物理硬件故障、网络中断或断电的影响。

更新域

更新域是可以同时维护或重新启动的基础硬件逻辑组。 在可用性集内创建 VM 时,Azure 平台会自动将 VM 分布到这些更新域。 Azure 平台进行定期维护时,此方法可确保至少有一个应用程序实例始终保持运行状态。 在计划内维护期间,更新域的重启顺序可能不会按序进行,但一次只重启一个更新域。

可用性集由可防止硬件故障以及允许安全应用更新的两个额外分组构成 - 容错域 (FD) 和更新域 (UD)。

了解了这些概念,下面我们会逐一介绍 Azure上的负载均衡,应用程序网关,流量管理器等产品,然后实战操作,最终看能否拔掉生产环境中的网线。

Azure 上的高可用概念的更多相关文章

  1. 快速搭建基于Azure Paas的高可用WordPress网站

    产品详情 产品介绍 WordPress是一种使用非常广泛的CMS系统.本应用是根据Azure Resource Manager模板创建的.通过该ARM模板可以快速建立web应用和MySQL数据库,部署 ...

  2. 在 Kubernetes 上运行高可用的 Kafka 集群

    转载自:https://www.qikqiak.com/post/deploy-kafka-ha-on-k8s/ Apache Kafka 是目前最流行的分布式消息发布订阅系统,虽然 Kafka 非常 ...

  3. hadoop在zookeeper上的高可用HA

    (参考文章:https://www.linuxprobe.com/hadoop-high-available.html) 一.技术背景 影响HDFS集群不可用主要包括以下两种情况:一是NameNode ...

  4. Pod在多可用区worker节点上的高可用部署

    一. 需求分析 当前kubernetes集群中的worker节点可以支持添加多可用区中的ECS,这种部署方式的目的是可以让一个应用的多个pod(至少两个)能够分布在不同的可用区,起码不能分布在同一个可 ...

  5. vultr 上实现高可用冗余浮动公网IP出口(使用BIRD+BGP协议)High Availability on Vultr with Floating IP and BGP

    官方文档: https://www.vultr.com/docs/high-availability-on-vultr-with-floating-ip-and-bgp https://www.vul ...

  6. hype-v上centos7部署高可用kubernetes集群实践

    概述 在上一篇中已经实践了 非高可用的bubernetes集群的实践 普通的k8s集群当work node 故障时是高可用的,但是master node故障时将会发生灾难,因为k8s api serv ...

  7. MHA-Atlas-MySQL高可用(上)

    MHA-Atlas-MySQL高可用(上) 链接:https://pan.baidu.com/s/17Av92KQnJ81Gc0EmxSO7gA 提取码:a8mq 复制这段内容后打开百度网盘手机App ...

  8. MHA高可用

    MHA(Master High Availability)目前在 MySQL 高可用方面是一个相对成熟的解决方案,它由日本 DeNA 公司 youshimaton(现就职于 Facebook 公司)开 ...

  9. Redis(二)冰叔带你了解Redis-哨兵模式和高可用集群解析

    前言    Redis 的 主从复制 模式下,一旦 主节点 由于故障不能提供服务,需要手动将 从节点 晋升为 主节点,同时还要通知 客户端 更新 主节点地址,这种故障处理方式从一定程度上是无法接受的. ...

随机推荐

  1. flask-简介

    什么是flask? Flask简介: Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务,在介绍Flask之前首先来聊下它和Django的联系 ...

  2. Codeforces Round #452 (Div. 2) A B C

    Codeforces Round #452 (Div. 2) A Splitting in Teams 题目链接: http://codeforces.com/contest/899/problem/ ...

  3. 鲲鹏云实验-Python+Jupyter机器学习基础环境

    [摘要] 介绍Ubuntu 18.04环境下Python3常用科学计算和数据分析包(numpy, scipy, matplotlib, sklearn, pandas)的安装,以及Jupyter No ...

  4. DateTime格式转换部分介绍

    DateTime与字符串转换: DateTime()与转换为字符串主要依靠DateTime().ToString(string format) 函数,以我的理解,参数format大体分为单个字母和多个 ...

  5. luogu P3152 正整数序列

    题目描述 kkk制造了一个序列,这个序列里的数全是由正整数构成的.你别认为她的数列很神奇--其实就是1, 2, -, n而已.当然,n是给定的.kkk的同学lzn认为0是一个好数字(看上去很饱满有木有 ...

  6. Python中的input你真会吗?

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:一米阳光里的晴天娃娃   python中的input()方法是在控制台可 ...

  7. tensorflow add_to_collection用法

    训练代码: # coding: utf-8 from __future__ import print_function from __future__ import division import t ...

  8. 经典常用SQL语句大全

    创建表 --删除表 --DROP TABLE [dbo].[Test] --创建表 CREATE TABLE [dbo].[Test] ( ,) PRIMARY KEY, ----自增主键 ) NUL ...

  9. css分类和选择器

    css的分类:内联,内嵌,外部 内联:写在标签里,style=样式,控制精准代码实用性差. 内嵌:嵌在<head></head>里 <style type="t ...

  10. Vue中使用iconfont

    学习博客:https://www.imooc.com/article/33597?block_id=tuijian_wz