云计算的可伸缩性迫使App服务无状态化,互联网营销

  场景内容

  云计算因其软件上的按需付费模式而大获成功,它创造了一种伸缩性模型:

  • 如果有两个公司,它们正好在相反的时区里,白天都需要10台服务器,晚上减少到1台。那么一个云计算服务商需要11台服务器就能同时为这两个公司提供服务——在任何一个时间点,拿出10台给一家公司用,1台给另一家。
  • 如果这两家公司都使用自己的机器,他们每家都要买10台(总共20台)。其中9台机器会在夜里闲置。
  • 时区可不是来共享这些闲置资源的唯一理由:
    • 运算需求同样是一个很好的应用场景。有些公司会在圣诞节时需要很强的运算能力,而另外一些公司则是在财政年度结束时需要,等等。
    • 有些公司很可能是不能预知何时需要多少资源。例如slashdot效应。不管是哪种情况都是通过共享来让他人使用你的空闲资源。这就使按需付费成为可能。
  • 你可以把这种概念扩展到整个平台成本上——应用程序服务器,数据库和应用。

  

  关于伸缩性的最重要的一点就是——根据负载的情况,白天给公司提供服务的9台机器在夜间自动缩减到1台。而这一台之外的其它8台机器开始给其它公司提供服务。云计算的这种能够允许两个租户(或更多)共享业务处理能力的特性就叫做过程共享的多重租赁。

  那么为什么要无状态的系统架构呢?

  假设个场景,就说白天时间有1000个用户分布在10台机器上,每台机器大概服务100个用户。在一个有状态的系统结构中,每台机器都只为在本机登录并产生了会话(session)的那100个用户服务。这个由http负载均衡来实现,叫做会话粘连(session stickiness)。

  当夜间到来时,让我们假设有900个用户退出系统,其他的100个用户仍然在线。理想情况下,只需1台机器就可以为所有的这些人提供服务。然而,这100个用户可能会分布在所有的这10台机器上,每台10人。所以,缩减到一台机器是不可能的,这样一来,伸缩性就给限制了。

  解决这个问题的一个方法就是把10台机器的所有会话状态都复制到一起。这样一来,任何一台机器都可以为这些用户服务。但每台机器就会用掉10倍的内存来保留所有用户的会话状态。这些会降低服务器的可用性,因为一旦有更多的用户使用时,集群中就需要加入更多的服务器。当你共享多重租赁的应用中的租户突然暴增时,你就没法应付了。

  无状态化后情况会如何变化?

  在无状态的应用中,你可以在任何一个地方执行用户的请求——会话粘连(session stickness)不再是个问题。当用户从1000减到100后,你可以立即释放9台服务器,调给其它公司使用,只用1台为这100个用户服务。.

  这听起来很简单。而实际操作起来却不是那么容易。所有的应用都需要状态。如果应用服务器不去处理这些状态,你就必须想其它的办法。数据库就是一个明显的问题。当前的数据库已经在扩展问题上遇到了足够的麻烦了,再加上状态管理,那是绝对不可行的。所以NoSQL才要“分布式”存储。

  在PaaS服务商中你会看到这是一种常见的架构模式:

  • Google App Engine –无状态请求+ Big Table
  • Microsoft Azure –web角色+ Azure存储/SQL
  • 当然了,还有我们公司– OrangeScape,它是运行在GAE/Amazon EC2 之上的。
  • 我估计VMforce也是这样的– Spring stateless session beans + Force.com DB

  那就都云计算吧!有状态的应用+SQL数据库已成昨日黄花了。(抱歉!实在忍不住。)

  [英文出处]:

  Why does "Elastic" nature of cloud impose "statelessness" constraint on App servers?

时间: 2024-09-20 09:24:07

云计算的可伸缩性迫使App服务无状态化,互联网营销的相关文章

REST服务开发实战,互联网营销

REST介绍 如果要说什么是REST的话,那最好先从Web(万维网)说起. 什么是Web呢?读者可以查看维基百科的词条(http://zh.wikipedia.org/zh-cn/Web),具体的我就不多说了.总之,Web是我们在互联网上最常用的服务,甚至在某些人的心中,互联网就是Web.当然,Web只是互联网的一部分而已,只是大家用的最多而已,我们访问的所有网站都是基于Web. 那么,Web和REST之间究竟有什么关系呢?我们接下来将聊聊组成Web的几大基础技术,URI(统一资源标识符,用来标

分布式架构中的 无状态

状态化的判断是指两个来自相同发起者的请求在服务器端是否具备上下文关系.如果是状态化请求,那么服务器端一般都要保存请求的相关信息,每个请求可以默认地使用以前的请求信息.而无状态请求则不行,服务器端所能够处理的过程,他的处理信息必须全部来自于请求所携带的信息以及其他服务器端自身所保存的.并且可以被所有请求所使用的公共信息. 无状态的服务器程序,最著名的就是WEB服务器.状态化的服务器有更广阔的应用范围,比如MSN.网络游戏等服务器.他在服务端维护每个连接的状态信息,服务端在接收到每个连接的发送的请求

亚马逊云计算服务AWS今日发布无状态事件驱动计算服务Lambda

摘要: 亚马逊云计算服务AWS(Amazon Web Services)今日发布面向动态应用的无状态事件驱动计算服务Lambda,用户不再需要任何计算基础设施就可创建动态应用.从此程序员只需关心自己的代码就好 亚马逊云计算服务AWS(Amazon Web Services)今日发布面向动态应用的无状态事件驱动计算服务Lambda,用户不再需要任何计算基础设施就可创建动态应用.从此程序员只需关心自己的代码就好了. AWS为什么要造这么个东西出来呢?首先我们来看看什么是应用的根本. 应用最核心的是函

云计算助力软件服务商转型重塑服务价值

本文讲的是云计算助力软件服务商转型重塑服务价值作为国家重点发展的战略性新兴产业之一,软件和信息技术服务业在"十二五"期间步入了产业转型的关键阶段.以云计算为代表的创新技术的蓬勃发展,为这一产业领域培育出了诸多的产业增长点,同时也开始催生新的产业生态. 长久以来,软件服务产业面临着许多制约产业发展的瓶颈与挑战,这其中就包括服务价值被低估.行业竞争不够规范.服务能力分布不均.产业格局高度碎片化等问题.中软国际.东软.东华软件等领军企业很早便意识到这些问题对产业发展的负面影响,并开始积极思考

无状态服务(stateless service)

一.定义 无状态服务(stateless service)对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息 有状态服务(stateful service)则相反,它会在自身保存一些数据,先后的请求是有关联的 二.优劣 有状态服务常常用于实现事务(并不是唯一办法,下文有另外的方案).举一个常见的例子,在商城里购买一件商品.需要经过放入购物车.确认订单.付款等多个步骤.由于HTTP协议本身是

云计算蓬勃发展 CIO坦言对云安全无信心

本文讲的是云计算蓬勃发展 CIO坦言对云安全无信心,关注的下滑并不能说明云计算已经不再重要,而是人们开始更加理智地看待云计算.在ITValue社区针对CIO人群的一项调查中发现,有19%的企业已经在部署或应用云计算,28%的企业考虑近期部署云计算,53%的企业目前尚无部署云计算的时间表. 为什么仍有诸多CIO在云计算面前无动于衷?一位不愿透露姓名的CIO谈了他的观点,现有系统迁移到云计算上,其迁移成本.实施周期.技术成熟度和安全性,都是必须解决的问题.同时,他还担心花费大量预算和精力部署的云计算

IBM毛新生:云计算带我们进入新的服务经济时代

在毛新生眼中,"云计算"并不算是一种新的技术,而是"一种新的IT资源使用模式.一种新的业务形态.以及一种新的服务经济模式." 云计算到底是什么?自从这个词诞生以来,我们所听到的更多的是对它的描述,但至今还没有一个确切的可以放在教科书上的定义.在IBM杰出工程师.IBM开发中心首席技术官.IBM新技术研发中心总经理毛新生眼中,"云计算"并不算是一种新的技术,而是"一种新的IT资源使用模式.一种新的业务形态.以及一种新的服务经济模式.&qu

这个知识点不错,,学习一下先。。。无状态服务(stateless service)(转)

这样的应用,显得高级一些哟~~:) +================== http://kyfxbl.iteye.com/blog/1831869 ========================== 一.定义  无状态服务(stateless service)对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息  有状态服务(stateful service)则相反,它会在自身保存一些数

Win7系统添加打印机无Print Spooler服务无注册表解决方法

  Win7系统添加打印机无Print Spooler服务无注册表解决方法.win764位系统刚装几天发现笔记本无法安装虚拟打印机,因为我经常使用PDF打印,比如cutePDF打印机.开始搜索各种经验,发现都无法解决问题, 总有各种疏漏,在此总结一下,供自己回顾,同时希望能惠及他人. 方法/步骤 问题描述,在设备与打印机中"添加打印机"时提示Windows无法添加打印机,后台相关服务没有运行. 通过百度知晓,原因可能是服务printer spooler没有运行.此时去查看该项服务.具体