Above the Clouds: A Berkeley View of Cloud

来源:互联网 发布:生产者消费者模式 php 编辑:程序博客网 时间:2024/04/24 18:23

       云端之上——Berkeley 对云计算的看法
——UC Berkeley 可靠自适应分布式系统实验室(http://radlab.cs.berkeley.edu

---云计算是个前沿东西,带来了相应的挑战和机遇,对于一个计算机的人来说,虽然技术不是重点,但是趋势和方向是火种,点亮未来。

1.What is Cloud Computing

       1.1定义

                  指通过互联网以服务方式提供的应用程序,也包括在数据中心中用来提供这些服务的硬件和软件

       1.2分类:

                 1.2.1公共云

                    定义:云以现有付费方式提供给一般公众   

                    举例:亚马逊Web服务、Google App Engine、Azure

                 1.2.2私有云

                    定义:那些商业企业或其他组织的不对公众开放的内部数据中心

      1.3类比

                没有生产线的芯片公司也可设计销售芯片-->云计算使得不用建造或提供数据中心也能部署SaaS      

      1.4创新(硬件角度)--吸引SaaS提供商

                 看似无限、可以按需获取的计算资源,使得用户不需提前进行计划

                 不需要云用户事先的投入,允许公司从小规模开始,当需要增加时才增加硬件资源

                 能够以很短的时间基础进行计算资源的计费(例如处理器按照小时、存储空间按天计),同时能够按需释放这些计算资源,这样能够释放空闲机器和存储以节省费用

      1.5对云计算厂商的吸引

                  赚大钱(数据中心建立的规模经济)

                  利用现有投资(在现有基础设施平台上可以十分方便的增加新的云计算服务,从而获利)

                  保护领地(随着传统服务器和企业应用开始使用云计算,在这些应用上占据优势的提供商就有动力提供云选择来保护自己的用户群)

                  阻止后来者(一个拥有必要数据中心和软件资源的公司可能会建立一个滩头征地,来防止强有力的竞争对手出现)

                  提升客户关系(通过云计算类服务为客户提供一个可升级途径,确保双方在客户关系上的投资)

                  成为一个平台(eg:facebook):在平台之上,方便各类应用的开发和部署,持久的生命力和盈利机会

2.Why Cloud Computing Now?

       2.1新的技术潮流和商业模式

                   转变:Web 2.0;高接触、高利润、高承诺-->低接触、低利润、低承诺

                   趋势:出售在硬件级别的虚拟机使用周期,使得用户在共享硬件资源之上选择自己的软件栈,互不干扰

       2.2新应用的机遇

                   移动交互式应用程序:未来属于那些对用户或者非人传感器提供的信息实时反馈的服务;高可用性;依赖大型数据中心的大规模数据组;两个和两个以上数据源的服务。

                   并行处理:快速的批处理执行和海量数据分析;使用云服务的成本,和快速处理带来的时间效益。

                   分析的崛起:商业分析:理解用户行为、供应链、购买习惯、排名等。

                   计算密集型的桌面应用程序:桌面的很多应用程序(eg:Matlab)需要大量计算能力,可以将其数据获取和处理过程放入云中,同时依靠足够带宽,节省时间。

                   “太阳系”应用:一些应用是运用云计算弹性和并行优势的候选但是由于:数据迁移成本、进出云的时延成为其限制(eg:股票计算)。期待于网络传输成本的下降enable这些应用迁移到云中。

3.公有计算的分类

       3.1分类基础

                 (呈现给编程者的)抽象层次和资源管理层次:从应用角度出发:计算模型、存储模型、通信(网络)模型(即使应用可能不是分布式的);资源虚拟化。

       3.2类别

                   ①一种极端(eg:EC2)
                       概述:像物理硬件一样;用户全权控制在内核之上的整个软件栈;暴露的API少
                       计算模型:在Xen虚拟机上的X86架构(ISA);弹性计算利于扩展,但开发者需要预先架构或采用第三方架构
                       存储模型:块存储(EBS)-->加强的键/块存储;自动收缩:没有/共享/全自动;一致性策略:取决于具体模型;APIs:多样化,标准化的+私有的
                       网络模型:公开的IP层拓扑;内部机制隐藏。安全机制:可以限制节点间通信。独立网络中的失败信息存储在公共区域。动态IP。
                 ②中间(eg:MS Azure)
                      概述:介于系统灵活和方便程序员使用的一个折中方案;用户可以选择语言,但是不能底层操作环境或运行时环境
                      计算模型:微软CLR虚拟机;在环境中运行的通用中间层格式。服务器功能公开描述。
                      存储模型:提供SQL数据服务。Azure存储服务。
                      网络模型:基于用户对应用组件描述的自动化机制
                 ③另一种极端(eg:eg:Google AppEngine)
                      概述:专门针对Web应用,需要应用将无状态计算和有状态存储分开;基于询问/应答模式;自动缩放;高可用性
                      计算模型:预先定义好的应用结构和框架;开发者提供的句柄使用pathon编写,永久存储在Megastore中。自动化的计算和存储分配;网络和服务器故障恢复机制。
                      存储模型:MegaStore/BigTable
                      网络模型:固定的拓扑以适应3层的Web应用结构。自动的增加和减少,并对编程者透明。

4.Cloud Computing Economics

        4.1表面现象

                云计算带来的细粒度经济模式,便于做出决策;云提供的弹性,尤其是服务,可以用来转移风险。
                虽然各种硬件费用在下降,但是下降的水平不同。例如计算和存储的费用比wan建设的费用下降慢。
                在决定是否将服务移到云中时,需要考虑资源的平均利用率和峰值,特别是在峰值不稳定的情况下,这有利于进行实际物理设备的购买,或者对不同云服务的购买。

        4.2带来的影响

                ①Elasticity(弹性):转移风险
                      弹性:云计算可以在短时间内实现资源的增添和移除。在现实中,进行数据中心建设时,通常服务器的利用率为5%-20%,但是在高峰值的时候,却往往不够用。
                      计算公式:公式:用户小时数(云)X (收入 – 成本(云))>=用户小时数(数据中心)X (收入 –成本(数据中心)/ 使用率)
                      转移风险有:期望之外的规模下降,计算和存储能力空余;硬件成本的下降,新的硬件和软件的产生。
                ②费用对比Compare:should move?
                      分开计费:Pay-as-you-Go;不同应用对资源需求不同;云计算中可以对资源进行分开的周期性计费。
                      供电、冷却和物理设备费用:不用云计算,自己建立数据中心,在计算成本时候需要考虑:电费、散热费用和建筑成本。
                      运行费用:硬件操作(维护类:重启、修复=)费用转移到云计算提供商;软件的维护费用(升级、维护)转移到云计算提供商。

5.10 Obstacles and Opportunities

                
                ①服务可用性
                     问题:单个资源失败-->解决方案:(从在多个地方建立数据备份得到启发)采用不同公司提供的独立软件栈
                     问题:DDOS(在SaaS中,通过租用肉机对提供商发动攻击,使得服务不可用)-->解决方案:云计算可以抵御:弹性,快速的增加规模(计算和存储能力)
                ②数据锁定(Look-in)
                     问题描述:不同云提供的API不同,数据难以迁移,虽然用户锁定对云计算提供商有力,但是使得用户在持续性和费用方面显得十分脆弱
                     解决方案:标准化的APIs,利于服务和数据在多个云计算提供商之间流通
                     解决方案中新的疑虑:疑虑:用户的选择性,导致云计算提供商之间竞争变强,展开价格战,减少利润
                     针对新的疑虑:1.价格低可以是优势,但也要考虑其他特性,例如安全性和质量=
                                                 2.标准化的APIs带来全新的云使用模式,同样的软件架构可以在不同类的云中使用。涌现计算:私有云中无法解决的问题,可以放一部分到公有云中帮助解决。
                 ③数据保密和审核(Confidentiality and Auditability)
                     问题描述:很多数据需要进行保密,但目前的云服务都是在公共网络中,将系统暴露给更多的攻击;也需要对数据进行审计,敏感信息过滤
                     解决方案:加密的存储;虚拟区域网络、网络中间件(保密)和在虚拟OS上加一层逻辑,提供安全性(审计)
                 ④数据传输瓶颈
                     问题描述:应用程序越来越依赖于大量数据传输,同时不同云之间云的传输,这些都会增加数据传输的成本和复杂性
                     解决方案:采用拷盘方式。将数据存在云内部,不仅利于数据传输,还利于新服务的开展。减少WAN带宽费用(WAN上的费用,三分之二都花在高端路由器上,三分之一在光纤上)。
                 ⑤性能的不可预测性
                     问题1描述:内存和硬盘的读取速度波动问题
                     问题1解决:改进架构和操作系统来改进虚拟终端和I/O通道的效率;增加闪存来减少I/O冲突(interference)。
                     问题2描述:虚拟机对批处理程序的调度;通过云计算的批处理,虽然花费资金,但可以节省时间,以便开展别的业务
                     问题2解决:并行计算;MPI(message-passing interface);成组调度。
                 ⑥规模化的存储
                     问题描述:云计算给用户呈现的是短时间有用(可随时伸缩)、不需预先投入、无限容量以满足需求
                     问题解决:丰富的存储和访问APIs。存储系统直接支持的复杂数据结构。性能保证。

                  ⑦大规模分布式系统的Bug

                     问题描述:如何清除这些分布式的bugs;这些不能够在较小范围内复制,因此调试只能在大型产品数据中心完成
                     问题解决:虚拟机

                  ⑧快速可伸缩性
                     问题描述:存储和网络计费一样,数比特;计算能力使用的计费有所不同,取决于虚拟化的水平(eg:Google AppEngine可以精确到周期,而AWS可以是按小时)
                     问题解决:在不违反服务水平协议的基础上,根据负载情况,进行快速的伸缩以节约成本。将资源快速转换为money:空闲的电脑消耗资源为繁忙的2/3,减少资源消耗。
                  ⑨信誉共享

                    问题描述:单个用户的恶意行为,可能导致整个云的用户受到影响。
                                        法律责任的转移,云计算提供商希望法律责任在客户方,而不在己方。
                  十.软件注册

                     问题描述:当前的软件注册严格限制了运行软件的计算机;用户通常会为软件及其维护付费。商业软件的授权模式不适合云计算
                     问题解决:采用开源软件。商业软件公司转变他们的授权方式来更好的适应云计算。

                     问题描述:鼓励软件公司将软件销售到云计算,即付即用不太符合一次性购买的季度销售业绩追踪
                     问题解决:提供可以折扣出售批量使用的预付计划