漫话:如何给女朋友解释什么是系统可用性? | 技术头条

戳蓝字“CSDN云计算”关注我们哦!


640?wx_fmt=jpeg

技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!


转自:漫话编程


640?wx_fmt=jpeg

在一个阳光明媚的周二下午,我正在公司里面看着即将发布的Java 12的新特性,这时候女朋友打来电话。

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

晚上下班后,女朋友回到家里面和我说,发现淘宝无法访问的十几分钟后又可以了。

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg


系统可用性


系统的可用性,英文名字为System Usability,即系统服务不中断运行时间占实际运行时间的比例。所以,可用性其实是一个百分比,如99.9%。

我们通常会听说一个词:高可用,其实指的就是高可用性。高可用指的就是系统服务不中断运行时间占实际运行时间的占比更大。

要了解可用性,躲不开的三个体现系统可用性的重要指标:MTTR、MTTF、MTBF

MTTF 即 Mean Time To Failure,中文为:平均无故障时间。指系统无故障运行的平均时间,取所有从系统开始正常运行到发生故障之间的时间段的平均值。

MTTR 即 Mean Time To Repair,中文为:平均修复时间,指系统从发生故障到维修结束之间的时间段的平均值。

MTBF 即 Mean Time Between Failure,中文为:平均失效间隔,指系统两次故障发生时间之间的时间段的平均值。

640?wx_fmt=jpeg

上图,就是一张可以提现三者之间关系的图。可以看出:

MTBF = MTTF + MTTR

按照以上概念,那么系统的可用性指的其实就是: MTTF / MTBR * 100% 即 MTTF / ( MTTF + MTTR ) * 100%

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

在实际的情况中,很多系统都是由若干个子系统组成的,那么整个系统的可用性到底该如何计算呢?我们接着来了解下系统结构。

对于串联系统:

640?wx_fmt=jpeg

对于并联系统:

640?wx_fmt=jpeg


对于组合系统:

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg


可用性的衡量


衡量系统的高可用性,一般通过SLA,全称Service Level Agrement,也就是有几个9的高可用性。我们经常可以看到很多公司会宣称自己的系统可以达到99.99%、99.999%等。

工业界通常通过统计故障发生到恢复的时间的方法来测量SLA。一般以年度为单位,统计一年内的系统不可用总时长。具体对应关系如下表:

640?wx_fmt=jpeg


墨菲定律说 “会出错的事总会出错”,可用性做到 100 是可望而不可及的。

对于 SLA 指标来说,9 的数字越多可用性越高,宕机时间越少,系统就可以在给定的时刻内高比例地正常工作。然而对系统的挑战就越大,投入的成本也会越高。 比如 5 个 9 要求系统每年只宕机 5 分钟左右,而 4 个 9 要求每年宕机时间不超过一个小时。这就使得系统需要在设计、基础设施、数据备份等不同层面采取多种方式,甚至增加基础设施投资来保证可用性。

“当你的设备处理人命关天的事情,或业务中断一分钟就会损失百万美刀,那么你可以考虑 99.99% 的可靠性。” Robertson(Linux 高可用项目开发者)

不同系统的可用性要求也是不同的,比如:淘宝、京东等这些电商系统用户量很多,不同区不同时刻都有大量的用户在使用系统,这必然对系统的可用性要求很高。

据以往这些系统的故障统计和不准确地测试数据推测,它们目前的可用性是在 3 个 9 到 4 个 9 左右。相对而言,企业类的工作软件因为通常只在工作时间被使用,或只在某些特定的地区使用,或只给某部分人某一特定时间使用,可用性的需求就会低一些。

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg


可用性的保障


影响可用性的因素有很多,包括系统故障、基础设施故障、数据故障、安全攻击、系统压力等等。

可用性的保障涉及到很多层面,其中包括但不限于了:

  • 软件的设计、编码、测试、上线和软件配置管理的水平

  • 工程师的人员技能水平

  • 运维的管理和技术水平

  • 数据中心的运营管理水平

  • 依赖于第三方服务的管理水平

  • 对待技术的态度

  • 一个公司的工程文化

  • 领导者对工程的尊重

下面的表格里,列出了高可用常见的问题和应对措施。

640?wx_fmt=jpeg

保障系统的高可用,并不是一个简单的事情,上表中列举的也只是其中一部分方法论,真正的保证高可用,还是需要大量实践的!

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

参考资料:

https://blog.csdn.net/hexieshangwang/article/details/49126159

https://dev.to/fangdajiang/-abilities-8e1

https://www.oracle.com/technetwork/cn/community/developer-day/7-critical-busi-sys-solution-360101-zhs.pdf

https://coolshell.cn/articles/17459.html

https://blog.csdn.net/hustspy1990/article/details/78008324




640?wx_fmt=png


福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg


推荐阅读:

  • 趣挨踢 | 用大数据扒一扒蔡徐坤的真假流量粉

  • 姚期智提出的"百万富翁"难题被破解? 多方安全计算MPC到底是个什么鬼?

  • 全民 AI !教育部宣布 35 所高校新增 AI 本科专业

  • 深度 | 人工智能究竟能否实现?

  • 程序媛报告:调查了 12,000 名女性开发者发现,女性比男性更懂 Java!

  • 程序员怒了!你敢削减专利奖金,我敢拒绝提交代码!


640?wx_fmt=png喜欢就点击“在看”吧

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

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

相关文章

基于websocket的简单通信

首次接触websocket通信协议,不足之处希望指出一起进步。 简述 websocket是基于tcp协议的一种网络通信协议,分为客户端和服务端,可以实现客户端与服务端的双向通信。 与tcp的不同之处是: 1.客户端与服务端只需要一次握手协议&…

OpenGL ES 名词解释(一)

目录 一.前言二.OpenGL ES 上下文三.OpenGL ES 状态机四.缓存五.渲染六.纹理七.光栅化 Rasterization八.片元着色器九.顶点着色器十.着⾊语言 GLSL十一.着色器使用流程十二.着色器的渲染流程十三.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenG…

大龄程序员失业后,看他们是如何破局突围的? | 技术头条

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!作者:逆流的鱼yuiop转自:何俊林王小波在《黄金时代》里写道&am…

分布式架构系列: 负载均衡技术详解 | 技术头条

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!作者:ITFLY8转自:架构师技术联盟面对大量用户访问、高并发请求…

第七篇:Spring Boot整合Thymeleaf_入门试炼03

基本语法实战案例01 在ThymeleafController中添加此方法 RequestMapping("/show5")public String showInfo5(Model model) {model.addAttribute("msg", "Thymeleaf 第一个案例");model.addAttribute("key", new Date());return &quo…

Qt下自适应分辨率

qt下自适应分辨率应该有两种方法:通过栅格布局;通过缩放比。 本人采用的是缩放比来适应不同的分辨率。首先定义一个类实现屏幕分辨率和长宽缩放比的获取,由于该类可能被多个ui界面使用,所以定义为一个单例模式。代码如下&#xff…

OpenGL ES EGL 简介

目录 一.EGL 简介二.EGL 跨平台之 ANGLE 1.ANGLE 支持跨平台2.ANGLE 支持渲染器3.ANGLE 下载地址 三.EGL 坐标系四.EGL 绘图步骤五.猜你喜欢 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录 >> OpenGL ES 基础 零基础 OpenGL ES 学习路线推荐 : OpenGL ES 学习目录…

第八篇:Spring Boot整合Thymeleaf_入门试炼04

继承parent父工程&#xff0c;新建一个子项目&#xff0c;名称为spring-boot-chapter-8 1、引入 thymeleaf 模板依赖 <!-- 引入 thymeleaf 模板依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-star…

华为发布基于第二代英特尔®至强®可扩展处理器家族的新一代服务器

2019年4月4日&#xff0c;在主题为“智能&#xff0c;计算进化”的发布会上&#xff0c;华为正式发布了基于第二代英特尔 至强 可扩展处理器以及支持英特尔傲腾 ™ 数据中心级持久内存的新一代FusionServerPro智能服务器&#xff0c;包括2路、4路机架式服务器&#xff0c;高密X…

java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä'

java.sql.SQLException: The server time zone value ‘’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you w…

第九篇:Spring Boot整合Spring Data JPA_入门试炼01

Spring Data JPA:介绍&#xff1a; Spring Data就是spring提供操作数据库的框架&#xff0c;而Spring Data JPA只是Spring Data框架下的一个基于JPA标准操作数据库的模块。 Spring Data JPA&#xff1a;基于JPA的标准对数据进行操作。简化持久层的代码&#xff0c;只需要写接口…

华为智能计算发布FusionServer Pro智能服务器

【中国&#xff0c;北京&#xff0c;2019年4月3日】华为智能计算业务部在北京召开了主题为“智能&#xff0c;计算进化”的发布会&#xff0c;正式发布FusionServer Pro智能服务器。将从“智能加速、智能管理、智能数据中心”三个层次助力数据中心智能化升级。 世界正从数字化…

分布式精华问答:分布式环境下如何保持数据一致性的?| 技术头条

分布式开发的时代实际上早已悄悄地成为了时代的主流&#xff0c;今天&#xff0c;我们就来看看关于分布式的精华问答吧&#xff01;1Q&#xff1a;分布式系统中主要是用到了服务化&#xff0c;消息中间件&#xff0c;数据库拆分&#xff0c;便于横向扩展和维护&#xff0c;但分…

第九篇:Spring Boot整合Spring Data JPA_入门试炼03

CrudRepository接口的使用 CrudRepository接口&#xff0c;主要完成一些增删改查的操作。 注意&#xff1a;CrudRepository接口继承Repository接口 1、持久层接口&#xff1a; package com.gblfy.repository;import com.gblfy.pojo.Users; import org.springframework.data.r…

第九篇:Spring Boot整合Spring Data JPA_入门试炼04

六、PagingAndSortingRepository接口 前言&#xff1a;该接口提供了分页与排序的操作&#xff0c;该接口继承了CrudRepository 1、持久层接口&#xff1a; public interface UserRepositoryPagingAndSorting extends PagingAndSortingRepository<Users,Integer> { }测试…

成立一周?谷歌人工智能道德委员会解散了?近日,金山云和小米刚签订了不超过9000万的硬件产品供应协议,闹哪样? | 极客头条...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 亚马逊推Alexa无线耳机&…

2019年技术盘点微服务篇(二):青云直上云霄 | 程序员硬核评测

戳蓝字“CSDN云计算”关注我们哦&#xff01;程序员硬核评测&#xff1a;客观、高效、不说软话。无论是技术质量、性能水平&#xff0c;还是工具筛选&#xff0c;一测便知&#xff01;作者&#xff1a;孙浩峰过去几年来&#xff0c;“微服务架构”方兴未艾&#xff0c;尽管这种…

第九篇:Spring Boot整合Spring Data JPA_入门试炼06

八、JpaSpecificationExecutor接口 前言&#xff1a;该接口主要提供了多条件查询的支持&#xff0c;并且可以在查询中添加分页和排序。 注意&#xff1a;JpaSpecificationExecutor接口是独立存在的。完全独立。 1、持久层接口&#xff1a; public interface UsersRepositoryS…

第十篇:Spring Boot整合mybatis+逆向工程(Mysql+Oracle) 入门试炼01

1、添加pom依赖 <dependencies><!--springboot web 启动器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--thymeleaf 启动器--><d…

Docker简介与简单使用 | 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;作者&#xff1a;常仕禄转自&#xff1a;Docker前一段花了一段时间研究Log4j2的源码&a…