XX系统可用性易用性提高

       网站不可用性也被称为网站故障,业界通常用多少个9来衡量网站的可用性。如:网站不可用时间(故障时间)=故障修复时间-故障修复时间点-故障发现(报告)时间点  网站年度可用性指标=(1-网站不可用时间、年度总时间)*100%。可用性指标是网站架构设计的重要指标,对外是服务承诺,对内是考核指标。网站可用性不同于其他架构指标,它更加看的见摸得着,跟技术运营、相关各方的绩效考核息息相关,因此在在架构设计与评审会议上,关于系统可用性的讨论与争执总是最花费时间与精力的部分。

       那么怎么提高系统的可用性?通常企业级的应用系统会采用昂贵的软硬件设备,如IBM的小型乃至中型机大型机即专有操作系统、Oracle数据库、EMC储存设备等。这样的目的是保证服务器硬件故障时服务依然可以使用、数据库能够保存且能够被访问,即进行数据和服务的冗余备份及失效转移,一旦某些服务器宕机,就将服务切换其他可用的服务器上,如果磁盘损坏,则从备份的磁盘读取数据。如不久前的网易代理的一款软件就因为数据库的损坏,导致用户的数据损坏,并且由于数据未及时进行备份,导致数据的永久性遗失,从而导致了大量的损失。

       一个典型的网站设计通常遵循着应用层、服务层及数据层的基本分层架构模型。中小型网站在具体部署时,通常将应用层和服务层部署在一起,而数据库则另外部署。在复杂的大型网站架构中,划分的粒度会更小、更详细,它使得位于不同层次的服务器具有不同的可用性特点,关闭护着服务器宕机时产生的影响也不相同,高可用的解决方案也差异甚大。应用服务器的高可用架构设计主要基于无状态这一特性,但是事实上,业务总是有状态的。Web应用中将这些多次请求修改使用的上下文对象称作会话(session)。集群环境下,Session管理主要包括:Session复制、Session绑定、利用Cookies记录Session、Session服务器等。

       可复用的服务模块为业务产品提供基础公共服务,大型网站中这写服务通常都独立分布式部署,被具体应用远程调用。可复用的服务和应用也一样,也是无状态的服务,因此可以使用类似负载均衡的失效转移策略实现高可用的服务。除此还有如下高用的服务策略:分级管理、超时设置、异步调用、服务降级、幂等性设计等。对于网站而言,数据是珍贵的资产,数据的失去对于一些网站是毁灭性的打击。对于缓存服务器集群的单机宕机,如果缓存服务器集群规模较大,那么单机宕机引起的缓存数据丢失比例和数据库负载压力变化都较小,对整个系统影响也较小。数据备份是一种古老而有效的数据保护手段,成本和技术难度都比较低,缺点是不能保证数据的一致性,由于数据是定期复制,因此备份数据中的数据比系统的数据陈旧,如果系统数据丢失,那么从上个备份点开始后更新的数据就会永久丢失,不能从备份中恢复,即发生上述软件发生的情况,造成巨大的损失。

       系统的扩展性指对现有系统影响最小的情况下,系统功能可持续扩展会提升的能力。伸缩性是指系统能够通过增加(减少)自身资源规模的方式增强(减少)自己计算处理事务的能力。低耦合的系统更容易扩展,低耦合的模块更加容易复用,一个低耦合的系统也会让开发过程和维护变得更加轻松和容易管理。对于XX系统,它的耦合性显然是不符合要求的,大型网站为了更好地服务自己的用户,开放更多的增值服务,会把网站内部的服务封装成一些调用接口开放出去,供外部的第三方开发者使用,这个提供开放接口的平台被称作开放平台。当然XX系统由于系统的特殊性,并未提供这些开放接口。对于XX系统,它的可用性集中在对于用户的友好性,以及网站逻辑的合理性。