什么是云平台?数据为什么要上云? 什么是云平台( 四 )


什么是云平台? 可能是当前最知名的SaaS应用,不过除此以外也有许多其他应用 。附着服务( ):每个户内应用(on- )自身都有一定功能,它们可以不时地访问“云”里针对该应用提供的服务,以增强其功能 。由于这些服务仅能为该特定应用所使用,所以可以认为它们是附着于该应用的 。一个著名的消费级例子就是苹果公司的:其桌面应用可用于播放音乐等等,而附着服务令购买新的音频或视频内容成为可能 。微软公司的托管服务是一个企业级例子,它可以为户内服务器增加基于“云”的垃圾邮件过滤、存档等服务 。云平台(Cloud ):云平台提供基于“云”的服务,供开发者创建应用时采用 。你不必构建自己的基础,你完全可以依靠云平台来创建新的SaaS应用 。云平台的直接用户是开发者,而不是最终用户 。要掌握云平台,首先要对这里“平台”的含义达成共识 。一种普遍的想法,是将平台看成“任何为开发者创建应用提供服务的软件” 。下一节,我们将对此作具体讲解 。应用平台的一般模型 我们今天对应用平台( )的认识,主要来源于户内平台(on- ) 。
因此,一种思考云平台(cloud )的方式,就是考察应用开发者在户内环境里所依赖的服务()是如何转变为“云(cloud)”的 。无论在户内环境、还是在“云”里,我们可以认为一个应用平台( )包含以下三个部分: 一个基础():几乎所有应用都会用到一些在机器上运行的平台软件 。各种支撑功能(如标准的库与存储,以及基本操作系统等)均属此部分 。一组基础设施服务( ):在现代分布式环境中,应用经常要用到由其他计算机提供的基本服务 。比如提供远程存储服务、集成服务及身份管理服务等都是很常见的 。一套应用服务( ):随着越来越多的应用面向服务化,这些应用提供的功能可为新应用所使用 。尽管这些应用主要是为最终用户提供服务的,但这同时也令它们成为应用平台的一部分 。(也许你要奇怪,为什么要把别的应用视为平台的一部分,但在面向服务的世界里是这样的 。) 开发工具也是另一个重要部分 。现代工具可以帮助开发者们运用应用平台的这三个部分来构建应用 。
为了对这个抽象模型有具体的认识,下面我们将它与今天主流的户内平台加以对照 。户内基础(on- )包括有: 操作系统( ):、Linux及其它版本的Unix是主流选择 。本地支持(Local ):不同风格的应用采用不同的技术 。例如,.NET框架和Java EE应用服务器为Web应用等提供了一般性支持,而其它技术则面向特定类型的应用 。比如CRM产品提供了一个为创建特定类型的商业应用而设计的平台 。类似地,不同种类的存储被用于不同目的 。、Linux及其它操作系统里的文件系统提供了原始字节的存储功能,而各种数据库技术(比如 DBMS、MySQL、 SQL 及IBM DB2等)则提供了更加结构化的存储功能 。对于户内基础设施服务(on-),典型例子包括: 存储():跟基础里的存储一样,基础设施里的存储也分为多种风格 。远程文件系统可以提供简单的面向字节的存储,而 文档库可以提供更加结构化的远程存储服务 。
应用也可以远程访问数据库系统,从而能够访问其他种类的结构化存储 。集成():把机构内部的应用连接起来,通常要依赖于某种集成产品提供的远程服务 。比如,消息队列( queue)是一个简单的例子,IBM的及微软的 等产品可用于更加复杂的场景 。身份管理():对许多分布式应用而言,提供身份信息是一个最基本的需求 。常见的解决此问题的户内技术包括微软的 (活动目录)及其它LDAP(轻量级目录访问协议)服务器 。至于户内应用服务(on-),不同机构间差别很大 。原因很简单:不同机构使用的是不同的应用,因而它们暴露的服务也五花八门 。对于这些户内平台里的应用,一种思考方式是将它们分成两大类: 套装软件( ):这包括像SAP、 、 在内的许多商业软件,以及许许多多现成的产品 。虽然不是所有套装软件都向其它应用暴露服务,但越来越多的套装软件是这么做的 。