软件质量之可用性

阅读《大型网站技术架构:核心原理与案例分析》笔记:

可用性定义

可用性与系统故障及其相关后果有关。当系统不再提供其规范中所说明的服务时,就出现了系统故障。

一般将系统可用性定义为:

a = 平均正常工作时间 / (平均正常工作时间+平均修复时间)

从这个公式中我们得到了像99.9%的可用性、0.1%的故障率这样的概念。

在计算可用性时,通常不考虑预定的停机时间(即停止服务),因为根据定义是”不需要“系统的。这就导致会出现这种情况:系统停止运行,用户等待系统提供服务,但因为停机时间是预定的,因此不计入故障时间,也就不会影响可用性的数值。

提高可用性:

一、故障检测:检测整个系统是否有故障,如果检测到了故障则及时通知厂商的运维人员。

二、故障恢复:在系统出错后,系统能够及时地自动修正错误,给出正确的结果

三、故障避免:提前预想可能存在的问题,并避免其发生

 

 

可用性的应用:

通过负载均衡进行无状态服务的失效转移

应用服务器集群的Session管理

  1.Session复制

  2.Session绑定

  3.利用Cookie记录Session

  4.Session服务器

可用性的保障:

可用性的保障

 

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

 

可用性的保障涉及到很多层面,其中包括:

 

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

  • 工程师的人员技能水平

  • 运维的管理和技术水平

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

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

  • 对待技术的态度

  • 一个公司的工程文化

  • 领导者对工程的尊重

 

posted @ 2023-03-02 18:55  一个小弱鸡  阅读(177)  评论(0编辑  收藏  举报