`
youfengkai
  • 浏览: 25819 次
  • 性别: 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这种方式更为适合业务数据具有较强关联性且数据增长可预期的企业。

分享到:
评论

相关推荐

    BWFS Scale-out NAS介绍

    统一的SAN存储系统既支持横向扩展(Scale-out)提高存储IO性能,又支持纵向扩展(Scale-up)提高存储容量;二者通过BWFS提供存储虚拟化和统一的命名空间。因此,SONG可以提供高性能、可扩展的文件共享服务,并支持多...

    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...

    究竟啥才是互联网架构“高并发”

    提高系统并发能力的方式,方法论上主要有两种:垂直扩展(Scale Up)与水平扩展(Scale Out)。前者垂直扩展可以通过提升单机硬件性能,或者提升单机架构性能,来提高并发性,但单机性能总是有极限的,互联网分布式...

    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 ...

    Large-Scale Software Architecture.pdf

    12.1 Bottom-Up Architecture Development 227 12.2 Top-Down Architecture Development 229 Contents ix 12.3 Message Protocol and Interface Development 231 12.4 Reengineering Existing Systems 233 12.5 ...

    android动画切换效果

    overridePendingTransition(R.anim.push_up_in,R.anim.push_up_out); 左右交错效果 overridePendingTransition(R.anim.slide_left,R.anim.slide_right); 放大淡出效果 overridePendingTransition(R.anim.wave_scale,...

    kibana-6.3.2-amd64.deb

    一方面可以通过升级硬件来完成系统扩展,称为垂直或向上扩展(Vertical Scale/Scaling Up)。 另一方面,增加更多的服务器来完成系统扩展,称为水平扩展或者向外扩展(Horizontal Scale/Scaling Out)。尽管ES能够...

    activity跳转华丽的过渡效果

    overridePendingTransition(R.anim.push_up_in,R.anim.push_up_out); 左右交错效果 overridePendingTransition(R.anim.slide_left,R.anim.slide_right); 放大淡出效果 overridePendingTransition(R.anim.wave_scale,...

    ap6212a0_a33_sc3817r_服务器验证通过_bt已经通了_wifi需要修改配置_需要再次验证_20170626_1549.7z

    # device/softwinner/polaris-common/rild/ip-up:system/etc/ppp/ip-up \ # device/softwinner/polaris-common/rild/3g_dongle.cfg:system/etc/3g_dongle.cfg \ # device/softwinner/polaris-common/rild/usb_mode...

    Hadoop.in.Practice.2nd.Edition

    Chapter 5: Moving data into and out of Hadoop Part 3: Big data patterns Chapter 6: Applying MapReduce patterns to big data Chapter 7: Utilizing data structures and algorithms at scale Chapter 8: ...

    akka in action

    Perfect for high-volume applications that need to scale rapidly, Akka is an efficient foundation for event-driven systems that want to scale elastically up and out on demand, both on multi-core ...

    大数据数据存储技术.pdf

    如标签是多 对多关系,按传统要求必须去掉冗余 缺乏对非结构化数据处理能力 – 如图片、视频、音频 扩展性差 – 向上扩展scale up,硬件升级,提高速度 – 向外扩展scale out,重新划分,分散存储 新兴数据存储系统 ...

    MySQL性能调优与架构设计-架构篇

    架构篇(1)读书笔记1.Scale(扩展):从数据库来看,就是让数据库能够提供更强的服务能力ScaleOut:是通过增加处理节点的方式来提高整体处理能力ScaleUp:是通过增加当前处理节点的处理能力来提高整体的处理能力2....

    Deployment with Docker: Apply continuous integration models, deploy applications

    What you will learnSet up a working development environment and create a simple web service to demonstrate the basicsLearn how to make your service more usable by adding a database and an app server ...

    PostgreSQL.for.Data.Architects.1783288604

    After this, you'll learn how to set up replication, use load balancing to scale horizontally, and troubleshoot errors. Finally, you will get acquainted with useful tools available in the PostgreSQL ...

    Beginning.Amazon.Web.Services.with.Node.js.1484206541

    If leveraged properly, you can build a Node.js app on AWS which can automatically power itself up to handle a massive volume of traffic, and then scale back down to a lighter configuration when user ...

    user model linux.doc。该文件是The UML Book的电子版,是word版本。

     Setting up User Mode Linux servers, step-by-step: small-scale and large-scale examples  The future of virtualization and User Mode Linux Whether you're a netadmin, sysadmin, teacher, student, ...

    Chef: Powerful Infrastructure Automation

    You will be brought up to speed with what's new in Chef and how to set up your own Chef infrastructure for individuals, or small or large teams. You will learn to use the basic Chef command-line ...

    viewpager图片滚动缩放

    case MotionEvent.ACTION_POINTER_UP: mode = NONE; Log.d(TAG, "mode=NONE" ); break; //设置多点触摸模式 case MotionEvent.ACTION_POINTER_DOWN: oldDist = spacing(event); Log.d(TAG, "oldDist=" + oldDist); ...

Global site tag (gtag.js) - Google Analytics