什么是可用性

系统的可用性用如下公式表示:

其中:

  • MTBF:即平均无故障工作时间,英文全称是“Mean Time Between Failure”。是衡量一个产品(尤其是电器产品)的可靠性指标。单位为毫秒、秒钟、分钟、小时等
  • MTTR:平均修复时间(Mean time to repair,MTTR),是描述产品由故障状态转为工作状态时修理时间的平均值。产品的特性决定了平均值的长短。单位为毫秒、秒钟、分钟、小时等

互联网和软件行业写入SLA中的可用性就是在特定周期内的可用性,一般用几个9表示。这个周期一般跟计费周期相关,譬如包月资源周期定为一个月,下表以年为周期:

可用性 年不可用时间
90%
99%
99.9%
99.99%
99.999%
99.9999%

那是不是Availability越高系统就越好呢?答案是:不一定,看下面两个

  • 有一个系统,MTBF=2h,MTTR=5s,即可以稳定运行2小时,然后挂掉,5秒钟之后又恢复了,通过公式计算Availability=0.9999768,约等于5个9
  • 另一个系统,MTBF=30day,MTTR=1h,即可以稳定运行30天,然后挂掉,1小时之后恢复,通过公式计算Availability=0.9986130,约等于4个9

能说这两个系统都很好吗?答案是:不能

能说第一个系统好于第二个系统吗?答案还是:不能

因为:系统的可靠性和可用性同等重要,只谈其一,没有意义

如何提升可用性

从公式可以看出,提升可用性有两个方向,分别是:

  1. 提升MTBF,即提升系统可靠性
  2. 降低MTTR,即减小故障恢复时间

提升可靠性

提升系统可靠性,有两个大方向:

  1. 提升系统质量,让系统能够长时间稳定运行,这是最容易想到却最不容易做到的
  2. 并联或者冗余,让系统对外提供长时间稳定运行的能力,但内部允许故障,只要保证同一时间至少一个实例正常运行即可。受益于摩尔定律,计算机系统需要的硬件设备越来越便宜,开发和维护成本占比越来越高,并联或者冗余的方案成为提升可靠性的主流

降低故障恢复时间

降低故障恢复时间,分阶段有多重手段来实现,大致如下:

  1. 原始阶段。用户使用系统功能时发现不可用,经投诉反馈渠道知会到相关人员,由运维人员恢复故障,这个阶段的主要特点是:被动发现,用户体验极差
  2. 手工阶段。专人定时巡检,发现故障后及时知会运维人员修复,这个阶段的主要特点是:主动发现、发现不及时、修复不及时
  3. 自动发现。专门的系统监控所有组件,一旦发现故障,告警知会运维人员修复,这个阶段的主要特点是:主动发现、发现及时、修复不及时
  4. 智能运维。一套智能系统监控所有组件,发现故障后自动调整系统,例如隔离故障实例启动新实例进行替换、自动扩缩容适应负载变化等,这个阶段的主要特点是:智能运维、无人值守

我始终相信:随着技术的不断发展,脏活、累活终究都会变成机器的活儿

参考链接

  • MTBF
  • MTTR

谈一谈软件系统的可用性相关推荐

  1. 谈一谈网络编程学习经验(陈硕)

    作者:陈硕  原文地址:http://blog.csdn.net/solstice/article/details/6527585 本文谈一谈我在学习网络编程方面的一些个人经验."网络编程& ...

  2. 谈一谈网络编程学习经验

    转自  陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-06 PDF 版下载:https://github.com/downloads/ch ...

  3. 谈一谈网络编程学习经验(06-08更新)

    谈一谈网络编程学习经验 陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-08 PDF 版下载:https://github.com/down ...

  4. 谈一谈网络编程的经验

    谈一谈网络编程学习经验 陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-06 本文谈一谈我在学习网络编程方面的一些个人经验."网络 ...

  5. 谈一谈网络编程学习经验——陈硕

    陈硕 giantchen@gmail.com blog.csdn.net/Solstice 2011-06-06 PDF 版下载:https://github.com/downloads/chensh ...

  6. 谈一谈浏览器解析CSS选择器的过程【前端每日一题-6】

    谈一谈浏览器解析CSS选择器的过程? 这是一道发散题,可以根据自己的理解自行解答. 在开始前,我们必须了解一个真相:为什么排版引擎解析 CSS 选择器时一定要从右往左解析? 简单的来说:浏览器从右到左 ...

  7. 有一群200w年薪的朋友是什么感觉?谈一谈入学中国科学院大学的几点感受吧

    我叫阿广,偶尔正经,偶尔逗比,97年生人,在求学期间当过鸡头鸡尾,当过凤尾没当过凤头.大家如果想深入了解我,可以查看本公众号的原创文章. 技术人光有技术走不长久,所以今天不更新技术文章了,也给大家谈一 ...

  8. 【建站系列教程】5、谈一谈网站的静态化

    [建站系列教程]5.谈一谈网站的静态化[进阶] 动态页面?静态页面?伪静态页面? 三个页面有何优缺点? 为什么要让网页静态化 如何网页伪静态化? 写在前面:大家好,我是热爱编程的小泽. [建站系列教程 ...

  9. 谈一谈周公所理解的面试

    因为公司最近招聘的力度很大,所以最近公司的面试很多,加之很多同事项目紧,所以让我参加了一些技术面试.不论是作为面试官还是应聘者,参加工作以来我参与的面试的次数我自己也记不清了,所以在此想从面试官和应聘 ...

  10. 我从阿里面试回来,想和Java程序猿谈一谈

    最近小编看了一篇关于面试的文章,题目是"我从阿里面试回来,想和Java程序员谈一谈",内容不是讲面试前刷题,而是更加聚焦在面试前如何准备,以及工作当中如何学习.感觉总结的很不错,今 ...

最新文章

  1. opencv reduce函数
  2. JavaScript夯实基础系列(二):闭包
  3. 392. 判断子序列 golang 关于布尔类型返回值判断的思考
  4. 局域网Ubuntu与WinXP实现文件共享
  5. go kegg_对miRNA进行go和kegg等功能数据库数据库注释
  6. CodeForces 785E Anton and Permutation 分块
  7. U盘加载硬盘控制卡驱动安装Windows 2003 指南
  8. “图片”--上传(文件上传一致,单文件)
  9. 每日算法系列【LeetCode 121】买卖股票的最佳时机
  10. ToolTip特效 JavaScript 盗取厦门人才网的特效
  11. [洛谷P5431]【模板】乘法逆元2
  12. Linux链表list_head/hlist_head/hlist_nulls_head的并发性
  13. 重新审视SqlDataReader的使用
  14. 焕然一新的 Vue3 中文文档来了!
  15. 创建简单vue项目 / Webpack创建vue项目
  16. [深度学习]动手学深度学习笔记-6
  17. pdf解密方法,pdf权限限制如何解除?
  18. 聊聊GIS中那些坐标系(转)
  19. 树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)
  20. ini文件写入时遇到的问题

热门文章

  1. 最短路:dijkstra算法
  2. 2016/11/23【转载3】USB OTG 引脚定义
  3. 电容或电感的电压_用动画来解释电感和电容元件上电压电流超前滞后的关系
  4. 【Python爬虫】懂车帝_车型库页面
  5. 进销存管理系统——商品管理
  6. 实战Java企业商品进销存管理系统
  7. android+浮层布局,如何使用Android实现单页面浮层可拖动view
  8. MATLAB识别实验,基于MATLAB的人脸识别系统实验报告.pdf
  9. SPSS实现神经网络(多层感知器)
  10. 万能 解决ubuntu网易云音乐不能播放的各种问题