指间(蒋建华)--天行健,君子当自强不息

        专注于微软产品及.Net技术的blog
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

从云计算到Windows Azure平台

Posted on 2010-06-08 01:57  蒋建华  阅读(432)  评论(0编辑  收藏  举报

IT168-微软云计算博客征文活动专稿】“云计算”是时下最为热门的IT业概念。Gartner资深分析师Ben Pring认为:“云计算就像法国大餐一样正被人们津津乐道。但几乎每个人对云计算的定义都有不同之处“。维基百科定义为:云计算(cloud computing),是这样一种计算方式,计算资源是动态易扩展而且虚拟化的,往往通过互联网提供。用户不需要了解‘云’中基础设施的细节,不必具有相应的专业知识,也无需直接进行控制。本文将介绍云计算的作用及特点,在此基础上重点介绍微软云计算平台,并将企业应用云计算的场景展示给大家,以期大家对云计算相关基础知识有一个更加深刻的理解。

  “云计算”将所有的计算资源集中起来,并由软件实现自动管理,无需人为参与。这使得应用提供者无需为繁琐的细节而烦恼,能够更加专注于自己的业务,有利于创新和降低成本。云计算提供了最可靠、最安全的数据存储中心,用户不用再担心数据丢失、病毒入侵等麻烦。同时云计算对用户端的设备要求最低,使用起来也最方便。此外,云计算可以轻松实现不同设备间的数据与应用共享。更重要的是云计算为我们使用网络提供了几乎无限多的可能。云计算拥有以下特点:

  虚拟化和自动化

  服务器,存储介质,网络等资源都可以随时替换

  所有的资源都由云端统一管理

  高度的伸缩性以满足业务需求

  集中于将服务传递给业务

  云计算是一个新兴的商业计算模型。利用高速互联网的传输能力,将数据的处理过程从个人计算机或服务器移到互联网上的计算机集群中。这些计算机都是很普通的工业标准服务器,由一个大型的数据处理中心管理着,数据中心按客户的需要分配计算资源,达到与超级计算机同样的效果。

  从部署方式来说,云计算可以分为私有云和公共云。从运营方式来说,云计算可以分成SaaS,PaaS,IaaS三类。2009年3月,Amteam.org根据多方数据采集与分析将“云”产品化划分为三大类:云计算基础设施、平台、服务。如图1所示:

  图1 云的分类

  在云计算时代,有三个平台非常重要,即开发平台、部署平台和运营平台。Windows Azure Platform是一个运行在微软数据中心的云计算平台,包括一个云计算操作系统和一个为开发者提供的服务集合。微软云计算平台既是运营平台,又是开发、部署平台,开发人员创建的应用既可以直接在该平台中运行,也可以使用该云计算平台提供的服务;平台上既可运行微软的自有应用,也可以开发部署用户或 ISV 的个性化服务;平台既可以作为 SaaS 等云服务的应用模式的基础,又可以与微软线下的系列软件产品相互整合和支撑,这是微软云计算平台的最具特色的一面和强大之处,其整体功能结构如图2所示:

  图2  微软云计算平台

  由上图我们可以看到:Windows Azure Platform和Windows Azure是区别的,Windows Azure是Windows Azure Platform的一个组成部分,Windows Azure是微软的公共云PaaS解决方案。Windows Azure Platform包括三大组成部分:Windows Azure、SQL Azure、Windows Azure Platform AppFabric。


  Windows Azure:云计算服务的操作系统

  Windows Azure是一个云服务的操作系统,它提供了一个可扩展的开发环境、托管服务环境和服务管理环境,这其中包括提供基于虚拟机的计算服务和基于Blobs、Tables、Queues、Drives等的存储服务。Windows Azure为开发者提供了托管的、可扩展的、按需应用的计算和存储资源,还为开发者提供了云平台管理和动态分配资源的控制手段。Windows Azure是一个开放的平台,支持微软和非微软的语言和环境。开发人员在构建Windows Azure应用程序和服务时,不仅可以使用熟悉的Microsoft Visual Studio,Eclipse等开发工具,同时Windows Azure还支持各种流行的标准与协议,包括SOAP、REST、XML、和HTTPS等。Windows Azure主要包括三个部分,一是运营应用的计算服务;二是数据存储服务;三是基于云平台进行管理和动态分配资源的控制器(Fabric Controller)。

  SQL Azure:云中的数据库

  SQL Azure是一个云的关系型数据库,它可以在任何时间提供客户数据应用。SQL Azure基于SQL Server技术构建,但并非简简单单将SQL Server安装在微软的数据中心,而是采用了更先进的架构设计,由微软基于云进行托管,提供的是可扩展、多租户、高可用的数据库服务。SQL Azure Database帮助简化多数据库的供应和部署,开发人员无需安装、设置数据库软件,也不必为数据库打补丁或进行管理。SQL Azure为用户提供了内置的高可用性和容错能力,且无需客户进行实际管理。SQL Azure Database支持TDS和Transact- SQL(T- SQL),客户可以使用现有技术在T–SQL上进行开发,还可以使用与现有的客户自有数据库软件相对应的关系型数据模型。SQL Azure Database提供的是一个基于云的数据库管理系统,它能够整合现有工具集,并提供与客户自有软件的对应性。

  Windows Azure Platform AppFabric:云的基础架构服务

  Windows Azure platform AppFabric基于Web的开发服务,它可以把现有应用和服务与云平台的连接和互操作变得更为简单。Windows Azure platform AppFabric为本地应用和云中应用提供了分布式的基础架构服务。在云计算中存储数据与运行应用都重要,但是我们还需要一个基于云的基础架构服务。这个基础架构服务应该既可以被客户自有软件应用,又能被云服务应用。Windows Azure platform AppFabric就是这样一个基础架构服务。AppFabric能够使客户自有应用与云应用之间进行安全联接和信息传递。它使得在云应用和现有应用或服务之间的联接及跨语言、跨平台、跨不同标准协议的互操作变得更加容易,并且与云提供商或系统平台无关。AppFabric目前主要提供互联网服务总线(Service Bus)和访问控制(Access Control)服务。

  了解了微软云计算平台的整体功能后,我们关注一下企业在什么场景下使用云计算。微软的架构布道者Bill Zack详述了使用云的关键场景以及Windows Azure所提供的解决方案,主要包括工作负载、计算、存储、通信、部署和管理的场景。

  (1)工作负载

  在一天或者一年之中,只是在特定的时间段内偶尔使用的应用程序应该放在云中。如很多批处理程序。

   迅速增长或者迅速失败:这种工作负载模式遇到的是这样的情况,启动新业务的时候,无法精确地预测成功率有多大,而这正是实际容量所需要的。这些应用程序在启动时容量很小,但随着时间的推移、请求的增加会不断增大。这样的应用程序很适合云平台,因为云平台能够快速适应不断增长的资源。

  不可预知的爆发:例如,当web服务器上的负载突然增大到某个峰值,导致系统无法处理瞬间的流量。所有者应该提供足够的容量来应对这样的负载。但是他们不希望看到这样的流量峰值。即便他们确实预先考虑了,增加的容量通常也不会用到。这是另一种很适合云平台的情况。

  可预测的爆发:随着时间的变化,负载会持续地依照预测的方式变化。所有者会提前购买必须的设备和软件,而不需要依赖于云提供商。

  (2)计算

  按需提供的(On-demand)应用程序实例:这种模式针对的是一种特殊事件,其中应用程序需要迅速增大,稍后再减小。 Windows Azure使用自动管理的Web和Worker角色来适应这样的需求。

  Worker 角色分配:当我们将大型的工作切分为小块完成,每小块都与单独的Worker角色实例关联的时候,采用的就是这种机制。

  (3)存储

  Blob:Blob是用来存储大量非结构化数据的。

  表:用来存储海量数据的非关系型解决方案。

  DB:SQL Azure提供了云中的关系型数据库。

  数据保护:如果存储在云中的数据中包含敏感数据,并且有人想要确保它不会公开,那么可以对其进行加密。 Windows Azure会在不久的将来提供加密/解密服务。

  信息服务:微软拥有数据集市,它是针对想要买卖数据的公司的。

  (4)通信

  面向服务整合:Azure允许应用程序使用其它应用程序所提供的服务。 微软的整合方案是WCF Web服务,worker角色能够暴露这样的端点。

  消息传递:消息传递是由Windows Azure Queues提供的,用来在web和worker角色之间异步地通信。

  穿过防火墙的消息传递:通过Service Bus Queues,应用程序能够彼此通信,而不需要打开额外的端口。

  (5)部署

  云部署:应用程序是使用独立的服务定义文件和配置文件部署到云上的,这些文件会根据目标角色打包。 web和worker角色以及它们的类型都定义在服务定义文件中 ,而服务配置文件中则包含了每种角色的数量。

  从基于前提的(On-Premise)应用程序转移到云:尽管这并非对于大多数应用程序都是可行的,然而针对某些应用——像简单的ASP.NET站点——还是可以做的。

  混合的环境,基于前提和云:通过使用REST接口、对SQL Azure的安全访问、服务总线以及访问控制服务,Windows Azure使我们可以将基于前提的应用程序和云中的服务组合在一起。

  双重应用程序:我们可以将应用程序设计为在基于前提和云两种环境中运行,但是这种设计过程的会比较复杂。 如果一家公司将其应用程序在自己的服务器上运行,但是在季节性的高峰期时(像圣诞节)使用云,那么这会非常有用。

  安全联合:Windows Azure通过访问控制服务(Access Control Service)提供了安全联合。

  SaaS:部署在云中的应用程序可以作为服务提供。

  (6)管理

  为运维而设计:Windows Azure提供了诊断API,使得运维团队可以监控并识别问题。

  服务实例管理:应用程序实例可以通过API或者Azure门户启动、停止或暂停。

  总结

  云计算自2007年Google提出这一概念,迅速风靡了IT业界,业界巨头纷纷大举进军。它很可能彻底改变用户使用电脑的习惯,将以用户桌面为核心的各项应用,转移到以网络为核心的应用上来,开创新的信息时代。云计算可能彻底改变我们未来的生活,包括信息获取方式、管理模式、甚至娱乐休闲的方式,它不是简单的技术提升。微软云计算平台正式在这样的大背景下运用而生的,这个云平台既是开发平台和部署平台,又是运营平台,这样的平台有利于以较低的成本整合企业资源、部署和应用云计算。

IT168地址:http://tech.it168.com/a2010/0524/890/000000890170_all.shtml