2009年5月13日星期三

Cloud definition from NIST

Peter Mell and Tim Grance -- National Institute of Standards and Technology, Information Technology Laboratory
Note 1: Cloud computing is still an evolving paradigm. Its definitions, use cases, underlying technologies, issues, risks, and benefits will be refined in a spirited debate by the public and private sectors. These definitions, attributes, and characteristics will evolve and change over time.
Note 2: The cloud computing industry represents a large ecosystem of many models, vendors, and market niches. This definition attempts to encompass all of the various cloud approaches.
Definition of Cloud Computing:
Cloud computing is a pay-per-use model for enabling available, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is comprised of five key characteristics, three delivery models, and four deployment models.
Key Characteristics:
On-demand self-service. A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed without requiring human interaction with each service’s provider.
Ubiquitous network access. Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
Location independent resource pooling. The provider’s computing resources are pooled to serve all consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. The customer generally has no control or knowledge over the exact location of the provided resources. Examples of resources include storage, processing, memory, network bandwidth, and virtual machines.
Rapid elasticity. Capabilities can be rapidly and elastically provisioned to quickly scale up and rapidly released to quickly scale down. To the consumer, the capabilities available for rent often appear to be infinite and can be purchased in any quantity at any time.
Pay per use. Capabilities are charged using a metered, fee-for-service, or advertising based billing model to promote optimization of resource use. Examples are measuring the storage, bandwidth, and computing resources consumed and charging for the number of active user accounts per month. Clouds within an organization accrue cost between business units and may or may not use actual currency.
Note: Cloud software takes full advantage of the cloud paradigm by being service oriented with a focus on statelessness, low coupling, modularity, and semantic interoperability.
Delivery Models:
Cloud Software as a Service (SaaS). The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure and accessible from various client devices through a thin client interface such as a Web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
Cloud Platform as a Service (PaaS). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created applications using programming languages and tools supported by the provider (e.g., java, python, .Net). The consumer does not manage or control the underlying cloud infrastructure, network, servers, operating systems, or storage, but the consumer has control over the deployed applications and possibly application hosting environment configurations.
Cloud Infrastructure as a Service (IaaS). The capability provided to the consumer is to rent processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly select networking components (e.g., firewalls, load balancers).
Deployment Models:
Private cloud. The cloud infrastructure is owned or leased by a single organization and is operated solely for that organization.
Community cloud. The cloud infrastructure is shared by several organizations and supports a specific community that has shared concerns (e.g., mission, security requirements, policy, and compliance considerations).
Public cloud. The cloud infrastructure is owned by an organization selling cloud services to the general public or to a large industry group.
Hybrid cloud. The cloud infrastructure is a composition of two or more clouds (internal, community, or public) that remain unique entities but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting).
Each deployment model instance has one of two types: internal or external. Internal clouds reside within an organizations network security perimeter and external clouds reside outside the same perimeter.

美国国家标准与技术实验室对云计算的定义

个人并不完全认同其中的描述,供大家参阅。

注1 :云计算仍是一个不断发展的词汇。它的定义,应用场景,基本技术,问题,风险和收益,将在公众和企业参与的激烈辩论中不断发展。这些定义,属性和特征都将随时间演变和改变。
注2 :云计算行业代表一个由众多商业模式、企业、细分市场构成的一个庞大的生态系统。 这一定义试图涵盖各种云计算观点。

一 云计算定义
云计算是一个提供便捷的通过互联网访问一个可定制的IT资源共享池能力的按使用量付费模式(IT资源包括网络,服务器,存储,应用,服务),这些资源能够快速部署,并只需要很少的管理工作或很少的与服务供应商的交互。云计算提高了可用性,由五个主要特点,三个交付模式 ,和四个部署模式组成。

二 主要特点
按需自助服务。消费者可以单方面部署资源,如服务器和网络存储,资源时按需部署而不需要服务供应商进行人工交互。

通过互联网获取。资源可以通过互联网获取, 并可以通过标准方式访问,以通过瘦客户端或富客户端推广使(例如移动电话,笔记本电脑,PDA)等。

独立于地点的资源池。供应商的资源被池化,以便以多用户租用模式被所有客户使用,同时不同的物理和虚拟资源可根据客户需求动态分配和重新分配。客户一般无法控制或知道资源的确切位置。这些资源包括存储、处理器、内存、网络带宽和虚拟机器。

快速伸缩。资源可以迅速和弹性地部署,以便快速扩展和快速释放。对客户来说,可以获取的资源看起来似乎是无限的,并且可在任何时间购买任何数量的资源。

按使用付费。对资源的收费是基于计量的一次一付,或基于广告的收费模式,以促进资源的优化利用。比如计量存储,带宽和计算资源的消耗,按月根据用户实际使用收费。在一个组织内的云可以在部门之间计算费用,但不一定使用时机货币。
注:云计算软件通过着重于无国界、低耦合、模块化和语义互操作性的面向服务来充分利用云计算模式的优势。

三 交付模式
云计算软件即服务。提供给客户的服务是服务商运行在云计算基础设施上的应用程序,可以在各种客户端设备上通过瘦客户端界面访问,比如浏览器。消费者不需要管理或控制的底层的云计算基础设施,包括网络、服务器、操作系统、存储,甚至单个应用程序的功能,可能的例外就是需要设置一些有限的客户可定制的配置设置。

云计算平台即服务。提供给消费者的是将客户用供应商提供的开发语言和工具(例如Java,python,.Net)创建的应用程序部署到云计算基础设施上去。客户不需要管理或控制的底层的云基础设施,包括网络、服务器、操作系统、存储,但消费者能控制部署的应用程序,也可能控制应用的托管环境配置。

云基础设施即服务。提供给消费者的是出租处理能力、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。消费者不管理或控制的底层的云计算基础设施,但能控制操作系统、储存、部署的应用,也有可能选择网络组件(例如,防火墙,负载均衡器)。

四 部署模式
私有云。云基础设施是被一个单一的组织拥有或租用,该基础设施完全该组织管理。

社区云。基础设施被一些组织共享,并为一个有共同关注点的社区服务(例如,任务,安全要求,政策和遵守的考虑)。

公共云。基础设施是被一个销售云计算服务的组织所拥有,该组织将云计算服务销售给一般大众或广泛的工业群体。

混合云。基础设施是由两种或两种以上的云(私有,社区或公共)组成,每种云仍然保持独立,但用标准的或专有的技术将它们组合起来,具有数据和应用程序的可移植性(例如,可以用来处理突发负载)。

每个部署模型实例有两种类型:内部或外部。内部云存在于组织的网络安全边界之内,外部云存在于网络安全边界之外。


原文参见下一篇博客。

2009年5月6日星期三

云计算操作系统简析

云计算操作系统, 有两层含义,分别是IaaS级和Paas级。

Iaas级别的云计算操作系统,是我认为比较正式的,这也是最近能实现的。是指对IT基础设施的管理OS化,比如屏蔽硬件差异,提供标准API接口,提供基础设施管理控制台等,侧重于对基础设施的管理,对应用的部署产生影响,而对应用的开发模式影响较小。一些典型的例子:3tera,Qlayer(SUN收购,现属于oracle),Aws ec2,aws S3等。

PaaS级别的云计算操作系统,则是分布式应用或者互联网应用开发的OS化,比如对应用开发所需的开发环境和运行时观景OS化,提供结构化数据存储、消息处理甚至基本的付费结算等功能。它能直接有助于开发大规模的分布式程序或互联网应用的开发和部署。如果说Iaas级别的云计算操作系统提供原始的IT硬件资源和基本的操作系统环境,PaaS级别的云计算操作系统则是提供了应用所需的各种核心模块。 典型的例子是AWS sqs,aws simple db,10gen、longjump等。

还有一种以前叫做浏览器操作系统,或者叫Browser OS, 或者Web OS,Web Desktop,最近也有叫做云计算操作系统的趋势,这只能叫应用层的云计算操作系统,偏向于应用的集合,有部分操作系统的特征,在我看来,叫做云计算操作系统稍显勉强。它是把一部分桌面操作系统的应用都放到浏览器中,并以类似桌面的形式展示出来,典型的是eyeOS,ajaxWindows,desktoptwo等。这类应用的发展还有待于浏览器产生变革和带宽的扩展以及一些ajax技术的发展。

我个人认为,Iaas级别的云计算操作系统属于狭义云计算,近期正在成熟,PaaS级别的云计算操作系统属于广义云计算的基础,目前都只是提供零散的功能,发展还需要时间,浏览器操作系统是在多年之前就存在的一类互联网应用,属于Saas,但对传统桌面系统的冲击会比其他Saas应用大,随着云计算变革会进一步发展。