豆瓣评审经常去逛逛,前2天看到一个将豆瓣系统架构的胶片,有感写了一下一些小字,鄙人拙见,有不对之处望各位批评指正。
没有最好的架构,只有适合的架构。
适合的是当前的经济能力和用户规模。在有限的经济能力下,花费大量的气力取配备豪华的设备和人力资源是一种商业上的浪费。从系统刚上线,到系统衰竭的那一刻。会经历用户规模迅速膨胀,稳定,下降等阶段。在不同阶段对系统资源的消耗也是不同的。使用一台性能卓越的电脑专门去玩fc的模拟器一样是浪费的。
系统架构应该是不断演进的。
从这个角度上看系统,仿佛在某一时刻给定一个好的系统架构是件容易的事了。我认为好戏有几个:
- 架构的动态演进过程才是跌宕起伏的故事主线。
- 架构是如何隔离业务,又服务于业务的。
- 架构是如何考虑其扩展性的。
架构的动态演进过程才是跌宕起伏的故事主线。从该材料上,作者给出了系统从1.2M动态请求/天~20M动态请求/天的9个发展的历程碑。每次都需要在技术架构、部署方案、硬件配备上作出调整和优化。硬件需要替换、软件需要优化。只替换、扩容硬件,在短期可以明显的得到性能提升,但软件垃圾,会将整个系统编程一个烧钱的无底洞。iPhone在中高级的硬件的基础上,在软件商给用户带来了极大地体验享受。
做系统架构需要对整个系统的每个部件都了如指掌。架构师就像把玩手里的一对乐高积木,根据业务的需求,搭建起不同的玩具。