分布式Web系统设计准则

jackxiang 2013-12-29 20:31 | |
背景:对于大型系统里的原则,还得牺牲某些原则,提到可用性是最高,再就是自行恢复系统,性能等排名规则,值得学习。


大型分布式web系统设计中,主要需考虑一下几个准则

可用性:
系统是否可用,对于大多数互联网公司来讲,都是一个重要的衡量标准。特别对于大型的零售商业站点来讲,几分钟的当机,可能导致数百万元交易额的损失;大型门户若出现超半小时的当机,也大都将被登到第二天的IT新闻头版。
因此,保证系统的持续可用性和失败的可恢复性,不仅仅是技术所应遵循的基本准则,更是一个商业业务准则。
在分布式系统中,高可用性需要关注以下几点: 关键业务的冗余, 局部系统错误的快速恢复,以及出现问题发生时还可有损的支持服务。
以银行系统来说,存取款交易,必须保证冗余。某一套系统或数据发生错误时,能使用另一套备份系统快速替代;并争取自行恢复其错误系统;若实现大故障,导致交易无法进行,也需要支持有限服务,比如仅支持余额查询操作,而暂不支持取现交易。
性能:
性能是衡量网站的另一个重要标准。网站的打开速度,影响到用户的使用率,用户体验,甚至是搜索引擎排名。他与网站的收益与用户流失率也有重要关系。
因此,请优化您网站的相应时间,保证用户较低的等待时间.
可靠性:
系统应具有可靠性。当用户提交数据后,需要让用户感知到,系统已经正确的保存了他的数据,并能在需要的时候重新进行获取。
可伸缩性:
说到分布式系统,不得不提到的就是系统的可伸缩性。
系统的可伸缩性关心以下几个问题:目前系统还能承受多少流量?是否能够方便的增加更多的资源?增加资源后,又能多支撑多少流量?
可管理性:
设计一个方便管理的系统。方便管理等价于运维上的可扩展性:维护和更新。
可管理性主要关注的问题点在于:错误发生时,是否能方便地定位到问题所在?系统升级或修改是否方便?系统的常规维护是否方便?
成本:
成本是另一个考虑因素.它包含硬件、软件成本。
主要需考虑部署和维护成本、系统开发成本、 系统运行时需要的硬件资源成本、甚至是系统的使用,开发培训成本。
广义的成本可概括为系统所有者所需要付出的所有的钱。
以上准则仅从各方面做了一个罗列,但其个准则间可能是有冲突的。比如通过系统的可靠性,增加硬件设备后,将导致系统成本更高更难以管理。

实际设计过程中,需要根据业务类型,在各准则中进行重要度衡量,必要时可能需要牺牲某些准则。

来自罗春晖的博客:http://www.luochunhui.com/%E5%88%86%E5%B8%83%E5%BC%8Fweb%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E5%87%86%E5%88%99/

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/6918/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]