精华内容
下载资源
问答
  • 产品可用性的定义
    万次阅读 多人点赞
    2019-06-15 19:40:24

    首先,这两个属性都是质量(可维护性)的一部分。

    按照书上的定义,

    可靠性(reliability):在规格时间间隔内和规定条件下,系统或部件执行所要求功能的能力。例如:
    QA1:在客户端与服务器端通信时,如果网络故障,系统不能出现故障。
    可用性(availability):软件系统在投入使用时可操作和可访问的程度,或能实现其指定系统功能的概率。例如:
    QA2:系统的可用性要达到98%。

    实话说我一直想吐槽这个定义,说得未免太模糊了一点。尤其是可用性的定义,用术语解释术语可太秀了。后来在看分布式系统的时候,看到了一个解释:

    可用性被定义为系统的一个属性,它说明系统已准备好,马上就可以使用。换句话说,高度可用的系统在任何给定的时刻都能及时地工作。
    可靠性是指系统可以无故障地持续运行,是一个持续的状态。与可用性相反,可靠性是根据时间段而不是任何时刻来进行定义的。
    如果系统在每小时崩溃1ms,那么它的可用性就超过99.9999%,但是它还是高度不可靠。与之类似,如果一个系统从来不崩溃,但是每年要停机两星期,那么它是高度可靠的,但是可用性只有96%。

    我觉得这个解释说得很好。可靠性是一个持续性的状态,更多地强调系统自身;而可用性是一个短暂的状态,更多地强调外部的触发。就好比一个人,你找他的时候能不能找到,这是可用性;而他干活靠不靠谱,则是可靠性。一个人如果随叫随到,但是时不时偷懒,就是高可用、低可靠;而如果他经常找不到人,但干活很负责,就是低可用、高可靠。其实就是上面说的那个例子了。

    再回到书上的例子去。为什么“网络故障,系统不能出现故障”是可靠性?其实也是比较显然的。这是一个持续的过程。网络故障的时候,系统不出现故障,维持了正常运行状态,正是高可靠的表现;而且,系统不受外界影响,体现出内在的稳定性,也是可靠性的隐藏要求吧。

    从某种程度上,可用性包括了可靠性。如果不可用,根本谈不上可靠。有一个定义:

    平均故障间隔时间(MTBF,Mean Time Between Failure),是指相邻两次故障之间的平均工作>时间,是衡量一个产品的可靠性指标。
    平均修复时间(MTTR,Mean Time To Repair),是描述产品由故障状态转为工作状态时修理时间的平均值。在工程学中,MTTR是衡量产品维修性的值,在维护合约里很常见,并以之作为服务收费的准则。GB/T3187-97对可用性的定义:在要求的外部资源得到保证的前提下,产品在规定的条件下和规定的时刻或时间区间内处于可执行规定功能状态的能力。它是产品可靠性、维修性和维修保障性的综合反映。
    Availability = MTBF / (MTBF + MTTR)

    从这里也可以看出,可靠性强调的是一个持续状态。

    参考资料:

    《软件工程与计算(卷二):软件开发的技术基础》

    分布式可用性和可靠性区别

    如何理解“可靠性”和“可用性”?

    更多相关内容
  • 任何与人可以发生交互的产品都应该是可用的,就一般产品而言,可用性定义为目标用户可以轻松使用产品来实现特定目标。ISO9241/11中的定义是:一个产品可以被特定的用户在特定的场景中,有效、高效并且满意得达成...
  • 可用性 可用性是在某个考察时间,系统能够正常运行的概率或时间占有率期望值。 可靠性 可靠性一般指产品可靠性,是元件、产品、系统在一定时间内、在一定条件下无故障地执行指定功能的能力或可能性。 光看定义比较...

    含义

    可用性

    可用性是在某个考察时间,系统能够正常运行的概率或时间占有率期望值。

    可靠性

    可靠性一般指产品可靠性,是元件、产品、系统在一定时间内、在一定条件下无故障地执行指定功能的能力或可能性。
    光看定义比较抽象,下面看一个具体的例子。

    如果某个系统在每小时崩溃1ms,那么它的可用性就超过99.9999%,但是它还是高度不可靠。与之类似,如果一个系统从来不崩溃,但是每年要停机两星期,那么它是高度可靠的,但是可用性只有96%。

    可用性被定义为系统的一个属性,它说明系统已准备好,马上就可以使用。换句话说,高度可用的系统在任何给定的时刻都能及时地工作。
    可靠性是指系统可以无故障地持续运行,是一个持续的状态。与可用性相反,可靠性是根据时间段而不是任何时刻来进行定义的。

    1 WHAT - 什么是可用性?

    定义可用性,可以先定义什么是不可用。
    以网站为例,需要经历若干环节,网站的页面才能呈现在最终的用户面前;而其中的任何一个环节出现了故障,都可能会导致网站的页面不可访问,也就是出现了网站不可用的情况。
    我们可以利用百分比来对网站可用性进行度量:

    网站不可用时间=完成故障修复的时间点 - 故障发现的时间点
    网站年度可用时间=年度总时间 - 网站不可用时间
    网站年度可用性=(网站年度可用时间/年度总时间) x 100%

    99.99%可用性如何计算?

    举例:一些知名大型网站的可用性可达到99.99%(俗称4个9),我们可以算一下一年下来留给处理故障的时间有多少?
    年度总时间=365 * 24 * 60=525600分钟
    网站不可用时间=525600 * (1-99.99%)=52.56分钟
    也就是,如果网站要达到4个9的可用性,一年下来网站不可用时间最多53分钟(也就是不足1个小时)。

    可见,高可用性就是技术实力的象征,高可用性就是竞争力。

    2 WHY - 为什么会出现不可用?

    1. 硬件故障。网站多运行在普通的商用服务器,而这些服务器本身就不具备高可用性,再加之网站系统背后有数量众多服务器,那么一定时间内服务器宕机是大概率事件,直接导致部署在该服务器上的服务受影响。
    2. 软件BUG或网站更新升级发布。BUG不能消灭,只能减少;上线后的系统在运行过程中,难免会出现故障,而这些故障同样直接导致某些网站服务不可用;此外,网站更新升级发布也会引起相对较频繁的服务器宕机。
    3. 不可抗拒力。如地震、水灾、战争等。

    3 HOW - 如何做到高可用

    核心思想

    网站高可用的主要技术手段是服务与数据的冗余备份失效转移。同一服务组件部署在多台服务器上;数据存储在多台服务器上互相备份。通过上述技术手段,当任何一台服务器宕机或出现各种不可预期的问题时,就将相应的服务切换到其他可用的服务器上,不影响系统的整体可用性,也不会导致数据丢失。
    从架构角度看可用性:当前网站系统多采用经典的分层模型,从上到下为:应用层、服务层与数据层

    应用层主要实现业务逻辑处理;
    服务层提供可复用的服务;
    数据层负责数据读写;

    在部署架构上常采用应用和数据分离部署,应用会部署到不同服务器上,这些服务器被称为应用层的服务器;
    这些可复用的服务也会各自部署在不同服务器上,称为服务层的服务器;
    而各类数据库系统、文件柜等数据则部署在数据层的服务器。
    硬件故障方面引起不可用的技术解决措施:

    (1)应用服务器。可通过负载均衡设备将多个应用服务器构建为集群对外提供服务(前提是这些服务需要设计为无状态,即应用服务器不保存业务的上下文信息,而仅根据每次请求提交的数据进行业务逻辑的操作响应),当均衡设备通过心跳检测手段检测到应用服务器不可用时,则将其从集群中移除,并将请求切换到其他可用的应用服务上。

    (2)服务层服务器。这些服务器被应用层通过分布式服务框架(如Dubbo)访问,分布式服务框架可在应用层客户端程序中实现软件负载均衡,并通过服务注册中心提供服务的服务器进行心跳检测,当发现有服务器不可用时,立即通知客户端程序修改服务列表,同时移除响应的服务器。

    (3)数据服务器。需要在数据写入时进行数据同步复制,将数据写入多台服务器上,实现数据冗余备份;当数据服务器宕机时,应用程序将访问切换到有备份数据的服务器上。

    软件方面引起不可用的技术解决措施:通过软件开发过程进行质量保证。通过预发布验证、严格测试、灰度发布等手段,尽量减少上线服务的故障。

    展开全文
  • 软件测试中的可用性、可维护性、可靠性有什么区别?

    我们生活在一个用户依赖于对服务的一致访问的可靠性时代。在相互竞争的服务之间进行选择时,对用户来说,没有比可靠性更重要的特性了。但是可靠性是什么意思呢?

    为了回答这个问题,我们将根据可靠性工程中的其他度量来分解可靠性:可用性和可维护性。区分这些术语并不是语义问题。了解这些差异可以帮助您更好地将开发工作的优先级放在客户的满意度上。

    可用性

    可用性是可靠性最简单的组成部分。此度量描述服务运行的时间百分比,这也被称为服务的“正常运行时间”。可用性可以通过连续查询服务并以预期的速度和准确性确认返回的响应来监控。

    服务的可用性是用户感知可靠性的主要因素。考虑到这一点,设定一个100%正常运行时间的目标是很诱人的。但是SRE告诉我们失败是不可避免的;导致停机的事故总是发生在工程预期之外。可用性通常用“9”表示,表示正常运行时间的百分比可以达到多少位小数。一些主要的软件公司会吹嘘自己的“5个9”或者99.99%的正常运行时间,但永远不会有可确保的100%的正常运行时间。

    此外,用户是可以容忍甚至无法注意到服务的某些领域出现宕机。致力于改善超出预期的可用性的开发资源并不会增加客户的满意度,把这些资源用在可维护性上会更好。在这里插入图片描述

    可维护性

    可靠性的另一个主要组成部分是可维护性。通过描述停机时间的产生和解决方式,将可维护性因素考虑到可用性中。当发生导致停机的事件时,可维护服务可以快速修复。事件越早得到解决,服务就越快恢复可用。

    可维护性有两个主要组成部分:主动式可维护性和反应式可维护性。

    主动式可维护性包括构建易于理解和更改的代码库。随着开发的进行,会出现与现有代码不兼容的问题。如果工程师写的是面条式代码,而不是优先考虑可维护性,就容易出问题,并且很难发现和解决问题。主动维护还包括质量保证和测试等程序。

    反应式可维护性描述了服务在事故发生后被修复的能力。这受服务的事故响应过程的影响。大型事故的反应和防范是必要的,如果事故响应程序可靠,团队将迅速解决事件。适当的事故反应也有助于减少复发。高度可维护的服务允许工程师有效地汲取这些经验教训。

    可维护性反映在可用性指标中。缩短停机时间或停机频率可以提高可用性。但是,可维护性不是实现可用性的唯一手段。采取这种方法可能导致发展资源分配不当。在可维护性方面的投资可能不会立即带来更好的正常运行时间。当您重构旧代码以解决技术债务时,服务的功能将与以前相同,并具有相同的可用性。直到事件发生,您才会看到这种高可维护性的好处。可维护性应该被看作是可靠性方面的投资,而不仅仅是可用性的一个组成部分。
    可靠性
    可靠性可以定义为当用户访问服务时,服务按预期运行的可能性。这似乎与我们定义可用性的方式相同,但有关键的区别。可用性检查服务是否工作,用户是否正在访问它。如果用户在所有时间、所有功能上统一访问服务,可用性将决定可靠性。一般情况下,这不可能发生。
    以两种情形为例:

    服务A:
    用户登录页面的可用性为97%
    目录搜索的可用性为97%
    站点设置页面的可用性为97%

    服务B:
    用户登录页面具有可用性为99%
    目录搜索的可用性为98%
    网站设置页面的可用性为90%

    仅从可用性度量来看,服务A胜出。但是如果登录页面被100%的用户使用,目录搜索被90%的用户使用,而站点设置页面只有30%的用户使用,那么服务B就会被认为更可靠。可靠性需要考虑实际使用情况,将可用性指标转化为客户满意度的度量指标。在这里插入图片描述
    通过理解系统的可靠性,开发人员可以避免浪费时间来改进超出客户预期的可用性。服务级别指标将延迟和可用性等指标捆绑到更有效的度量中。然后将服务水平目标设定在顾客不满意的阈值。这种方法从客户的角度来看可靠性,因为对他们来说,服务的可靠性比它的可用性更重要。

    可维护性也可以通过这种标准来评估。响应事件所花费的时间耗尽了服务正常运行时间的错误预算……SLI和SLO可以帮助分配开发工作,以改进可维护性和最影响客户满意度的事件响应过程。

    可靠性不仅仅是度量的集合或代码库的质量。这是一个全局概念,包含了用户的观点、变化和增长的必然性以及开发代码的人员。这种整体方法是SRE的基础,是实践的集合,也是提高服务可靠性的文化课程。

    最后;

    如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以关注我一起讨论。

    给大家推荐一个软件测试技术交流群:810119819 群友福利免费领取

    【软件测试流程图总结】

    公众号【程序员阿沐】

    加油吧,测试人!路就在脚下,成功就在明天!

    未来的你肯定会感谢现在拼命的自己!

    愿你我相遇,皆有所获! 欢迎关注微信公众号:程序员阿沐
    1.免费领取一份216页软件测试工程师面试宝典文档资料。

    2.软件测试学习路线以及相对应的视频学习教程免费分享!

    展开全文
  • 可用性和可靠性

    千次阅读 2021-06-14 21:42:55
    可用性关注可用时长,可靠性关注故障频率。


    1、平均故障间隔时间(MTBF - Mean Time Between Failure)

    MTBF 是指相邻两次故障之间的平均工作时间,是衡量一个产品的可靠性指标。


    2、平均修复时间(MTTR - Mean Time To Repair)

    MTTR 是描述产品由故障状态转为工作状态时修理时间的平均值。
    在工程学,MTTR是衡量产品维修性的值,
    在维护合约里很常见,并以之作为服务收费的准则。


    3、可用性(Availability)

    GB/T3187-97 对 Availability 可用性的定义:
    在要求的外部资源得到保证的前提下,
    产品在规定的条件下和规定的时刻或时间区间内处于可执行规定功能状态的能力。
    它是产品可靠性、维修性和维修保障性的综合反映。

    Availability = MTBF / (MTBF + MTTR)

    通常大家习惯用N个9来表征系统可用性,
    比如99.9%(3-nines availability),99.999%(5-nines availability)。


    4、宕机时间(Downtime)

    Downtime 指机器出现故障的停机时间。
    使用每年的宕机时间来衡量系统可用性,更符合直觉,更容易理解。
    在这里插入图片描述


    5、 可用性 VS 可靠性

    可用性(Availability)
    是关于系统可供使用时间的描述,以丢失的时间为驱动(Be Driven By Lost Time)。

    可靠性(Reliability)
    是关于系统无失效时间间隔的描述,以发生的失效个数为驱动(Be Driven By Number of Failure)。

    两者都用百分数的形式来表示。
    在一般情况下,可用性不等于可靠性,
    只有在没有宕机和失效发生的理想状态下,两者才是一样的。


    如下图所示:

    可用性关注可用时长,可靠性关注故障频率。

    在这里插入图片描述

    展开全文
  • 一般来说,架构除了关注功能性需求外,其实更重要的是要关注非功能性需求,比如,性能,可用性,可伸缩性,可扩展性。而且一旦架构决定下来,一般难以改变,所以要求我架构师从一开始就要设计一个满足性能,可用性,...
  • Measures to mitigate threats to availability include: 减轻可用性威胁的措施包括: Off-site backups 异地备份 Disaster recovery 灾难恢复 Redundancy 冗余 Failover 故障转移 RAID 袭击 High-availability ...
  • SAP 可用性检查

    万次阅读 2019-03-19 13:55:06
    SAP可用性检查 (2018-01-03 14:00:47) 转载▼ 分类:SAP_SD 可用性检查决定了为了满足客户的请求交货期,请求供应量是否可供应发运。 可用性检查是在工厂层执行的,它产生了物料可用日期,该日期表示系统...
  • SAP 可用性检查

    千次阅读 2021-05-17 13:50:47
    可用性检查是在工厂层级确定的,它产生了物料的可用日期,该日期确定了请求物料的可供应日期, 由检查规则+检查组确定的 1、术语 1.1 检查组 检查组确定了我们要传递什么样的需求,日需求还是汇总需求,系统标准的...
  • MTTR、MTBF、MTTF、可用性、可靠性的正确理解
  • IP代理池检测代理可用性

    万次阅读 2019-05-23 19:01:44
    proxy_queue.py 定义了两个代理存储队列类:刚刚爬取到的尚未检测过可用性的代理IP队列(UncheckQueue)和已经检测过可用性的代理IP队列(CheckQueue,该队列中的代理IP也需要定时反复检测可用性)。 # -*- ...
  • 如何保证服务的高可用性 HA(High Availability)? 高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。方法论上,高可用是通过冗余+自动...
  • 物料可用性检查(Availability check)

    千次阅读 2020-01-17 10:40:27
    解决:MRP3 View有一个字段Availability check,这个字段用来控制物料的可用性检查。OPJJ(下图中的Define Scope of Check)找到对应的Checking group和Checking rule的组合。然后打开明细界面,将“Include safety ...
  • 分布式系统可用性与一致性

    千次阅读 2017-06-23 09:55:27
    可用性(Availability)和一致性(Consistency)是分布式系统的基本问题,先有著名的CAP理论定义过分布式环境下二者不可兼得的关系,又有神秘的Paxos协议号称是史上最简单的分布式系统一致性算法并获得图灵奖,再有...
  • SAP 生产订单可用性检查设置

    千次阅读 2018-06-26 17:03:38
    本文我想对我了解的生产订单可用性检查做一个总结,主要介绍订单的检查规则是如何设置,如何关联。主要回答:为何该工厂的生产订单执行该规则的可用性检查?至于检查内容暂不做测试。1.当我们在查看生产(计划)订单...
  • 第8章 软件定义的高可用性可用性是这样一种系统(或服务)设计理念:在一个给定的合约(衡量)时间段内,系统需要满足一个约定的服务级别,服务级别通常表述为系统不可用的时间小于某个阈值。高可用性系统在现实...
  • 可用性 (Availability) Another subject is availability which means we can make payment in a 7×24 manner. If there are problems for some time periods and we can not make payment this is an ...
  • 可用性系统

    千次阅读 2016-05-18 16:15:51
    所谓高可用性指的是系统如何保证比较高的服务可用率,在出现故障时如何应对,包括及时发现、故障转移、尽快从故障中恢复等等。本文主要以点评的交易系统的演进为主来描述如何做到高可用,并结合了一些自己的经验。...
  • 什么是高可用性(High Availability)?

    千次阅读 2019-08-02 04:24:47
    一、什么是高可用性? 维基百科的解释是: 高可用性(英语:High availability,缩写为 HA),IT术语,指系统无中断地执行...定义一个系统怎样才算具有高可用性往往需要根据每一个案例的具体情况来具体分析。[1] ...
  • 可用性评估方法

    千次阅读 2015-08-03 21:54:01
    在ISO 9241-11标准中,可用性定义为衡量在特定条件下使用一个产品来达到特定用户的特定目标的效率高低、有效程度和满意度。ISO 9241-11标准中定义可用性的三个层次—–有效水平、效率水平和用户在测试过程中的...
  • 得到APP简介 得到APP是由罗辑思维团队推出的...在设计师完成某个页面后,设计师和维护人员通常需要对界面进行可用性的检查和评估。在设计周期初期用户量不多的时候,常用的评估方法主要有启发式评估、可用性测试。...
  • 提高系统可用性

    千次阅读 2018-09-26 22:02:09
    计算机网络发展史 首先前解释一下什么是计算机网络,计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,...关于计算机网络的最简单定义是:一些相互...
  • 可用性和高可靠性的规划与设计

    千次阅读 2019-09-21 15:37:18
    可用性和高可靠性的规划与设计 可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。 可靠性(reliability)是软件系统在应用或系统错误...
  • 可用性定义:  可用性是指特定的用户在特定的环境下使用产品并达到特定目标的效力、效率和满意的程度。 可用性五个方面:  有效性(effective):怎样准确、完整地完成工作或达到目标  效率 (efficient):怎样...
  • 美团扫码付的前端可用性保障实践

    千次阅读 2018-08-10 17:14:32
    2017年,美团金融前端遇到了很多通用性问题,特别是在保障前端可用性的过程中,我们团队也踩了不少“坑”,在梳理完这些问题以后,我们还专门做了第31期线下沙龙给大家进行了分享。不管是在面试过程中与候选人讨论,...
  • 你的系统可靠性和可用性是几个9?

    千次阅读 2018-12-27 08:42:00
    点击上方“Java后端技术”,选择“置顶或者星标”你关注的就是我关心的!作者:侯树成微信公众号:Tomcat那些事儿(ID:tomcat0000)我们在评估一个系统的可用...
  • 微服务实战之高可用性

    千次阅读 2018-12-10 21:31:10
    可用性指你提供的服务要始终可用, 不管天灾(停电, 断网, 磁盘空间满, 服务器硬件损坏等), 人祸(软件bug, 黑客破坏, 误操作等), 甚至地震, 洪水抑或战争. 高可性性的指标就是可用时间与总时间之比 availability = ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 790,554
精华内容 316,221
热门标签
关键字:

产品可用性的定义