网络应用系统设计的基本原则

Posted on Fri 07 May 2010 in 我思 • Tagged with Architecture, FreeWheel, QCon

昨天和一个同事闲聊,说起了他近期在做的工作,一个信息聚合系统。在设计开发时没遇到什么问题,但到了真正部署,每次部署都会冒出之前没有想到的问题,使系统不能真正上线。听他讲完,我立刻想起了以前看过的ppt《Hadoop取舍之间──高性能、高流量和多数据中心互联网应用架构设计》中提到的一个重要原则:Design with failure in mind。当时和这个同事一起分享了这个原则和KISS原则。脑子里面又回想了另外几个和架构有关的原则。觉得对当前工作还是挺有意义的,应该和大家一块分享。

这篇ppt的作者信息,来自FreeWheel,这个ppt的原文请自己google吧,网上挺多的。

当时关心这篇文字,是对Hadoop感兴趣,不过这个ppt最后告诉大家,他们觉得Hadoop不适合自己,最后自己搞了一个类似的系统。这部分可以不看了,因为毕竟现在已经有很多公司成功部署了基于自己业务的Hadoop应用,每天好几个TB的数据都处理得很好。但本文前半部分提到的系统架构设计的六个原则,还是留下了很深的印象:

- 系统功能

KISS原则: keep it simple and stupid

从目前来看,最不符合这个原则的地方就是需求了。参加需求评审的时候,经常看到复杂度很高的功能点,比如决定是否给一个用户推送一条消息 ...


Continue reading