`

架构设计案例(一)

 
阅读更多
随着中国大型IT企业信息化速度的加快,大部分应用的数据量和访问量都急剧增加,大型企业网站正面临性能和高数据访问量的压力,而且对存储、安全以及信息检索等等方面都提出了更高的要求……
    本文中,我想通过几个国外大型IT企业及网站的成功案例,从Web技术人员角度探讨如何积极地应对国内大型网站即将面临的扩展(主要是技术方面,而较少涉及管理及营销等方面)矛盾。

一、 国外大型IT网站的成功之道
(一) MySpace
    今天,MySpace已经成为全球众口皆碑的社区网站之王。尽管一流和营销和管理经验自然是每个IT企业取得成功的首要因素,但是本节中我们却抛弃这一点,而主要着眼于探讨在数次面临系统扩张的紧急关头MySpace是如何从技术方面采取应对策略的。
第一代架构—添置更多的Web服务器
    MySpace最初的系统很小,只有两台Web服务器(分担处理用户请求的工作量)和一个数据库服务器(所有数据都存储在这一个地方)。那时使用的是Dell双CPU、4G内存的系统。在早期阶段,MySpace基本是通过添置更多Web服务器来对付用户暴增问题的。但到在2004年早期,在MySpace用户数增长到五十万后,其数据库服务器已经开始疲于奔命了。

第二代架构—增加数据库服务器
    与增加Web服务器不同,增加数据库并没那么简单。如果一个站点由多个数据库支持,设计者必须考虑的是,如何在保证数据一致性的前提下让多个数据库分担压力。

    MySpace运行在三个SQL Server数据库服务器上—一个为主,所有的新数据都向它提交,然后由它复制到其它两个;另两个数据库服务器全力向用户供给数据,用以在博客和个人资料栏显示。这种方式在一段时间内效果很好——只要增加数据库服务器,加大硬盘,就可以应对用户数和访问量的增加。

    这一次的数据库架构按照垂直分割模式设计,不同的数据库服务于站点的不同功能,如登录、用户资料和博客。垂直分割策略利于多个数据库分担访问压力,当用户要求增加新功能时,MySpace只需要投入新的数据库加以支持。在账户到达二百万后,MySpace还从存储设备与数据库服务器直接交互的方式切换到SAN(存储区域网络)—用高带宽、专门设计的网络将大量磁盘存储设备连接在一起,而数据库连接到SAN。这项措施极大提升了系统性能、正常运行时间和可靠性。然而,当用户继续增加到三百万后,垂直分割策略也变得难以维持下去。

第三代架构—转到分布式计算架构
    几经折腾,最终,MySpace将目光移到分布式计算架构——它在物理上分布的众多服务器,整体必须逻辑上等同于单台机器。拿数据库来说,就不能再像过去那样将应用拆分,再以不同数据库分别支持,而必须将整个站点看作一个应用。现在,数据库模型里只有一个用户表,支持博客、个人资料和其他核心功能的数据都存储在相同数据库。

    既然所有的核心数据逻辑上都组织到一个数据库,那么MySpace必须找到新的办法以分担负荷——显然,运行在普通硬件上的单个数据库服务器是无能为力的。这次,不再按站点功能和应用分割数据库,MySpace开始将它的用户按每百万一组分割,然后将各组的全部数据分别存入独立的SQL Server实例。目前,MySpace的每台数据库服务器实际运行两个SQL Server实例,也就是说每台服务器服务大约二百万用户。据MySpace的技术人员说,以后还可以按照这种模式以更小粒度划分架构,从而优化负荷分担。

第四代架构—求助于微软方案
    2005年早期,账户达到九百万,MySpace开始用微软的C#编写ASP.NET程序。在收到一定成效后,MySpace开始大规模迁移到ASP.NET。
    账户达到一千万时,MySpace再次遭遇存储瓶颈问题。SAN的引入解决了早期一些性能问题,但站点目前的要求已经开始周期性超越SAN的I/O容量——即它从磁盘存储系统读写数据的极限速度。

第五代架构—增加数据缓存层并转到支持64位处理器的SQL Server 2005
    2005年春天,MySpace账户达到一千七百万,MySpace又启用了新的策略以减轻存储系统压力,即增加数据缓存层——位于Web服务器和数据库服务器之间,其唯一职能是在内存中建立被频繁请求数据对象的副本,如此一来,不访问数据库也可以向Web应用供给数据。

    2005年中期,服务账户数达到两千六百万时,MySpace因为我们对内存的渴求而切换到了还处于beta测试的支持64位处理器的SQL Server 2005。升级到SQL Server 2005和64位Windows Server 2003后,MySpace每台服务器配备了32G内存,后于2006年再次将配置标准提升到64G。

    事实上,MySpace的Web服务器和数据库仍然经常发生超负荷,其用户频繁遭遇“意外错误”和“站点离线维护”等告示,他们不得不在论坛抱怨不停……
    MySpace正是在这样不断重构站点软件、数据库和存储系统中,才一步步走到今天。事实上,MySpace已经成功解决了很多系统扩展性问题,其中存在相当的经验值得我们借鉴。MySpace系统架构到目前为止保持了相对稳定,但其技术人员仍然在为SQL Server支持的同时连接数等方面继续攻坚,尽可能把事情做到最好。

(二) Amazon
    亚马逊书店无疑是电子商务发展的里程碑。2000年到现在,世界网络业腥风血雨。Amazon曾经成为网络泡沫的头号代表。如今,当这个“最大的泡沫”用几经易改的数字把自己变成了坚实的IT巨人。
历览Amazon发展过程,其成功经验在于,它创造性地进行了电子商务中每一环节的探索,包括系统平台的建设,程序编写、网站设立、配送系统等等方面。用Amazon当家人贝索斯的话说就是,“在现实世界的商店最有力的武器就是地段,地段,地段,而对于我们来说最重要的三件事就是技术,技术,技术。”

此文转载自opent.cn:http://www.opent.cn/a/095/1471.shtml
分享到:
评论

相关推荐

    股权架构设计案例-.docx

    总结来说,民营企业的股权架构设计是一项关乎企业发展战略的重要任务。通过合理的股权改造,企业能够优化资源配置,降低税务成本,增强集团管控能力,为持续扩张和长远发展奠定坚实基础。同时,股权改造的过程需谨慎...

    软件架构设计案例分析

    软件架构设计是软件工程领域中一个至关重要的方面,它涉及到软件系统的高层次结构和组件的组织方式。在这个案例分析中,我们从多个维度来探讨软件架构设计的细节和实践。 首先,软件架构是一个系统的抽象。它定义了...

    软考架构设计师 案例分析

    【软考】架构设计师 案例分析【软考】架构设计师 案例分析【软考】架构设计师 案例分析【软考】架构设计师 案例分析【软考】架构设计师 案例分析【软考】架构设计师 案例分析【软考】架构设计师 案例分析【软考】...

    架构设计(案例篇)

    架构设计(案例篇),系统软件架构师,简单易解

    系统架构设计案例分析

    希赛网 系统架构师 教程课件

    系统架构设计典型案例.docx

    系统架构设计典型案例.docx系统架构设计典型案例.docx系统架构设计典型案例.docx系统架构设计典型案例.docx系统架构设计典型案例.docx系统架构设计典型案例.docx系统架构设计典型案例.docx系统架构设计典型案例.docx

    2021年下半年系统架构设计下午案例分析真题及答案解析(附带论文)

    2021年下半年系统架构设计下午案例分析真题及论文 附带案例分析详细答案和论文哦!!!

    系统架构设计典型案例.pdf

    系统架构设计典型案例.pdf系统架构设计典型案例.pdf系统架构设计典型案例.pdf系统架构设计典型案例.pdf系统架构设计典型案例.pdf系统架构设计典型案例.pdf系统架构设计典型案例.pdf系统架构设计典型案例.pdf

    软考架构设计师 论文论文

    【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师论文案例分享【软考】架构设计师...

    股权架构设计案例-.zip

    文档中的《股权架构设计案例》详细展示了某一具体公司的股权设计过程。案例中可能包括以下内容: 1. 创始人股权分配:初期,创始人通常会持有较高的股权比例,以确保对公司的主导权。 2. 投资轮次调整:随着公司的...

    2020年系统架构设计师案例分析、论文真题及解析.zip

    2020年系统架构设计师案例分析、论文真题及解析

    系统架构设计师案例研究

    《系统架构设计师案例研究》是针对国家软考的一项专业教程,尤其适合准备参加系统架构设计师考试的人员。此教程以2009年的版本为基础,深入探讨了系统架构设计的关键概念、方法和技术,旨在帮助考生理解和掌握实际...

    架构设计之案例鉴赏

    提供一些软件架构设计的方案,供参考学习,有各种模式设计

    系统架构设计师历年案例真题及答案解析汇总.docx

    系统架构设计师历年案例真题及答案解析汇总.docx

    2011年下半年系统架构设计师 案例分析

    2011年下半年系统架构设计师 案例分析部分,由个人整理!

    系统架构师案例分析.rar

    《系统架构师案例分析》是针对软考的一项重要学习资源,主要涵盖了系统架构设计与实践的相关知识。在准备此类考试或提升自身技能时,深入理解并掌握这些案例分析至关重要。以下将从多个方面对系统架构师的角色、职责...

    逻辑架构和物理架构在架构设计中的应用

    在不同的架构设计方法中出现的软件架构视图种类很多,本文介绍最常用的两种架构视图——逻辑架构视图和物理架构视图,并通过具体案例的分析说明如何运用它们进行架构设计。当观察和描述事物大局的时候,逻辑架构和...

    软件系统架构图_参考案例.pdf

    在本文中,我们将通过一个共享平台架构图的介绍,来了解软件系统架构的设计思路和技术架构设计。 一、逻辑架构设计 逻辑架构图是软件系统架构图的核心部分,它主要突出子系统/模块间的业务关系。在这个架构图中,...

Global site tag (gtag.js) - Google Analytics