你的位置:首页 > 系统架构

Web2.0的系统架构与六大关键问题

2011-08-01 浏览:(1643) 系统架构 评论(0)

搜索、照片、音乐、视频、混搭式应用(Mash-Ups)、维基(Wiki)、网络日志(Blog)、社区,还有那些来自各地展示天堂般美景的高清 晰图片——它们一起构成了Web2.0 热潮的丰富内容。但是对于正在成长的新一代Web服务来说,最重要的也许不是内容,而是通过浏览器窗口,让用户获得更有趣的体验。

要在这个Web世界里占有一席之地,你需要把握创建交互式网站的诀窍。而此类成功网站背后的诀窍和业务模式又是什么呢?

商界和技术领域的领袖们,包括亚马逊公司(Amazon.com,下称亚马逊)的杰夫·贝佐斯(Jeff Bezos)、微软公司(Microsoft,下称微软)的雷·奥奇(Ray Ozzie)和黛博拉·克拉帕蒂(Debra Chrapaty)、谷歌公司(Google,下称谷歌)的埃里克·施密特(Eric Schmidt)、Salesforce.com公司的马克·贝尼奥夫(Marc Benioff)和Skype公司的尼可拉斯·詹斯特罗姆(Niklas Zennstrom)最近在旧金山(San Francisco)共同探讨了Web新应用的未来。我们知道:Web2.0 需要全新的软件和服务器架构,以及不同以往的IT基础设施。下文将从6个方面分别讨论相关的核心话题:规模、内容管理、安全、开发技术、用户体验与社区。

规模效应

极少有人在网站上线不久就期待迎来百万或千万级别的访问量。但事情真的就这样发生了。根据互联网流量测量机构comScore Networks的数据显示,YouTube网站从一年前的十几万访问量上升到2006年9月的2,000多万次美国独立访问量(Unique Visitor)。

对多数网站来说,网络和IT架构其实并不如你想的那么重要。没错,没有可扩展和可用的IT资源,就谈不上业务——这是Web2.0公司共同的起步资 本,而不是将他们加以区分的个性化资源。尽管谷歌视频(Google Video)背后有成熟和强劲的技术架构,YouTube公司却超越了它,赢得了大量终端用户的支持,最后迫使谷歌购并了这个曾经的竞争对手。当然,基础 架构只是赌注。要稳操胜券还需拥有更多:创意、社区活力和独特的魅力等。

实际上,Web2.0 初创公司在开始阶段并不一定需要拥有自己的数据中心。在线零售商亚马逊就把自己的基础架构服务分割成小块,销售给一些需要强劲运算能力支持的初创公司。亚 马逊网络服务公司(Amazon Web Services)负责产品管理和研发人员关系的副总裁亚当·塞利普斯凯(Adam Selipsky)认为,尽管架构里的东西——比如服务器、操作系统、数据库软件、网络连接等都非常关键,但是对于用户体验而言却没有增加任何新内容。塞 利普斯凯指出,这些基础架构的东西可能会非常耗资源:公司需要投入70%的资源在搭建和维护自己的IT基础架构上。

与第一次Web扩张热潮不同,那时候大家都把购买上百万美元的服务器和迅速扩张奉为无上真理,而现在的2.0初创公司却不会纠缠于这些与运算能力有 关的底层部件。在线图片共享网站SmugMug的首席执行官(CEO)兼共同创始人唐·麦卡吉尔(Don MacAskill)表示:“我们当然不会认为底层数据中心是我们业务或价值定位的核心。”SmugMug公司采用亚马逊的S3存储服务,该服务通过存储 管理软件连接一个庞大的存储设备阵列,这样可以提升SmugMug公司内部的IT架构。

“这很简单,因为亚马逊为我们完成在多个数据中心和存储介质之间复制文件的复杂工作,”SmugMug公司总裁兼共同创始人克里斯·麦卡吉尔 (Chris MacAskill)认为。

SmugMug公司只有18位员工,却处理着18万付费用户和1.15亿张图片。“我们认为自己的价值定位是用户体验,” 唐·麦卡吉尔总结道,“这包括我们的Web用户界面和客户服务。”

麦卡吉尔认为,扩展客户服务也许比扩展服务器更困难。SmugMug公司在硅谷一个数据中心刚好与YouTube公司比邻,而两家公司都面临着同样 的基础架构挑战,如服务器、冗余与自愈型文件系统,他评论道:“如果我们不选择现成的商业化产品,而打算自己发明轮子,那实在有点犯傻。”

很多基础架构组成单元都有现成商品。根据在线视频编缉网站Eyespot的共同创始人兼首席技术官(CTO)大卫·杜达斯(David Dudas)介绍,这些现成商品中包括:价格便宜,但是功能强劲的英特尔(Intel)芯片服务器;由多个供应商提供的,并且价格比几年前大大降低的带宽 资源;廉价而且更节省空间的磁盘存储设备;以及开源软件,其中包括免费企业级操作系统(Fedora Linux)、关系型数据库(MySQL)、网络服务器(Apache)和应用框架(Ajax)。

杜达斯分析说,Eyespot公司的优势在于它能把这些零散的产品组合成一个可扩展规模的在线视频编缉平台。“如果你不知道怎样把它们正确地组合在 一起,那些廉价的硬件对你根本没用,当达到5,000万用户门槛时,差劲的架构会使系统发生故障或宕机。”

这的确是一个挑战。其中的一个要点是,把这些IT部件组合在一起,如服务器、数据库、路由器——但它们都能独立于彼此单独扩展。另一个要点是,认识 到不同的媒体服务功能,如流媒体、图片服务、网页服务、数据库等所需要的资源是不同的。

租用数据中心的方式也许只适用于当下。最近互联网排名增长第三位的Metacafe公司共同创始人兼CEO阿里克·泽涅克(Arik Czerniak)认为,到一定时候,“我们也需要建立自己的系统。”comScore Networks数据显示,去年9月Metacafe在全球有1,660万独立用户访问数,和4.92亿页读数。泽涅克认为,“到这种规模,要确保网站顺 畅地运行是一项巨大的技术挑战。”

共同创始人兼首席产品官(CPO)伊亚·赫索格(Eyal Hertzog)表示,Metacafe公司设计自己的软件架构,包括服务、模板库(Template Libraries)、统计评估、版本控制和架构监控等。同时,在线视频网站还依赖网络内容推送公司Limelight Networks公司的服务来缓存文件以提供更高效的访问,并由主机服务提供商RackSpace公司提供主机托管。Metacafe公司使用Lamp (代表Linux、 Apache、MySQL、 PHP等软件)组合软件包。

对Metacafe公司来说,有效的调整意味着原来需要几千台服务器现在则只需要几百台。 泽涅克指出:“如果我们现在还在用起步时的老一套技术,现在我们可能就需要一万台服务器了。”

内容管理

如果你要建一个网站,它包含照片、视频博客和其他用户生成内容(User-Generated Material),你知道该如何应对吗?

对主要目标是产生内容、封装内容、然后推送给几百万用户的网站来说,挑战是找到管理这些文件的最佳方式。Web2.0 公司有可能需要开发自己的产品,因为Web2.0的交互性特点,如标签、评分、上传,在商业化的内容管理系统中支持得并不好。 网页设计公司Adaptive Path公司的用户体验策略总裁兼合伙人杰西·詹姆斯·加勒特(Jesse James Garrett)认为:“可扩展性是用户生成内容中的最大问题。”

加勒特表示,目前已有的内容管理架构不适合Web2.0公司,因为“Web2.0的内容管理定义与软件开发商在开发内容管理系统时想的完全两样。” 大多数企业使用的内容管理系统是为处理文件、电子表单、数据库和其他常规型文件而设计的,它们并没有考虑照片、视频或在线社区的需求。

照片共享网站SmugMug公司的CEO麦卡吉尔表示,他们的网站现在每天新增30万到50万张图片。他认为SmugMug公司的内容管理系统也不 是特别复杂,只是“一点‘胶水’,还不是大量的代码。”他最关心的是从亚马逊S3存储服务那里获得的大容量、万无一失的(Bulletproof)存储数 据,而与这个存储服务一起提供的还有用户友好的管理界面以及亚马逊的技术支持。这些“胶水”代码用来确保文件写操作失败时不会导致数据丢失。

使Web2.0公司的内容管理系统面临更大挑战的原因是他们还需要处理用户生成数据;这些公司做的每件事情都围绕着数据和数据管理。克里斯·麦卡吉 尔解释说,SmugMug公司在保存收到的文件之前,会做大量的工作,如确保图片的色彩空间无误,并提取可用作标题和关键字标签的信息,生成各种大小的复 件以加快显示速度。在这之后,亚马逊会把这些文件复制到多个数据中心和存储服务器上。

对Metacafe公司来说,挑战在于不但要处理大量的视频,还包括用户和研发人员产生的数据。这意味着需要选择合适的内容推送网络、追踪全球各地 的缓存时间、做各种研发工作以记录网页下载和数据库的压力。CEO泽涅克认为:“我们为用户做数据挖掘,返回收集的信息,这中间所牵涉的数据量非常之大, 在这点上Metacafe公司做得的确与众不同。”

该公司在生产和开发环境等各方面都用到了开源软件。首席产品官赫索格证实,公司用Wiki系统管理开发周期,同时用作主要的知识管理工具。“我们把 每个点子和想法都写到Wiki里去,再由公司人员评估和编辑。”他说,“一旦想法获得认可,我们继而为它订立标准、展开设计和编写测试计划。”

无论从哪方面来说,内容管理对Web2.0 公司来说都是困难的。但好消息是人们已在摸索中学习。加勒特指出,在20世纪90年代末期,许多网站碰了壁,因为他们缺乏可扩展性。他说:“过去5年里的 行业经验让我们获益良多,我们知道怎么从一开始就考虑灵活性,设计未来可以服务于庞大受众的系统架构。”

安全

Web2.0 有一个显而易见的特点:它并不比第一波网络热潮来得更安全。

Web2.0公司纷纷采用互动技术,他们会发现在更好地吸引和留住用户的同时,也把更大的风险带入了防火墙之内。

使用JavaScript的Ajax 开发者可以创建在访问者浏览器窗口里自动执行的程序。多种脚本语言都可在浏览器端执行并向服务器发出恶意代码,而JavaScript不过是其中最著名的 一种。其他脚本语言还包括微软的Visual Basic、以及微软开发的与JavaScript相对应的ECMAScript。另外还包括奥多比系统公司(Adobe)的 ActiveScript(另一种ECMAScript风格的脚本),它可以在浏览器窗口通用的Flash播放器里运行,而98%~99%的互联网用户都 安装了这种播放器。

Ajax的一个组成部分是异步JavaScript,它是谷歌地图(Google Maps)应用的幕后功臣。谷歌地图可追踪用户光标在地图网格上的位置并把信息发回服务器。实际上,JavaScript程序是在告诉服务器,“用户正指 向北方。请返回更多他当前位置往北的数据。”

这种互动功能一直是个潜在威胁,因为尽管可以减轻危害,但却不可能完全根除它。对缺乏经验而意识不到自己的程序会出问题的程序员来说,经过培训也只 能做到缩减危害。因为Ajax应用程序可以在服务器端和浏览器里运行许多脚本代码,令黑客有可乘之机,攻击与应用程序通信的数据库。

即使经验丰富的程序员也可能中招。一年前,社交网络网站MySpace上存放着一位叫Samy的新用户的个人主页。在他提交的信息里有一个隐藏的 JavaScript蠕虫,它可以感染任何访问Samy空间的MySpace用户的浏览器,并把这段代码复制到该访问者的个人主页里。某种程度上,这纯粹 是场玩笑:Samy的目标是把“Samy是我的大英雄”这段文字复制到尽可能多的MySpace用户的“英雄”分类里。

感染开始迅速传播。在20小时内,这个JavaScript蠕虫已经感染了上百万MySpace用户。随着感染的增加,这个蠕虫引起的人为流量使 MySpace服务器陷于崩溃。MySpace谢绝就此事进行评论,但据Blog媒体Slashdot报道,该公司不得不临时关闭网站以清除感染。

这是为什么Web2.0 开发者必须从一开始就考虑安全问题的其中一个例子。Web2.0 技术的一个大危险在用户从表单或数据字段里提交回复时,开发者可能需要的是某个特定的输入,如名字或邮编,但很少有网站会仔细校验用户的输入。安全软件公 司SPI Dynamics公司的研发经理布赖恩·沙利文(Bryan Sullivan)评论说,“在客户端,你没法控制真正输入的内容。主导权全在用户手里。”

美国加州大学伯克利分校(University of California, Berkeley)计算机科学系的助教大卫·瓦格纳(David Wagner)警告说,可能有1,001种方式在HTML页面中隐藏JavaScript代码,比如在Wiki、MySpace、Yahoo Mail这类型的网站里。“但即使你拦截了其中1,000种,你还是可能会倒霉,”瓦格纳认为,“坏人更有优势。”

2005年春天,Yahoo的网页邮件(Web Mail)服务器就被一个用户上传的Yamanner蠕虫入侵了。如果一个懂行的用户在地址栏里输入一个SQL语句,这个语句就可以在服务器上可用的数据 库里得以执行。这种花招就叫SQL注入攻击。如果一个MySpace用户在自己的MySpace服务器上的网页里加入JavaScript蠕虫,蠕虫就可 以在访问者的浏览器窗口里执行。MySpace已经采取措施阻止会自我克隆的Samy蠕虫,但恶意程序的作者们下次肯定会尝试其他的方法。

不像以前的病毒,Samy蠕虫与操作系统无关。作为一种与网页相关的技术,Ajax不依赖于平台,而这也催生了一个跨平台蠕虫。无论苹果公司 (Apple)的Mac电脑、Linux工作站还是Windows PC都可以触发它。它默默地在后台窃取用户的信息,不会出现任何警告信息提示用户系统被感染了,而且还会继续感染他人。沙利文警告说:“想象一下,如果银 行网站上有Ajax蠕虫,那会是怎样的情景。”

轻量级开发

快速变更是Web2.0的一个标志性特点。网站可以非常迅速地添加和去除功能,有时候简直就是一天一个样。而一个固定的尺码肯定不适合所有的人。 Web2.0网站必须具有高度的可适应性,以适应用户常变的兴趣,对研发人员来说,轻量级的开发工具能帮上大忙。

两个受欢迎的选择是Ruby和Flash,与Ajax类似。Ajax是个轻量级的,基于浏览器的JavaScript和XML组合,已在谷歌地图和 其他许多互动网站里得到应用。Ruby和Flash这两种网站工具不像Ajax技术那么新,它们已有成熟的工具集支持。

传媒咨询公司Backchannelmedia公司就用 Ruby on Rails工具开发自己的网站,这是一套使用轻量级编程语言Ruby开发的专用网站平台。该网站为客户提供庞大的电视广告收视率数据库的快速访问。广告商 可以根据电视观众打到800免费电话的下单时间,结合当时不同地域投放电视广告的内容,来获知广告效果。

Backchannelmedia公司的首席信息官(CIO)玛德琳·诺兰德(Madeleine Noland) 表示,公司的25名员工里,有熟悉Java、Visual Studio .Net、Ruby和PHP技术的,一年多前他们决定重新设计客户交互服务,即电视直销(DRTV)研究时,最后选择了Ruby on Rails工具。 技术主管杰森?托伊(Jason Toy)证实这个服务只花了2个月就完成了,而如果选择Java则可能要花上9个月的时间。Ruby on Rails工具的代码量只有Java的十分之一。这个服务每天要添加250万条广告数据到数据库中,并根据用户请求提供上百万次不同的网页查询结果。

此外,耐克网上商店(NikeStore)是用Adobe系统(Adobe Systems)的Flash技术搭建的又一个交互式网站,Flash是可在浏览器窗口运行ActionScript脚本的多媒体引擎(该技术由 Adobe从Macromedia公司购并),提供最新的购物互动体验。例如,访问者的光标移向标题的“男装”或“童装”位置,就会显现相关产品的下拉菜 单。而点击选中的货品,则会弹出一个新窗口,可展示不同颜色的同一产品和其他相关产品。改变就在瞬间发生,所在的页面无需重新加载。

用户体验

Web2.0 一个最大的挑战是如何定义和提高用户体验。谷歌用一个简洁、可快速加载的网页,展示了在搜索上可以做到多么与众不同。然而其他网页臃肿、速度缓慢的网站 ——比如MySpace——也仍然大获成功。成功的秘诀关键在于让用户感到惊喜和愉悦,在他们需要的功能以外,还提供连他们自己都未意识到会需要的功能。

极少有公司花在提高线上用户体验的时间比微软的MSN网站更多,它从1995年开始提供在线内容业务,至今仍然是互联网上最受欢迎的网站之一。但下 载音乐的人们会选择iTunes,而不会有选择微软的冲动,也没有类似iPod的产品制造者来和微软签订合作协议。人们会说去“Google”一下信息, 但不会说“MSN”一下信息。另外也是谷歌地图和谷歌地球(Google Earth),而不是微软的虚拟地球(Virtual Earth)在地图定位和寻址上获得更多认可。所以到目前为止,显然微软网站还不太入引领潮流的年轻一代的法眼。

认识到这些问题,微软正计划一场Web革新。微软公司计划在这个财政年度花费5亿美元在互联网搜索引擎和其他可与谷歌和雅虎竞争的软件研发上。这个 投资计划里还包括一个新的数据中心,以支撑将来的家用型和商业软件。此外的产品包括新的Zune音乐播放器和音乐销售网站。微软的在线地图软件——搜索功 能广受好评的一个应用——也推出了较大的升级,把地图转换成赏心悦目的3D图像。

微软会用什么技术来提高虚拟地球的用户体验呢?我们可以从2006年早些时候的两项购并里一窥端倪。微软购并了Vexcel公司,该公司的 Photogrammetry技术可以通过航拍照片创建出城市和乡村的3D图像。微软还购并了Massive公司,这家软件公司的技术允许赞助商把广告插 入视频游戏里去。像谷歌和雅虎的地图软件一样,微软已经把虚拟地图的应用编程接口(API)授权给Best Buy、Expedia等公司。这样可以允许合作伙伴为这些应用注入自己的创新——毫无疑问这是十足的Web2.0特色。

谷歌去年年底发布了新版本的谷歌地球,也加入了一些新花样。包括来自发现网络公司(Discovery Networks)和国家地理杂志(National Geographic)对一些世界著名景点的描述、国家公园服务的扎营地点和旅游线路的信息,还提供把自己飞越谷歌地球上空时的影像录制成高清电视 (HDTV)的功能。这些功能呈现的前所未见景象,都可能会令用户眼前一亮。在这场对峙中,快速、细节和趣味性最为重要。

社区

Web2.0里最引人瞩目的一方面就是社区概念。从Web的初始阶段开始,大家都认可的一个观念就是,成功的网站需要锁定一批稳定的社区用户,他们 有共同的兴趣、乐于讨论和争辩、积极分享自己的音乐、照片、代码和观点。就在2006年10月底,谷歌购并了硅谷初创公司JotSpot公司,该公司用 Wiki软件让用户分享电子表单、日历和相册。

但在线社区也是一个令人困惑的概念。他们很少像这个词的表面含义那样意味着“我们都在这里”。奥莱利传媒公司(O’Reilly Media)首席执行官(CEO)蒂姆·奥莱利(Tim O’Reilly)在Web2.0 大会上直言不讳地说:“我讨厌‘社区’这个词,人们常用这个词来逃避认真思考什么是Web最核心的概念。”奥莱利传媒公司和 《InformationWeek》母公司CMP集团共同召开了Web2.0 大会。

在奥莱利的观点里,一些最成功的社区型网站实际上与人们印象中的和谐型互联网的分享想法可能完全背道而驰。比如在亚马逊鼓励下,其用户贡献了百万条 书评、乐评和产品评论等,这是在极力赚取用户的集体智慧(其中还包括许多的俏皮话)。“他们不断压榨用户,”奥莱利指出。亚马逊还是一个社区网站吗?

在线社区通常为用户提供交谈、分享和彼此联系的功能——但是最后对网站的业务模式却没有什么帮助。奥莱利认为这就是问题的关键。

以Flickr网站为例,这个雅虎旗下的照片共享网站非常受欢迎。分享照片是很不错,但Flickr网站充分利用了照片的单向链接,所以我可以看到 你的照片,而你却不知道我在看。这里面几乎没有交流可言。另一个非常受欢迎的网站是由用户驱动的Craigslist,但只是以本人的兴趣为中心,你回应 我的广告,而我受惠。

MySpace把社区的概念转化成了真金白银,但绝大多数模仿它的网站都失败了。甚至维基百科(Wikipedia)乌托邦式的理想是收集、编辑与 传播全球的知识,现在其实也是被一群核心作者主导着。

“真正的问题在于,用户可以为你的事业做出什么贡献?”奥莱利说道,“社区只不过是2.0大局里的一小部分。”

  • 发表评论
  • 查看评论
【暂无评论!】

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。