首页 > 其他分享 >阅读-软件架构可用性

阅读-软件架构可用性

时间:2023-03-02 19:46:00浏览次数:34  
标签:可用 网站 可用性 故障 软件架构 阅读 服务器 数据

阅读《大型网站技术架构核心原理与案例分析》--李智慧

软件架构可用性

陈振辉

摘要:网站可用性是大型网站核心架构设计之一,好的架构应该具有好的方法,行业中对于可用性也有评定方法,提高网站可用性的方法有很多,但目前网站仍然无法保证长期正常运行,提高可用性就是通过架构设计方法使网站的不可用的时间尽量缩短。

Abstract: Website usability is one of the core architecture designs of large websites. A good architecture should have good methods. There are also evaluation methods for usability in the industry. There are many ways to improve website usability. However, at present, websites still cannot guarantee long-term normal operation. Improving usability is to minimize the time of website unavailability through architecture design methods.

关键词:架构,设计,软件,可用性

(一)关于可用性

大型网站核心架构因素包括:性能,可用性,扩展性,伸缩性,安全性。可用性是衡量一个系统架构设计是否满足高可用的目标,就是假设系统中任何一台或堕胎服务器宕机时,以及出现各种不可预期的问题时,系统整体是否依然可用。
对于应用服务器而言, 多台应用服务器通过负载均衡设备组成一个集群共同对外提供服务,任何一台服务器宕机, 只需把请求切换到其他服务器就可实现应用的高可用,但是一个前提条件是应用服务器上不能保存请求的会话信息, 否则服务器宕机, 会话丢失, 即使将用户请求转发到其他服务器上也无法完成业务处理。

对于存储服务器, 由于其上存储着数据, 需要对数据进行实时备份,当服务器宕机时需要将数据访问转移到可用的服务器上, 并进行数据恢复以保证继续有服务器宕机的时候依然可用。

除了运行环境,网站的高可用还需要软件开发过程的质量保证。通过预发布验证、自动化测试、自动化发布、灰度发布等手段,减少将故障引入线上的可能,避免故障范围扩大。


(二)可用性的度量与考核
1)可用性度量
网站不可用也被称作网站故障, 业界通常用多少个 9 来衡量网站的可用性, 如QQ 的可用性是4 个9,即 QQ 服务 99.99%可用,这意味着 QQ 服务要保证其在所有运行时间中只有 0.01%的时间不可用, 也就是一年中大约最多 53 分钟不可用
网站不可用时间 ( 故障时间) = 故障修复时间点-故障发现 ( 报告 )
时间点网站年度可用性指标 = (1-网站不可用时间/年度总时间 ) x100%
2)可用性考核
在年初或者考核季度的开始,会根据网站产品的可用性指标计算总的故障分,然后根据团队和个人职责角色分摊故障分,这个可用性指标产生的故障分是管理预期。在实际发生故障的时候,根据故障分类和责任划分将故障产生的故障分分配给责任者承担。等年末或者考核季度末的时候,个人及团队实际承担的故障分如果超过了年初分摊的预期故障分,绩效就会收到影响

(三)可用性行业现状

对于大型网站而言,特别是知名网站,对于大型网站而言, 特别是知名网站, 网站宕掉, 服务不可用是一个重大的事故轻则影响网站声誉, 重则可能会摊上官司. 对于电子商务类网站, 网站不可用还意味着损失金钱和用户. 因此几乎所有网站都承诺 7*24 可用, 但事实上任何网站都不可能达到完全的 7x24 可用, 总会有一些故障时间,扣除这些故障时间, 就是网站的总可用时间,这个时间可以换算成网站的可用性指标,以此衡量网站的可用性, 一些知名大型网站可以做到 4 个 9 以上的可用性,也就是可用性超过 99.99%.。

因为网站使用的服务器硬件通常是普通的商用服务器, 这些服务器的设计目标本身并不保证高可用, 也就是说, 很有可能会出现服务器硬件故障, 也就是俗称的服务器宕机。大型网站通常都会有上万台服务器, 每天都必定会有一些服务器宕机, 因此网站高可用架构设计的前提是必然会出现服务器宕机, 而高可用设计的目标就是当服务器宕机的时候, 服务或者应用依然可用.

网站高可用的主要手段是冗余, 应用部署在多台服务器上同时提供访问, 数据存储在多台服务器上互相备份, 任何一台服务器宕机都不会影响应用的整体可用, 也不会导致数据丢失.

(四)提高可用性的方法
1)高可用的网络架构
硬件故障时常态,网站高可用架构的设计的主要目的就是保证服务器硬件故障时服务依然可用、数据依然保存并能够保存并访问。
常用的架构就是分层架构,典型的分层模型是三层,即应用层、服务层、数据层;各层之间具有相对独立性,应用层主要负责具体业务逻辑处理;服务层负责提供可复用的服务;数据层负责数据的存储和访问。中小型网站在具体部署时,通常将应用层和服务层部署在一起,而数据层则另外部署。
在负责的大型万丈架构中,划分的粒度会更小、更详细,结构更复杂,服务器规模更加庞大,但通常还是能够把这些服务划分到这三层中。
大型网站的分层架构及物理服务器的分布式部署使得位于不同层次的服务器具有不同的可用性特点。关闭服务或者服务器宕机时产生的影响也不相同,高可用的解决方案也差异甚大。
2)高可用的与应用
应用层主要处理网站应用的业务逻辑,因从有时也叫业务逻辑层,应用的一个显著特点就是应用的无状态性。
应用层提高可用性的方法包括
1.通过负载均衡进行无状态服务的失效转移
2.应用服务器集群的Session管理,其中又包括Session复制、Session绑定、利用Cookie记录Session和Session服务器
3)高可用的服务
可复用的服务模块为业务产品提供基础公共服务,大型网站中这些服务通常都独立分布式部署,被具体应用远程调用。可复用的服务和应用一样,也是无状态的服务,因此可以使用类似负载均衡的失效转移策略实现高可用的服务。
初次之外,具体实践中,还有以下几点高可用的服务策略
1.分级管理
2.超时设置
3.异步调用
4.服务降级
5.幂等性设计
4)高可用的数据
对许多网站而言,数据是其最宝贵的物质资产,硬件可以购买,软件可以重写,但多年运营积淀下来的各种数据,代表着历史,已经成为过往,不能再重来,一旦失去,对网站的打击可以说是毁灭的,因此可以说,保护网站的数据就是保护企业的命脉。
不同于高可用的应用和服务, 由于数据存储服务器上保存的数据不同, 当某台服务器右机的时候, 数据访问请求不能任意切換到集群中其他的机器上。
保证数据存储高可用的手段主要是数据备份和失效转移机制, 数据备份是保证数据有多个副本, 在意副本的失效都不会导致数据的永久丢失,从而实现数据完全的持久化。而失效转移机制则保证当一个数据副本不可访问时, 可以快速切换访间数据的其他副本保证系统可用。
根据CAP原理,高可用数据有以下几个含义:数据持久性,数据可访问性,数据一致性(数据强一致,数据用户一致,数据最终一致)
可采用数据备份,失效转移等方法保证数据高可用性。
(五)总结
对公司而言, 可用性关系网站的生死存亡. 对个人而言, 可用性关系到自己的绩效升迁。工程师对架构做了许多优化, 对代码做了很多重构, 对性能.扩展性, 伸缩性做了很多改善, 但别人未必能直观地感受到. 也许你的直接领导都不知道你做的这些意义何在. 但如果你负责的产品出了重大故障, CEO 都会知道你的名字. 事物总是先求生存
然后求发展. 保证网站可用, 万无一失, 任重而道远。

 

标签:可用,网站,可用性,故障,软件架构,阅读,服务器,数据
From: https://www.cnblogs.com/333czh/p/17173118.html

相关文章