分类归档: Web

《构建可扩展的 Web 站点》读后随感

building_scalable_web_sites.jpg对于构建 Web 站点,《构建可扩展的 Web 站点》重点并不是讲述 How-To 的 — 讲述 How-To 的书已经很多了,却很少有图书愿意分一部分篇幅讲述 Why 。所以有的人可能认为”缺少细节”,有的人则读罢大呼过瘾。我一般的建议是,如果你觉得这本书没劲,那就再读一下第二遍。

为什么我推荐这本书? 主要的原因是这本书给出了可扩展站点的必备要素,而书的内容几乎全是作者在 Flickr 站点实战中得来的经验谈,如果您的站点是个发展中的 Web 2.0 站点,你可以认为这本书是个技术”标本”。如果回顾一下我的 Blog 的话,会发现多则关于 Flickr 的技术话题:

当然,这些这些都是皮毛。

如果你正在为你的网站性能问题而苦恼,那么建议直接去读第八章,这一章也是让很多人觉得有价值的章节,因为讲的是”瓶颈”(可见如何解决网站性能瓶颈是个多么普遍的话题啊)。如果严格的来说,这一章的内容并非有多么深入,但对于需要对网站性能瓶颈建立全局概览的朋友来说,足够了。毕竟我们看书不是挑刺,解决自己的问题是首先要考虑的问题。

对我来说,第九章也让我收获良多。第四层负载均衡和第七层负载均衡的差别,什么时候合适用第四层均衡,什么时候用第七层均衡,如何构建一个第七层负载均衡网络… 这些看似都是基础的问题,但实践中是需要仔细平衡的一个事儿。并非想象的那么简单。

如果 Cal Henderson 能有下一部书的写作计划,我倒是希望能看到设计可扩展的 Web 2.0 站点的主题,当然,可能我们看不到了,因为,Flickr 被 Yahoo! 收购后似乎缺失了进取心,谁知道 Cal 会不会跳槽而走呢?

PS: 这也是我认为”Web 2.0 网站架构不可或缺的图书“清单中的一本。

EOF

《高性能网站建设指南》读后随感

High_performance_web_sites.jpg对于前端优化技术,我之前根据已经从 14 条增加到 34 条的 Exceptional Performance 做了一份笔记:

这些最佳实践看似没什么艰深的技术含量,而网络上也能看到很多关于网络前端优化的文章,但是实际上我发现能操作、执行下去的网站还是不多,更多的时候,大家把类似的信息当成参考信息而已,看过,丢掉,如此而已。Web 前端优化的时间准则有些其实也算是常识。我曾经听到过某家大型网站的案例:用户反映网站速度慢,进行了多次技术会议,多个方案评估之后,”发现”是图片拖慢了整个网站,于是,大家的意见统一了,建设更多的 CDN … 可实际上,这个问题或许不需要过多的投入研究,简单的分析一下页面元素比例就知道了。

这本《高性能网站建设指南》的内容以最初的 14 条优化准则写的,精炼简洁(几个小时就能读完),我觉得已经抓住了前端优化的至少 80% 的内容,加上书中的一些引申内容(尤其是涉及到的 RFC),如果这些都能做好,那么已经能够解决绝大部分问题了。所以是绝对值得网站运维人员一读。而且,我也认为这是 Web 2.0 网站架构不可或缺的图书 之一。

另外,发现博文视点的这一批 O’Reilly 的图书都是有索引的,很难得。

EOF

链接:购买《高性能网站建设指南》

Google 的 Deep-Web Crawl

搜索引擎的行为会对网站架构稳定性有影响么? 肯定的。影响都有哪些呢? 且说,Google 的 Jayant MadhavanVLDB 2008 会议上做了题为 Google’s Deep-Web Crawl 的报告。这个报告其实也透漏出了 Google 对一些网站的潜在影响的某个方面。

何为 Deep Web ?

  • HTML 表单后的隐藏内容(表单提交后显示的内容)
  • 通过普通搜索引擎获取不到的内容

Deep Web (译为深层网页?) 目前容量大约有多大? 超过100 亿的不重复表单,而且大量都是结构化数据。对搜索引擎用户来说,这部分潜藏的数据是非常有价值的。Deep Web 包括的信息内容:

  • 信息型表单;
  • 登录表单不要;
  • 交互性表单也有用;

Google 的解决办法是基于信息模板(informative templates)。其实不难理解,这些模板(似乎也叫查询模板, Query Template)是在 Google 进行了大量的数据分析的基础上得出来,然后通过反馈迭代修正,加上Google 引以自豪的算法啦,渐渐的模板就会很好用了。

绝大多数网站表单后面是要有数据库支撑的。Google 自己计算出来的模板实际上会对应被爬行网站的 DB 查询上来(Google 也是黑箱研究嘛),如果查询模板不是很匹配,或者是 Google 查询的频率过高,相信会对一个被爬行网站的稳定性带来很大冲击。尤其是针对数据库,一时爆发的大量查询引发的高负载可能会让系统撑不住。

EOF

更多的时候,搜索引擎带给一个网站的访问压力甚至大于用户带来的压力,所以,设计的时候也应该尽量采取悲观的方式,不能完全期待 Google 以及其他搜索引擎默认行为都是可以承受的。

说说大量列表项的排序展示问题

广而告之: 7月26日QClub杭州站-- 支付宝首席架构师程立与您分享"当SOA遭遇现实"的心得

上周五去了一趟淘宝,在淘宝二楼实时展示交易信息的大屏幕前看了一会儿。发现关于商品显示的排序列表是两排,左右排列的。

1 商品名一 2 商品名二
3 商品名三 4 商品名四
5 商品名五 6 商品名六
......
N-1 商品名N-1  N 商品名 N
......

尽管符合从左到右的阅读习惯,看起来感觉怪怪的。前一段时间有不少关于电梯楼层按钮排列问题的帖子(),针对电梯的按钮应该说已经讨论的很好了,但我感觉如果针对 Web 页面上大量列表项的排列显示来说,很有值得商榷的地方。

我再抛一个另外的反面例子,关于百度 Mp3 歌曲 Top 500 的列表展示:

baidu_mp3_top500.png(点击图片看大图或者到 Baidu 站点上体验)

假设 M 行 x N 列的展示,如果 M 很大,而 N 很小,在前面几行过去之后(一般是 N行*N列后),会发现非常难以定位你要找的歌曲。尤其是越到后面效果越差。如果 M 和 N 都很小,那么相差是不大的(不知道这是什么心智模型? 尤其是对该项的描述也符合 M:N 值很小,比如 Flickr 的图片展示)。

这个其实和电梯楼层按钮排列的问题不太一样:电梯上面只有一个按钮(楼层号),而 MP3 列表排列项后面还有该项的名字或描述(MP3 名字, 艺术家名字)。需要展示的内容性质和信息量已经变化了。

Flickr_items_arrange.png

这只是 UE 门外汉的个人看法。供参考。

EOF

BTW, 注意到火车站和机场的公示牌显示倒是挺符合阅读习惯的。

此文作者:, 位于 Web 分类 标签: on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.