架构师速成8.3-可用性

简介: 作为一个软件系统可用性是第一位的,如果一个系统不可用,你其他的地方做的再怎么好,然并卵。 一般什么情况下软件会不可用: 我方发生故障,导致系统不可用,当然会出现单机的不可用及n多机器群的全部不可用。 程序故障 功能错误、程序退出系统故障 CPU超负荷、内存超负荷、网络超负荷物理故障  机器死机 断电 断网不可恢复故障 地震、海啸等等 客户方也会发生相同故障,

作为一个软件系统可用性是第一位的,如果一个系统不可用,你其他的地方做的再怎么好,然并卵。

一般什么情况下软件会不可用:

我方发生故障,导致系统不可用,当然会出现单机的不可用及n多机器群的全部不可用。

  1. 程序故障 功能错误、程序退出
  2. 系统故障 CPU超负荷、内存超负荷、网络超负荷
  3. 物理故障  机器死机 断电 断网
  4. 不可恢复故障 地震、海啸等等

客户方也会发生相同故障,导致系统不可用,当然会出现个别用户的不可用及区域性用户均不可用。

对于我方发生的问题,我们必须通过架构的方式进行解决,对于客户方发生的问题,我们尽量找方法解决,先解决区域性问题,再解决个别用户问题。解决方案必须要考虑到成本及战略来进行取舍,比如创业初期,根本没有大量资金,要解决不可恢复故障基本不太可能。

我们先试图从架构的方式来解决我方发生的故障,这种解决方案类似于设计模式,故称之为架构模式。

针对单机的不可用,有一个专业术语叫做单点故障,最好的方式就是部署多机器,通过多机器负载均衡,来规避单点故障。

  1. 分布式
  2. 负载均衡

针对多机的不可用,我们需要分类看如何解决:

  1. 程序故障 功能错误、程序退出,这种错误有同学说,可以加单元测试、功能测试,让测试来发现问题。是的,但是那是开发流程,我们先不讨论那个,我们从架构的角度讨论,主要的解决方案如下:
    • 分批自动化发布
    • 灰度发布
    • 异常监控
  2. 系统故障 CPU超负荷、内存超负荷、网络超负荷
    • 流量控制
    • 功能降级
    • 动态扩容
    • 异常监控
  3. 物理故障  机器死机 断电 断网
    • 异地多活
    • 异地热备or冷备
    • 异地数据同步
  4. 不可恢复故障 地震、海啸等等
    • 同上

后面我会针对每个专题跟大家仔细讲解。

目录
相关文章
|
缓存 监控 网络协议
架构师之路三-系统可用性
架构师之路三-系统可用性
883 0
|
设计模式 存储 监控
【可靠性架构】可靠性架构第2部分:云的弹性和可用性设计模式
本故事旨在回顾与云环境中的弹性和可用性相关的一些流行设计模式。 本故事的参考来自以下链接,所有图片均由各自的内容所有者提供。
|
消息中间件 存储 运维
支付系统高可用架构设计实战,可用性高达99.999!
一、背景 对于互联网应用和企业大型应用而言,多数都尽可能地要求做到7*24小时不间断运行,而要做到完全不间断运行可以说“难于上青天”。为此,对应用可用性程度的衡量标准一般有3个9到5个9。
271 0
支付系统高可用架构设计实战,可用性高达99.999!
|
数据库 应用服务中间件 nginx
单点系统架构的可用性与性能优化
明明架构要求高可用,为何系统中还会存在单点?
908 0
|
微服务 容器
如何提高微服务架构的可用性
本文来自中生代技术群的分享。本文作者陈爱珍具有多年企业级系统的应用运维及分布式系统实战经验。现专注于容器、微服务及devops落地的研究与实践。本文将为大家分享如何提高微服务架构的可用性,精彩不容错过。
6924 0
|
运维 监控 架构师
架构师速成-架构目标之可用性
服务器等,从而共同完成工作任务。各种负载均衡的软硬件有很多,我们可以单独讲解一下。 配置中心,原来单一节点的配置,被类似zookeeper的多节点配置中心取代。 流量控制,流量控制是保证大流量下系统可用性的重要手段,当系统流量不足以支撑所有流量时,只保留合理的流量处理。其他流量直接丢弃,否则系统会被压垮,造成雪崩。 功能降级,另外大流量情况下,有些无关紧要的功能可以暂时降级,后期通过数据
1743 0
|
存储 架构师 分布式计算
架构师速成8.3-可用性之分布式
分布式算是软件界发展的一个里程碑,它开辟一个新的软件时代,其他的溢美之词我就不再乱说了。 分布式按照我的观点,应该分为有状态和无状态2种: 有状态 分布式数据库 分布式存储 无状态 分布式计算 分布式web系统 当然分布式尽量做成无状态的分布式,但是存储最终因为最终存储的是有状态的数据,所以不得不变的有状态。当然web系统也可以是有状态的,但是最好做成无
1267 0
|
SQL 数据库
设计一种100%可用性服务的架构--适用于任何系统(B/S,C/S)[中英文版本]
设计一种100%可用性服务的架构--适用于任何系统(B/S,C/S)[中英文版本] -- How to design an architecture which have 100 percent availability service?   版权所有,转载请注明出处http://blog.
961 0
|
12天前
|
缓存 监控 API
探索微服务架构中的API网关模式
【10月更文挑战第5天】随着微服务架构的兴起,企业纷纷采用这一模式构建复杂应用。在这种架构下,应用被拆分成若干小型、独立的服务,每个服务围绕特定业务功能构建并通过HTTP协议协作。随着服务数量增加,统一管理这些服务间的交互变得至关重要。API网关作为微服务架构的关键组件,承担起路由请求、聚合数据、处理认证与授权等功能。本文通过一个在线零售平台的具体案例,探讨API网关的优势及其实现细节,展示其在简化客户端集成、提升安全性和性能方面的关键作用。
45 2
|
16天前
|
存储 缓存 监控
探索微服务架构中的API网关模式
【10月更文挑战第1天】探索微服务架构中的API网关模式
48 2