1、云计算概述
云计算进入人们的视野已经六年了,但至今还没有太多的进展。过去三年间,云计算似乎已经成为现实,然而随之而来的仍然有大量的纷扰与担心,使人们感觉这就像一场新的市场宣传:
华尔街日报(2008年9月26日)称:“云计算最有趣的事情是我们将所做过的所有工作重新包装并命名为云计算,我看不出云计算光环下我们到底做了什么,除了改变一些广告的措辞。”
为了回答上述质疑,我们以不同行业的事例——半导体制造业——帮助我们理解相似的行业动态。半导体制造业过去是每一家企业都拥有自己的制造厂,当时因为设计与制造总是紧密结合在一起。按照摩尔定律,半导体的集成度不断提高,同时新技术的资本支出呈指数级增长,这一现状导致半导体产业链发生变革,半导体企业分为不具有制造能力的设计公司与专门制造的代工厂。目前仅有英特尔和三星两家企业仍然采用设计与制造一体的形式了。
推动半导体行业变革的是开发新技术的高昂资本支出。类似的情况正发生在计算领域,新计算技术的高昂成本是推动采用云计算的根本原因。
1.1 云计算分类
目前存在大量的术语用来描述云计算,让我们透过现象看本质,明了它们不同的含义。首先是SaaS(软件即服务),Saas作为云计算的一部分,忽略了硬件与位置独立性。另一个术语是工具计算或网格计算,通常用来描写租用一个远程的、可能虚拟的服务器,却忽略了软件。
简单的说,云计算是SaaS与工具计算的结合,也是软件提供商与硬件提供商的结合。如果这种结合发生在一个企业内部,云就位于企业的数据中心,这样的云称为“私有云”;否则就称为“公有云”。它们采用相同的技术,但涉及数据安全与法律问题,两者存在巨大的差异,将对云计算的产生重大影响。
1.2 云计算企业
目前已经有一些重量级选手提供云计算服务,主要在于互联网服务领域。显然,这些企业本身具有巨大的计算资源,并且本来以接近云计算的方式部署与管理。也就是说,这些企业不需要做多大改变就可以向用户提供软件与硬件服务。他们是:
- IBM “Blue Cloud”
- Google “Apps engine”
- Amazon “Web service”
- Microsoft “Azure”
- Salesforce.com
1.3 云计算的成本优势
如上所述,与传统服务器安装模式相比,成本显然是云计算的主要推动因素。为了更好的理解成本的含义,下文通过应用实例加以解释。
云计算的一个主要特点是动态配置计算资源以免投入不足或投入过度,以及加速服务面市时间,它们正是传统服务器安装中成本构成的主要部分。云计算通过对大规模的远程计算资源按照统计规律进行动态配置得以实现成本的最优化。
值得注意的是,服务器安装过多或不足都将影响资本支出,不仅是硬件,不能充分应用的软件授权也带来额外支出。为应用程序分配过多的计算资源更是直接增加了成本。经济学家杂志(2008年10月)发表的企业IT专题报道中,明确指出这是影响服务器平均使用率的主要因素。
服务器安装不足对成本的影响就是间接的,因为潜在用户没有得到服务而使应用的市场份额降低。一个典型的例子是北京奥运会互联网订票系统因为负载过重而临时关闭所带来的不利影响。
除了直接成本的考虑,云计算还可以提高大规模服务器安装的成本有效性。因为安装服务器并使之投入运营的时间缩短,云计算可以显著的改善服务面世时间并间接降低成本。另外,有些应用只运行一小段时间,却需要配置大量计算资源。
云计算对于成本降低的潜力不仅针对资本支出,它也能在运营费用上降低成本。例如应用如果具有极多的负载变量,那么云计算可以在不增加电源功耗的情况下,使服务合同按照每用户每次应用收费,其时间间隔可以小于一小时。
总之,云计算将资本支出转变为运营支出从而降低总体成本。
2、云计算结构
2.1 要求
为了使云计算实现成本收益,需要考虑几点要求。由于企业提供的服务不同,这些要求达到的水平也有所不同。云计算的要求如下:
-
抽象化
云计算架构的抽象化要求硬件与软件解耦,这是保证云计算成功的一个重要因素,相见本文2.3节。 -
可用性
可用性是一个重要要求,云计算的宕机可能被公众看作一个核心事故,它通常用服务的运行时间与停运时间之比来描述。 -
灵活性
灵活性描述了云计算在短时期的动态变化,其运算能力可以提高也可以降低,可以按照需求释放资源。 -
易维护
云计算需要方便维护以保证其连续运行。 -
可计量
运行业务的资源可计量,这是服务计费的前提,它不仅适用于计算,也适用于存储与网络。 -
多租期
允许不同企业的多个用户使用一个应用,用户之间的信息受到保护,用户之间的协作数据得以整合。 -
位置独立性
云计算的服务与具体提供服务的位置无关,当云增长时服务规模得以扩大,同时,云计算可以大大减小灾难性故障的影响。 -
快速部署
云计算平台可以快速部署应用,加快服务面世时间。 -
可扩展性
云计算的规模可以快速扩展。 -
安全性
安全性主要指信息安全,包括保密和数据完整。保密指数据发布的受控,数据完整指经授权的访问与数据修改。
2.1.1 局限性
在大型服务器安装中并非一切问题都能通过云计算解决,对某些应用而言,目前还没有云计算解决方案,例如实时应用与流媒体。
2.2 分层结构
云计算架构通常分为三层,即基础层、平台层与应用层。
ATCA-1.jpg" />
由于云计算服务具有很大差异,分层结构有助于我们理解云提供商到底提供了什么服务。例如,Amazon服务就可以看作基本的基础服务,让用户访问虚拟机,实现灵活性。而Google AppEngine则实现了可扩展性和高可用性。
因此,我们可以用基础即服务(IaaS)和平台即服务(PaaS)准确定义云计算不同层次的服务类型。
2.3 基础层
2.3.1 计算资源
今天的计算资源通常基于X86硬件,机架式服务器或刀片服务器。采用何种架构主要从商业利益考虑,而与云计算架构无关。云通常由一个或几个服务器集群组成,在可用性和地理分布上具有优势。
2.3.2 存储
云计算的存储分为结构化存储和非结构化存储,本文中的结构化存储基于分布式数据,它或者是一个商业产品,或者是一个专用项目,如Google BigTable。非结构化存储通常指分布式文件系统,可以是开放的或私有的,数量多得不可胜数。存储可以是本地的,或是通过SAN访问。集成了分布式文件系统的本地存储的缺点是访问时间长,但具有规模大、成本低的优势。
云计算的存储是实现可扩展性与可用性的一个关键因素与难点。
2.3.3 网络
网络也是云计算的一个组成部分,其关键要求是连接、隔离与带宽。
连接包括内部连接,如云计算的虚拟机之间,还包括外部连接,如互联网。对于内部连接,VLAN技术通常用于云之间的隔离,而外部网络的访问则通过NAT或具有公共IP地址的主节点实现。
云内部带宽对整个网络性能的影响远远大于外部网络带宽的影响。因此,存储的访问时间就会通过内部网络传导到整个网络上,存储的实现方式就成为影响性能的关键因素。同时,节点之间的流量复用也会对网络性能造成巨大影响。
事实上,计算机集群往往在地理上是邻近的,但当云计算要求更大规模时,就需要云的结构化,这可以方便管理并采用简便办法处理网络故障。
值得注意的是,外部网络流量会带来额外成本,而计算与存储资源的分配则必须严格控制。
2.4 平台层
云计算架构的第二层是平台层,它包含了基础层以及操作系统、虚拟化、中间件和网络。
2.4.1 虚拟化
上面我们已经讨论了大量底层要求,下面进入云计算的中心部分。虚拟化是云计算的核心部分,它将硬件抽象化,采用统一的虚拟机作为应用软件接口,通过代理实现系统维护,生成必要的隔离,并支持对代码的诊断。
虚拟化还支持可扩展性,由于虚拟机是现有硬件性能的一部分,实现了云的精细管理。
虚拟化通常针对服务器,工具包括VMware、Xen、Microsoft、Linux KVM等。应该记住Java也是基于虚拟化的,同样用于云计算,例如Google AppEngine。
虚拟化要求分为三部分,即指令集虚拟化、内存虚拟化和I/O虚拟化。前两项要求在X86结构下已经完全实现了。I/O虚拟化对于网络和存储是不同的。过去采用代理在软件实现以太网关,将NIC设备抽象到虚拟机。现在采用PCI-SIG组织定义的I/O虚拟化方法,网络接口设备支持多个DMA虚拟机。
对于存储虚拟化,分布式文件系统是一个选择,光纤通道支持虚拟化是另一个选择,即光纤通道-虚拟接口架构。将FCoE与现有以太网架构结合,这是一个成本更低、扩展性更强的解决方案。
2.4.2 中间件
平台层的云计算中间件处理各种各样的任务,例如应用部署的简化与自动化、分配不同计算资源、管理网络与计算资源。
当云计算用于互联网应用时,通常提到Google MapReduce算法,集成到Google服务中,也包含到开源项目Hadoop中。简言之,它包含一个主人和多个工人,以虚拟机的方式实现。主人基于SLA分配资源,并将任务划分为小块,并将它们映射到工人,这些工人执行要求的任务。主人监视工人的工作,当一个工人出错时重新分配这个任务。当全部任务完成时,主人将结果同步并执行下一步工作,即简化工作,也是将任务分配给工人。在完成简化工作后,主人收集结果,释放资源并将结果返回用户。
这只是中间件执行互联网应用的一个例子,实现了运行环境与用户代码的抽象化。
对于PaaS而言,服务提供商可以达到三个九的可用性指标,例如Amazon EC2达到99.95%。需要指出的是,尽管指标看上去很高,但如果映射阶段发生云计算故障,那么将会影响接下来的简化阶段并占用更多的服务器。
2.5 应用层
2.5.1 应用要求
为了成功实现云计算的运行环境,如MapReduce,应用程序需要满足几个要求:
第一,应用必须并行编程以便划分为多个独立任务。而多个任务之间的数据依赖性将会限制算法的总体性能。
第二,应用不具有实时性,因为映射算法不具有确定性,而接下来的简化阶段则依赖映射的结果。
第三,应用的I/O要求规模小,避免网络和存储的瓶颈。应用的中间结果需要存储在硬盘上,如果发生故障,也会加大存储的负担,因此应用不仅需要具有规模弹性,而且最好具有容错能力。
2.5.2 应用类型
考虑到上文提到的云计算的局限性,几种主要应用类型如下:
- 离线视频转码
- 离线图像处理
- 金融保险后台应用
- 数据挖掘
- 文件处理如OCR或PDF生成
- 科学计算如MatLab
- 软件开发
- 动态互联网应用
上述应用的一个共同特点是它们都不要求实时性,也不是流媒体。电信应用的实时性不仅要求确定的响应时间,而且要求系统高可用性,低延时,高带宽。显然,MapReduce不满足这些要求。
3、ATCA与云计算
我们已经讲到云计算的一个主要驱动力就是降低成本,现在让我们看一看,ATCA其实并不适用于在数据中心运行云计算。事实上,ATCA运行的全部都是电信应用。
ATCA标准是PICMG组织为下一代运营级通信设备开发的标准,它具有高可靠性、高可用性、易维护性,标准涵盖了机箱、背板、网络、刀片、管理等各项指标。几年来,ATCA已经证明是一个可靠的架构,是高可用系统的基础。
3.1 适用于云计算的电信应用
适用于云计算的电信应用是消息应用与NGN附加服务。
3.2 ATCA平台的可管理性
除了标准化硬件外,ATCA还具有通用硬件平台管理接口,同时补充了服务可用性接口,既有商业产品,也有开源工具。硬件与底层软件的管理按照SAF模型,一般而言,这一管理环境只是一个系统而不是一个服务器集群,对于设计多个地址的区域概念,ATCA更未涉及。
3.3 集成网络
ATCA将网络作为系统的组成部分,共分为三层:第一层是标准IPMI实现基本管理;第二层是独立的万兆以太网,保障网络过载下也能管理;第三层是应用数据传输,称为fabric网络,并允许多种协议。
ATCA市场的一个特点是新的以太网标准总能够得以采用,目前的背板速率是10Gb和40Gb,正是这种技术进步使ATCA具有作为大规模计算集群的坚固基础,所有网络是冗余的和容错的。
3.4 可用性
ATCA平台可用性包括硬件可靠性、扩展可管理性与集成网络。这些部分产生了具有5个9以上可用性的平台,这正是一个PaaS平台必须提供的性能。对于ATCA平台而言,这些特征已经过实践检验。
3.5 开放标准
ATCA系统和软件基于开放标准,这可以受益于一条产业链。
4、结论
ATCA具有云计算市场潜力和必须的部件,如虚拟化,同时也符合云计算的技术要求,但目前还没有到部署的程度。ATCA作为云,并没有显示出像商用服务器一样的规模优势与成本优势。采用ATCA做基础服务似乎是可行的,在电信应用领域ATCA作为PaaS服务,目前受到实时性约束。为了使电信应用PaaS成功,影响实时性的问题必须得以解决。