`
youfengkai
  • 浏览: 26841 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

转载: Scale OUT还是Scale UP?

 
阅读更多

Scale OUT还是Scale UP? 

zz:http://samyu.blog.51cto.com/344284/169764

做web2.0网站,一个普遍的感觉就是计划不如变化。在吸引风险投资的时候,我们可以做出种种规划,在某某年吸引多少多少用户,PV/UV达到多少,我 们都期待用户量的快速增长,因为互联网的普遍模式还是先圈用户,但增长还是不增长,增长多少往往是无法事先预计的。在这种情况下,配置多少存储和运算能 力,在什么时候增加存储和运算能力是个考验人的问题。存储和运算能力的闲置,浪费金钱,但存储和运算能力不够,网站垮掉也是我们所不愿意看到的。云计算的 概念吹了很久,在中国还是看不到影子。作为技术人员,当然是期望有云计算平台的出现(其实很多web2.0网站也没什么多么核心的数据资产那么令人担 心),按需购置存储和计算能力就好,不要老深更半夜的往机房里面跑。但现实是在中国,我们还需要自己购置存储设备、服务器和带宽,自己去维护。

  从企业IT架构体系上来看,对于web2.0网站来说,必须考虑的就是可扩展性:随着使用人数的增多,能够及时的扩展IT系统的能力。解决这个问题,通常 有两种解决方式:Scale up和Scale out,两种扩容的方式分别从两个维度来解决数据库压力。所谓Scale up就是向上扩容,Scale out就是平面型的扩容。纵向的扩容就是将DB Server的配置提高,增加硬件配置,通过硬件速度提升来解决访问压力,横向扩容就是将应用的数据拆分,将原来集中存储的数据根据一定的规则分布到不同 的物理数据库服务器上。Up模式实施成本较高,大到一定压力之后,硬件可能无法满足这类需求。从web2.0网站来看,如果能够通过叠加相对廉价设备的方 式实现存储和计算能力的扩展,是长期可扩展的有效手段,这点是Scale out所带来的优势。

  对网络存储来说,共享存储是必须的。无论数据块或文件、本地化或远程,都不希望停留在单处理环境中。数据中心需要全新的服务,不只是关于服务器、存储或网 络产品的,而是关于建立系统的应用和基础架构资源,企业建立的系统要能够轻松适应未来的需求。目前来看,在存储领域采用Scale out的方式是一种比较流行的模式,很多公司也推出了相应的产品和服务。在最近IBM公司发布了一款全新的、可高度扩展的磁盘存储系统,该系统技术来自 IBM公司在今年一月份收购的XiV公司,旨在应对如今的多种复合信息,这些信息来自从Web 2.0到金融服务等传统应用。由XiV公司技术开发而来的这一全新企业级磁盘产品,展现了一种独特的基于网格的存储架构,可以更加轻松地管理,并可实现更 好的性能扩展,配有自调整/恢复及自动精简配置功能,能够帮助降低信息存储的成本和复杂性,同时支持现在动态工作负载下对数据进行持续快速访问的要求。根 据IBM公司的介绍,XiV系统基于SATA磁盘,运用了一种独特的并行架构及缓存算法,不但消除了热点,其性能水平也远远超出那些基于FC的磁盘系统。 此外,IBM发布的扩展文件服务(SOFS, scale out file services)能够帮助企业快速实现高度可扩展的全球化集群NAS系统,从而能够帮助缓解当前的数据存储挑战,尤其是当前存储网络带宽不足给企业所带 来的困扰。

  国外很多web2.0的网站通过Scale out的方式,比如Flickr和digg,解决了平稳服务下的计算能力扩展的问题。Flickr网站通过Shards这种模式,利用众多的价格低廉数据 库服务器横向分布信息,在每天处理亿级的事务情况下响应时间还是很快,同时在信息不断膨胀的情况下扩展的成本很低,扩展对于网站的影响基本没有。 Shards含义是碎片,在这里的意思是将应用的数据横向拆分,也就是说如果有几千万的用户信息,那么这些用户信息可以被分布在多个数据库服务器上,这种 分组分布数据到不同的数据库服务器上,横向切分数据块就叫做Shards。Digg的处理方式也蛮有意思,它把主要的用户访问量大的数据与其他的用户访问 量小的数据做sharding,对于那些访问量大的“热”数据用更好的硬件,提供更好的服务体验,而其他的数据尽管访问速度稍慢一点,对用户来说,影响也 很小。

  不过另外一方面,Scale out这种方式策略的制定复杂度以及维护成本要高于Scale up。采用Scale out这种方式,首先需要解决复杂的分布式计算的问题(相对来说Scale Up方案不需要考虑这个问题),这对于很多国内的web2.0网站的技术人员来说,是一个巨大的技术门槛;另外,Scale Out方案还需要对原先的软件进行大量的重写工作,以保证系统能在分布式服务器上运行(Scale Up方案则对现有软件几乎没有改动要求);还有就是Scale Out方案始终面临着数据集中的问题,即拆分过的数据在服务器逻辑体系中仍然是各自相对集中的而非无限随意拆分。

  对于分布式计算的技术问题,国外有一些开源的项目,我们可以借鉴,在一定程度上可以去努力解决。与此同时,我们还需要考虑到我们自身网站的数据的特点。像 联机游戏、IM、BSP这些数据,通常每个用户都可以抽象成一个数据对象,可以独立存储在任何一个地方,数据之间关联度不大,这种情况比较适合采用 Scale Out的方式。但对于另外一些数据,比如电子商务网站的买卖信息,它们之间的关联度大,这时候往往查询需要耗费很多的资源;还有一些事物型的应用,保证数 据的完整性是更为重要的,在这个时候,采用Scale Out的方式不一定适合。从整体上看,采用Scale out的方式是web2.0网站的主流,适应了网站数据不断且不太好预计增长的主要需求,而Scale up这种方式更为适合业务数据具有较强关联性且数据增长可预期的企业。

分享到:
评论

相关推荐

    01-高并发系统:它的通用设计方法是什么?_For_group_share1

    在选择Scale-up还是Scale-out时,需要综合考虑系统的当前规模、预期增长、成本效益和未来可扩展性。在初期,Scale-up可能更具成本效益且实施简单,但当并发量持续增长时,Scale-out成为必然选择。而缓存则是两者之外...

    SAP HANA System Replication Scale-Up - Performance Optimized Scenario

    SAP HANA系统复制有两种模式,即Scale-Out(横向扩展)和Scale-Up(纵向扩展)。Scale-Up是指在同一台服务器上增加硬件资源来增强性能和可靠性,而Scale-Out则是通过增加更多服务器来实现相同的目的。 本文档主要...

    MYSQL_架构设计

    Scale Out是通过增加处理节点来提升整体处理能力,而Scale Up则是在现有节点上提升硬件配置。Scalability衡量的是系统扩展处理能力的难易程度和成本。 **Scale Out vs. Scale Up** **Scale Out(横向扩展)**的...

    large scale machine learning with spark

    value applications at scale with ease and a personalized design, Book Description, Scaling out and deploying algorithms, interactions, and clustering are crucial steps in the process of optimizing any...

    HTML5 SVG多彩三角形矩阵动画特效

    animation: scale-up 2s ease-in-out infinite; } ``` 在这个例子中,`.triangle`类的每个元素将执行`scale-up`动画,三角形的大小会在1秒内从1倍放大到1.2倍,然后再在1秒内恢复原状,整个过程无限循环。 除了...

    阿里P9纯手打亿级高并发系统设计手册1.pdf

    Scale-up和Scale-out是两种不同的思路,Scale-up是通过购买性能更好的硬件来提升系统的并发处理能力,而Scale-out是通过将多个低性能的机器组成一个分布式集群来共同抵御高并发流量的冲击。 缓存是高并发系统设计...

    纯css3制作的动画效果

    animation: scaleUp 1s ease-in-out forwards; } @keyframes scaleUp { 0% { transform: scale(0); } 100% { transform: scale(1.2); } } ``` 这里的动画将元素从无到有地放大至1.2倍原大小,并在动画结束...

    Large Scale Machine Learning with Spark

    Spark is capable of handling large-scale batch and streaming data to figure out when to cache data in memory and processing them up to 100 times faster than Hadoop-based MapReduce.This means ...

    阿里分布式数据库实践

    - **理想状态**:结合Scaleout和Scaleup的方式,既具备横向扩展的能力,又尽可能提高单机的利用率,但同时避免过度设计。 #### DRDS功能特性 - **分布式MySQL执行引擎**:提供对MySQL 5.5版本的复杂查询支持,...

    高并发系统设计.pdf

    首先,我们需要理解两种扩展策略:Scale-up和Scale-out。Scale-up,即纵向扩展,是指通过提升单个服务器的硬件配置,如增加CPU核心数或内存容量,来增强其处理能力。这种方法在系统初期或者并发量相对较小的情况下...

    大规模网站架构.ppt

    最后,扩展性有两种主要方式:Scale Out和Scale Up。Scale Out是横向扩展,通过增加廉价设备来分摊负载,适合Web 2.0网站等对扩展性需求高的场景。而Scale Up是纵向扩展,通过升级单个设备的硬件能力来提升性能,这...

    经典大规模网站架构.ppt

    扩展性有两种主要方式:Scale Out和Scale Up。Scale Out通过增加更多廉价设备实现横向扩展,适合大型网站的需求;而Scale Up则是升级现有设备,提升单台服务器性能,更适用于传统应用。在选择扩展策略时,需要考虑...

    SAA-CO1.462Q.AWS-SAA(英).pdf

    Use Reserved Instances to ensure the system has reserved the right amount of capacity for the scale-up events. D. Permanently keep a steady state of instances that is needed at 9:00 AM to guarantee ...

    大规模网站架构培训资料

    扩展性有两种主要方式:Scale Out(横向扩展)和Scale Up(纵向扩展)。Scale Out是通过添加更多相对廉价的设备来提高处理能力,而Scale Up则是通过升级现有设备的硬件配置。前者更适用于web 2.0网站,后者更适合于...

    智能网络打造数据库平台高速路.pptx

    Scale-Up**:传统的Scale-Up策略是通过升级单一系统的组件来提升性能,而Scale-Out则是通过添加更多的系统节点来扩展能力。Scale-Out的优势在于能够提供持续可用性,适合关键业务应用,并且随着节点的增加,性能会...

    杨海朝_基于MySQL可扩展架构设计_更新

    1. **Scale-up vs Scale-out**:Scale-up指的是通过增强单台服务器的能力来提高系统的处理能力;而Scale-out则是通过增加更多的服务器来分散负载,提高系统的整体处理能力。 2. **后期改造成本高**:如果一开始没有...

    如何正确的做技术选型:论团队中新技术导入的重要性.pdf

    - Scale Up:通过增加单个服务器的硬件资源来提升性能。例如,早期的LINE在2011年采用的“低版本”策略,通过扩展单一MySQL服务器解决性能问题。 - Scale Out:通过增加服务器数量,分布式处理任务,提高系统能力...

    P9纯手打亿级高并发系统设计手册.pdf

    Scale-up 是一种提升系统性能的方法,通过购买性能更好的硬件来提升系统的并发处理能力。例如,目前系统 4 核 4G 每秒可以处理 200 次请求,那么如果要处理 400 次请求呢?很简单,我们把机器的硬件提升到 8 核 8G...

    基于Kubernetes的DevOps实践之路.pptx

    * K8s 调整中的 0 宕机:Cluster Scale-up、Scale-down、计划中的 Node 维护、非计划的 Node 宕机 六、配置改造 * 资源限制:Pod 的资源限制、应用本身也需要资源限制 * requests/limits * 跨 Node 的 HA * Out Of...

Global site tag (gtag.js) - Google Analytics