分析如何增加相应的功能来提高系统的可用性和易用性

题目:阅读《大型网站技术架构:核心原理与案例分析》第五、六、七章,结合某某系统,分析如何增加相应的功能,提高系统的可用性和易用性。

     《大型网站技术架构:核心原理与案例分析》中这样写到:“网站的可用性描述网站可有效访问的特性,相比于网站的其它非功能特性,网站的可用性更牵动人们的神经,大型网站的不可用事故直接影响公司形象和利益,许多互联网公司都将网站可用性列入工程师的绩效考核额,与奖金升迁等利益挂钩。”这句话说明一个系统的可用性至关重要。通常,企业级的应用系统为了提高系统的可用性,会采用较昂贵的软硬件设备,如IBM的小型机乃至中型机大型机及专有操作系统、Oracle数据库、EMC存储设备等,而互联网公司更多地采用PC级服务器、开源的数据库和操作系统,这些廉价的设备在节约成本的同时也降低了可用性,特别是服务器硬件设备,低价的商业级服务器一年宕机一次是一个大概率事件,而那些高强度频繁读写的普通硬盘,损坏的概率则要更高一些。对于我们这些在校大学生来说,为了提高自己做的某某系统的可用性,因为硬件故障是常态,而且我们资金有限,所以我们可以进行高可用架构设计,其主要目的就是保证该系统在服务器硬件故障时依然可用、数据依然保存并能够被访问。

     具体手段是数据的冗余备份及失效转移,通俗的讲,就是一旦本机服务器出现故障,就将服务切换到其他可用的服务器上,如果故障时磁盘损坏的话,则从备份的磁盘读取数据。因此,我们在原有的功能上又增加了一个数据备份和失效数据移除的功能,数据备份是保证数据有多个副本,任意副本的失效都不会导致数据的永久丢失,从而实现数据完全的持久化。而失效数据移除则保证当一个数据副本不可访问时,可以快速切换访问数据的其他副本,保证系统可用。这样就可以保证服务器硬件故障时数据依然保存并能够被访问。

      由于某某系统的在线填报和在线审核的业务量和数据量都比较高,所以单台服务器根本不足以承担所有的负载压力,常常会出现系统瘫痪的故障。所以通过负载均衡得手段,我将流量和数据分摊到一个集群组成的服务器上,以提高整体的负载处理能力。目前,不管是开源免费的负载均衡软件还是昂贵的负载均衡硬件,都提供失效转移功能。因此,在网站应用中,当集群中的服务是无状态对等时,负载均衡可以起到事实上高可用的作用。

      我们学过Web应用开发这门课程,Web应用中将那些多次请求修改使用的上下文对象称作会话(Session),单击情况下,Session可由部署在服务器上的Web容器管理,在使用负载均衡的集群环境中,由于负载均衡服务器可能会将请求分发到集群任何一台应用服务器上,所以保证每次请求依然能够获得正确的Session比单机时要复杂很多。

      易用性是相对的,需要在成本和周期之间进行权衡。易用性的设计的一个重点就是以用户为中心,而以用户为中心又需要考虑到细分用户和场景进行设计。我们现在往往是同样一个功能会开放给不同类型和角色的用户使用,造成每个用户在使用该功能的时候都无法第一时间找到自己最关注的信息。本来一个简单的业务功能由于我们需求分析和实现原因做的复杂,这属于明显的易用性问题。但是对于一个较为复杂的功能,如果要做来很简单和易学,则用户真正学会后这个功能就不可能太易用,因为在功能本身上可能会体现太多跟初次学习相关的内容,而这些内容是用户学会后根本不用再关注的。为了解决这种矛盾,我们也可以考虑根据用户的熟练程度提供多种界面和操作方式以满足不同类型用户需求。

      对于某某系统的易用性,我们做了如下改进:将用户最关注的功能操作和数据信息放在显眼位置,这样可以使用户第一眼就可以看到自己关注的内容,并且不会过多的让用户去猜测各种隐含的信息;将涉及违背多数人常识和常规反映的操作删除或进行修改,当然在常识上的过多粉饰也会去掉,简单的东西一定不能为考虑扩展性而实现的太复杂,复杂的东西一定不能为了太易见和易学而设计的太简单,否则影响后续效率;某某系统总是在合理的时间反馈给用户审核的信息,而不是让用户莫名等待。易用不是绝对和通用,必须要细分用户和细分场景。

posted on 2017-03-16 16:24  大灰狼爱吃兔子  阅读(277)  评论(0编辑  收藏  举报