∈鱼杆 ---我的鱼塘

执着,坚定,友爱,勇敢(www.pumaboyd.com)Live Message

导航

《实战web2.0》读书笔记

Posted on 2008-04-08 09:39  ∈鱼杆  阅读(447)  评论(5编辑  收藏  举报

zcover  老大极力推荐这本书。应该还是年前的事情了,那个时候因为有项目要在年前结束,也就没时间看。公司好像有3本,不过都同事在看,所以年前就在china-pub上订了,好书就自备收藏了。不知道是雪灾,还是china-pub的服务差了。连同MM要的书,等了半个多月,打了2个客服电话,书总算是到了家附近的邮局。
这书应该属于“翻”的书,没有很多深层次技术讲解,更多的是开拓你的思路。我觉得书中的精华部分就是介绍了国外多家Web2.0技术公司在系统和数据库方面的设计经验和经历(PS:曾经在网上看到过这些资料,有空整理一下)。

第一章 综述篇


介绍背景知识的。看的头疼,但不得不看。
什么是Web2.0。说实话,我对这种概念上的东西不感兴趣,总觉得这东西噱头多,现在不是什么web3.0的说法都冒出来了吗。从技术的角度,DIV+CSS,RSS,Ajax,Blog 有这些特征的算不算web2.0?如果算,那基本上有点规模的互联网企业都2.0了。书中更多的是从行业的角度去看这个问题。开篇第一文就是写这个的,书中的概念我就不摘抄了。
看完这章,把重点归纳一下(比牛人们总结的条目还少,估计有遗漏,但这些是我关注的)
Web2.0的关键
1:用户为中心的设计(用户体验->用户参与->用户习惯,个人觉得是一个递进的过程)
2:软件开发的轻量级和快速响应(简单,快速的满足需求)
3:数据为核心的服务(提供个性化,分析用户爱好,聚合)

再来一个更俗的理解 :web1.0,你需要用眼睛看,用鼠标点,而到了web2.0你还需要敲键盘。

第二章 案例篇


介绍Web2.0网站系统、数据库设计相关
精华所在,也是让我淘腰包的地方。我主要列举一下我关心的信息(数据库,开发技术,系统平台,搜索引擎,缓存)。(PS:我没有列举的很详细,肯定有不全的地方,但列举的信息都是书中提及到的)

Amazon架构
数据库:Oracle
开发技术:C++,Java/JBoss,Perl/Mason
系统平台:Linux
搜索引擎:(UnKnow)
缓存:(UnKnow)

Digg架构
数据库:MySql
开发技术:PHP
系统平台:Linux
搜索引擎:Lucene
缓存:MemCache

eBay架构
数据库:Oracle
开发技术:J2EE
系统平台:Windows,Unix
搜索引擎:(UnKnow)
缓存:(“eBye 在应用层完成表连接。” 原文没太看明白,好像是有缓存的,只是在应用层上通过缓存关联数据)

FaceBook架构
数据库:MySql
开发技术:PHP
系统平台:Linux
搜索引擎:(UnKnow)
缓存:MemCache

Flicker架构
数据库:MySql
开发技术:PHP
系统平台:Linux
搜索引擎:(UnKnow)
缓存:MemCache

MySpace架构
数据库:MSSQLSever
开发技术:ASP.NET
系统平台:Windows
搜索引擎:UnKnow
缓存:UnKnow

关于国内网站的架构,我发现能收集的信息不多,多是一些介绍,团队建设。但同样将我关注的内容列举:
百合网:“心灵匹配”功能,因为用户数据信息大,采用了内存数据库,并进行了内存数据的优化。
豆瓣:Python,C  同样增加了cache机制。
鲜果:LAMP(linux + apache2 + mysql + php)

其他的我就不列了。边写边整理这些资料,手都酸了。撇开使用的技术来讲,我们可以发现共同之处:
1:都曾经面临或正在面临迅速增长的用户所带来的数据库压力。
2:很多都使用了MemCache技术。提高用户的响应速度,减少数据库压力。

看来看去基本上都是数据库的效率以及扩容问题。
随着我们网站的发展也同样要面对这些问题,而应对的方式也应该不外乎如下(其实已经有在运行ing):

1:Web服务器扩展
•增加web服务器,通过负载均衡的设备达到Web的减压
•Web页面静态化
•CDN加速
•Squid多级缓存
2:DB服务器扩展
•MemCache缓存,减少DB压力
•Master-Slave模式或 Shard模式 对数据库进行分割
Youtube 早期采用的是Master-Slave模式
Flickr,MySpace (一百万帐号为分割线)采用了Shard模式

     网站由小到大,数据由少到多。每个网站发展可能都面临这些问题。各家有各家的解决之道,看完这章,你会心中有底,“噢,原来他们是这样做的”。可以肯定的说这里面有许多的困难,所以需要我们更多的实践。到那个时候我们也会有更多的经验可以和大家分享。随着网站的成长,我们个人对网站技术的了解也会更加深入。一个百万级用户和一个千万级用户所面临的问题肯定是不一样的。很高兴自己在这方面的认识又近了一步,这一章功不可没。

第三章 技术篇


     没什么很感兴趣的东西。介绍的内容也不温不火的。Ajax,Mashup,RIA,Rails,Rest。如果说这部分没用,那也有过之言。毕竟我是多学了几个名词,Rails,Rest。平时总是看到这些新名词,记得还有一个什么Ruby。这些东西都没实践过,所以如果大家真有兴趣,还是Google吧,我这里只雁过一下。
Ruby :一种新的程序语言
Rails :Ruby语言下的框架
REST :上次和德军兄讨论API的时候曾提起过。现在想起来,哦原来就是这么7条规则啊!
这章最有用的就是最后几篇关于数据库优化,Web优化,系统监控工具。最后的推荐阅读条目中我会指明。

最后两章 指导篇和资料篇


介绍Web2.0的其他相关问题、运维、Web2.0网站列表、Web2.0书籍等。

推荐阅读条目


书已阅毕,如下是我认为本书的必看内容,推荐给大家:

P40-P74: 国外优秀Web2.0网站的架构分析
P215: Web2.0与数据库的故事
P222: 数据库设计的非正统方法:sharding来临
P224: Web2.0网站性能调优实践
P230: 从LiveJournal后台发展看大规模网站性能优化方法
P237: 使用Cacti监控系统性能(并不一定适合你所在网站)