您的位置首页百科词条

什么是云平台?

什么是云平台?

各种云平台(cloud platforms)的出现是该转变的最重要环节之一。顾名思义,这种平台允许开发者们或是将写好的程序放在“云”里运行,或是使用“云”里提供的服务,或二者皆是。至于这种平台的名称,现在我们可以听到不止一种称呼,比如按需平台(on-demand platform)、平台即服务(platform as a service,PaaS)等等。但无论称呼它什么,这种新的支持应用的方式有着巨大的潜力。 欲知个中缘由,我们先来看看目前应用平台(application platforms)是如何被使用的。开发团队在创建一个户内应用(on-premises application,即在机构内运行的应用)时,该应用所需的许多基础都已经事先存在了:操作系统为执行应用和访问存储等提供了基础支持;机构里的其他计算机提供了诸如远程存储之类的服务。倘若每创建一个户内应用都得首先构建所有这些基础的话,那么恐怕我们今天看到的应用会少很多。 同理,倘若每一个希望创建云应用(cloud application)的开发团队都得首先构建自己的云平台的话,那么我们今后看到的云应用将寥寥无几。幸运的是出现了一些致力于解决此问题的厂商,今天有很多云平台技术可供我们使用。本文的主旨即从企业应用创建者的角度来分类并简要介绍这些技术。 实际环境中的云平台:三种云服务 为掌握云平台,我们先从大体上考察一下云服务。我们可以把通过“云”提供的服务分为三大类。它们是: 软件即服务(Software as a service,SaaS):SaaS应用是完全在“云”里(也就是说,一个Internet服务提供商的服务器上)运行的。陆猜其户内客户端(on-premises client)通常是一个浏览器或其他简易客户端。Salesforce.com可能是当前最知名的SaaS应用,不过除此以外也有许多其他应用。 附着服务(Attached services):每个户内应用(on-premises application)自身都有一定功能,它们可以不时地访问“云”里针对该应用提供的服务,以增强其功能。由于这些服务仅能为该特定应用所使用,所以可以认为它们是附着于该应用的。一个著名的消费级例子就是苹果公司的iTunes:其桌面应用可用于播放音乐等等,而附着服务令购买新的音频或视频内容成为可能。微软公司的Exchange托管服务是一个企业级例子,它可以为户内Exchange服务器增加基于“云”的垃圾邮件过滤、存档等服务。 云平台(Cloud platforms):云平台提供基于“云”的服务,供开发者创建应用时采用。你不必构建自己的基础,你完全可以依靠云平台来创建新的SaaS应用。云平台的直接用户是开发者,而不是最终用户。 要掌握云平台,首先要对这里“平台”的含义达成共识。一种普遍的想法,是将平台看成“任何为开发者创建应用提供服务的软件”。下一节,我们将对此作具体讲解。 应用平台的一般模型 我们今天对应用平台(application platform)的认识,主要来源于户内平台(on-premises platforms)。因此,一种悄悉大思考云平台(cloud platforms)的方式,就是考察应用开发者在户内环境里所依赖的服务(services)是如何转变为“云(cloud)”的。 无论在户内环境、还是在“云”里,我们可以认为一个应用平台(application platform)包含以下三个部分: 一个基础(foundation):几乎所有应用都会用到一些在机器上运行的平台软件。各启竖种支撑功能(如标准的库与存储,以及基本操作系统等)均属此部分。 一组基础设施服务(infrastructure services):在现代分布式环境中,应用经常要用到由其他计算机提供的基本服务。比如提供远程存储服务、集成服务及身份管理服务等都是很常见的。 一套应用服务(application services):随着越来越多的应用面向服务化,这些应用提供的功能可为新应用所使用。尽管这些应用主要是为最终用户提供服务的,但这同时也令它们成为应用平台的一部分。(也许你要奇怪,为什么要把别的应用视为平台的一部分,但在面向服务的世界里是这样的。) 开发工具也是另一个重要部分。现代工具可以帮助开发者们运用应用平台的这三个部分来构建应用。 为了对这个抽象模型有具体的认识,下面我们将它与今天主流的户内平台加以对照。户内基础(on-premises foundation)包括有: 操作系统(Operating system):Windows、Linux及其它版本的Unix是主流选择。 本地支持(Local support):不同风格的应用采用不同的技术。例如,.NET框架和Java EE应用服务器为Web应用等提供了一般性支持,而其它技术则面向特定类型的应用。比如Microsoft Dynamics CRM产品提供了一个为创建特定类型的商业应用而设计的平台。类似地,不同种类的存储被用于不同目的。Windows、Linux及其它操作系统里的文件系统提供了原始字节的存储功能,而各种数据库技术(比如Oracle DBMS、MySQL、Microsoft SQL Server及IBM DB2等)则提供了更加结构化的存储功能。 对于户内基础设施服务(on-premises infrastructure services),典型例子包括: 存储(Storage):跟基础里的存储一样,基础设施里的存储也分为多种风格。远程文件系统可以提供简单的面向字节的存储,而Microsoft SharePoint文档库可以提供更加结构化的远程存储服务。应用也可以远程访问数据库系统,从而能够访问其他种类的结构化存储。 集成(Integration):把机构内部的应用连接起来,通常要依赖于某种集成产品提供的远程服务。比如,消息队列(message queue)是一个简单的例子,IBM的WebSphere Process Server及微软的BizTalk Server等产品可用于更加复杂的场景。 身份管理(Identity):对许多分布式应用而言,提供身份信息是一个最基本的需求。常见的解决此问题的户内技术包括微软的Active Directory(活动目录)及其它LDAP(轻量级目录访问协议)服务器。 至于户内应用服务(on-premises application services),不同机构间差别很大。原因很简单:不同机构使用的是不同的应用,因而它们暴露的服务也五花八门。对于这些户内平台里的应用,一种思考方式是将它们分成两大类: 套装软件(Packaged applications):这包括像SAP、Oracle Applications、Microsoft Dynamics在内的许多商业软件,以及许许多多现成的产品。虽然不是所有套装软件都向其它应用暴露服务,但越来越多的套装软件是这么做的。 定制应用(Custom applications):许多机构对定制软件进行了大笔投资。随着这些应用逐渐将其功能以服务的形式暴露出来,它们也将成为户内应用平台的一部分。 照此描述,户内应用平台看起来好像挺复杂的。但实际上,它也是随着时间的发展而不断演化的。在计算技术的早期,应用平台只包含一个户内基础(比如IBM主机上的MVS和IMS)。到了八、九十年代,随着分布式计算的普及,户内基础设施服务也加入了进来(远程存储、集成和身份管理成为十分常见的服务)。时至今日,随着面向服务的应用的出现,户内应用服务也成为应用平台的一部分了。下一步发展是毫无疑问的,即在“云”里提供这三个部分。 从户内平台到云平台 上面那个一般模型描述的是户内平台,但它同时也可被用来考察云平台。另外,因为户内平台与云平台可以一同使用,所以理解它们如何一起工作也是十分重要的。 正如户内应用(on-premises application)是构建于户内基础(on-premises foundation)之上的,云应用(cloud application)也可以构建于云基础(cloud foundation)之上。无论是户内环境、还是“云”里的基础设施与应用服务,均可为这两种应用所使用。