技术开发 频道

让IT不再重复 解读Windows Azure平台企业应用

  【IT168 专稿】作为未来信息技术的发展趋势之一,云计算是继SOA、Web2.0之后又一个热门的话题,目前已由概念探讨快速转入到了实践。究竟应该如何理解云、走近云,利用云计算平台又能为企业带来哪些价值?Windows Azure平台如何能帮助企业构建云端应用?与传统hosting相比,Windows Azure的部署和开发有何不同?为此,IT168记者采访了微软(中国)首席软件架构师吴延安。
 
  专家简介:

 
  吴延安,微软(中国)首席软件架构师
  现任职于微软(中国)有限公司平台与开发合作部,致力于软件开发技术、架构思想、企业应用平台的普及与推广。有着二十多年广泛的IT行业工作经验,曾在多家国内外著名企业从事技术研究,行业应用和技术管理工作。对企业的IT战略管理、IT基础架构、企业应用系统的规划、设计等有丰富的经验。精通软件工程、OO系统设计方法、设计模式等,对电子商务、电子政务、ERP、供应链管理、安全等领域有较深的研究。目前精力主要集中在研究微软的下一代软件架构技术——面向服务的体系架构技术(SOA),系统建模中的相关的软件架构以及云计算等领域。

  
  记者:云计算近年来变得异常火热,也看到了各种不同的云计算平台,能否先谈一下您对云计算的理解?

  吴延安:的确如您所言,云计算目前是继SOA、Web2.0之后又一个热门的话题。许多领先的IT公司也都推出了相应的云计算平台,但在概念上还没有一个权威、准确的定义,长期以来,每一个云计算平台提供商、专家学者们在对客户需求理解的基础上提出了不同的表述方法。无论表述及实现方法有何不同,但仔细研究您会发现,其核心思想是一致的,那就是网络上的资源和能力如何更有效得被分享,以达成高效率、低成本计算的目标。

  无论是有形的IT基础设施、计算资源、存储资源还是无形的服务能力等,云计算给我们带来的正是这些资源的分享和能力的互补。也就是说未来对IT基础设施、计算、存储等各种资源的使用方式可以变得像今天我们用水用电一样的简单,需要多少用多少,不需要投入过大的成本。也不需要每种能力都由自己去建设, 需要支付、物流能力时,直接集成第三方的服务,以弥补自身资源的不足,将有限的资源放在各自核心能力的建设上。

  从技术上看,首先云计算可看作是一个将IT基础架构服务化的托管平台,在理论上有着无穷计算和存储等能力,云计算平台会帮助企业维护系统的高可用、高扩展性的问题,因此对最终使用者及开发者而言,对资源的使用是完全透明的,不用考虑信息放在了哪里、是哪台主机在给我提供服务,云计算平台会为我们提供相应的服务保障,所以云计算在技术上是通过虚拟化、并行计算、高可用性技术等实现了资源动态再配置的过程。

  云计算目前仍处在较初级的阶段,云计算的出现为我们构建应用系统,决定部署方式提供了更多的选择,云计算的出现并不会改变自有服务(On-premise)的模式,而“云+端”(Cloud+Client)的融合与共存才是未来计算的发展趋势。

  记者:关于Windows Azure平台,因为我们知道目前有一些应用,但目前还不是很明朗,而且我们想了解微软在这块有哪些具体应用模式,还有它在企业的应用架构是怎样的?

  吴延安:从应用的角度来看,企业用户可以利用Windows Azure实现什么样的应用模式?首先让我们了解一下Windows Azure平台给我们带来了什么。该平台实际上包含了三个部分,第一部分,最低层是一个云计算基础服务层(Fundamental Service),可以理解为“云端的操作系统”,主要从事虚拟化计算资源管理和智能化任务分配。

  将来我们开发的云计算运用,可以部署在该平台上,通过这个平台,提供计算、存储或者管理的能力。从计算能力上,目前支持ASP.NET应用,以及通过FastCGI提供对其他语言的支持,如PHP、Java等。在最近发布的CTP版本中还提供了对Unmanaged Code的支持,即使用C++, Win32 API编写的应用也可以运行于该平台。
 
  在此之上的是一个构建服务平台(Building Block Service),这里提供了一系列的服务,如Live服务、.NET服务、SQL服务等,我们可以简单的把它们看成一系列的构建块,用来帮助我们建立云计算的应用或将你现有的业务拓展到云端。这是一个面向开发者的应用服务层,用来解决企业应用中所面临着的一系列技术难题,如服务之间怎么整合,不同应用中的访问控制与授权等。
 
  再往上则是为客户提供的服务层(Finished Service),将一些运营比较成功的在线服务以服务的形式直接提供给最终用户,像Windows live、office live,Exchange Online等,同时通过提供统一的接口开放给开发者,与企业应用之间进行服务级的集成,以提供更好的客户体验。

  对Windows Azure的三个层次有了基本的了解后,我们再来看企业用户可以如何实现应用模式的问题,可以从以下三个场景进行考虑:

  1.搭建一个完整的云计算应用,托管在Windows Azure之上

  这种应用模式最大的好处在于不必搭建自己的IT基础设施,在降低IT拥有成本的同时,降低了应用的部署以及未来的IT运营、管理成本。对开发者而言,系统分层设计的架构思想也不会发生变化。应用开发、测试完成后,可以很方便的部署到Windows Azure平台上,而不用考虑购买服务器、服务器规格、如何搭建网络、上线等一系列复杂的问题,更不用考虑业务快速增长时所带来的瓶颈,云计算最大的特征便是拥有极好的可用性及动态的可扩展能力。

  这种使用模式目前比较适合新创业的公司、快速发展互联网公司以及个人用户。随着信用体系的不断完善以及消费习惯的变化,也适用于大中型企业。

  2.将现有应用向云中扩展

  该应用模式的思维方式是将云计算平台作为一种资源加以利用, 即在现有的应用中部分地使用云计算提供的能力。从系统架构来看,在组织内部运行的应用程序(内部预制应用程序,on-premises application),而将在云中存储数据,或依赖于其他云基础结构服务。云计算提供的是按需付费模式,可以较好的解决On-premise(自有平台)在IT建设时决策上的困惑,按峰值设计,将来大部分的资源被闲置、不能得到充分的利用,设计不足又不能满足业务快速发展的需求,而云计算可以较好的解决这种问题。如通过云计算平台对一些需要大量计算的特殊任务进行并行处理,无论是在时效性、还是在应付本地突发性处理能力不足方面都是一个不错的选择。又如可以将一些海量存储放到云计算平台中,不必考虑数据的可用性、灾难备份及恢复性问题。

  3.通过搭建S+S(On-premise Service + Cloud Service)的混合模式,提升应用的服务能力

  利用Azure Service提供的一系列服务构件块,构件跨越组织机构的虚拟应用,利用第三方提供的服务能力来弥补自身业务能力的不足,从而为最终客户提供非常好的的客户体验。Azure Service提供的Service Bus, Access Control, Workflow等服务可以较好的组织面向服务(SOA)的应用架构,对服务管理、服务注册、服务消费、服务流程控制、自动路由、服务桥接等均提供了高效可行、易于使用的开发手段,为企业内部的不同系统间、不同机构的应用间搭建了畅通的信息渠道。

  综上所述,应用程序有多种使用云服务的方式,因此在不同的情况下,可以使用不同种类的云平台。无论采用哪种方式,利用云的功能都可以改善我们的世界。

  记者:Windows Azure看上去像是一个托管的平台,和传统的Hosting相比有什么本质的不同吗?

  吴延安:的确,当人们将开发的应用部署到Windows Azure时,很容易联想到与传统的Hosting有什么区别。从应用托管的角度的确可以看作是一个Hosting平台,但已经远远超越了传统的主机托管模式,两个有着本质的区别。
 
  要理解这种区别,需要先弄明白Azure Fabric Controller及Windows Azure中Role的概念。

  Windows Azure是运行在微软的数据中心,通过Windows Server 2008以及Hyper-V虚拟化技术构成,这无数纵横交错的服务器集群及各种网络设备的集合统称为Azure Fabric,而承担Azure Fabric智能化管理的核心服务模块便是Azure Fabric Controller, 其职责是维护Fabric中的各节点(Node),对这些节点中相应的资源进行统一监控、管理、虚拟环境准备、虚拟化资源的动态配置等,从而达到高可用、高扩展、高稳定、高安全性等一系列非功能性需求的目标。对最终用户而言,可以认为Windows Azure提供了无穷计算和存储等能力,对资源的使用是完全透明的,不用考虑信息放在了哪里、是哪台主机在给您提供服务,需要扩展时通过配置的改变即可在瞬间自动完成。

  这是Azure云计算平台的基本特征所在,只要您开发的应用部署到了Azure环境中,便具备了天然的高可用、及时动态扩展、高安全等一系列的特性。在传统的Hosting环境中并不具备这样的特征,一切都要开发者及IT运营管理者在架构上进行充分的设计才可达到。

  让我们回顾一下传统的hosting的应用部署过程,首先您需要和Hosting提供商签订好托管协议,准备服务器(自己购买或租用)、到托管机房进行服务器的安装、网络配置,再安装相应的软件等,所以一个应用上线的话,前期有大量的准备工作要做。所以从某种意义上,Hosting给您提供的是一个IT的运营环境、网络环境、带宽资源等,而如何保证系统的可用性、稳定性问题,当访问量发生变化时如何对系统进行扩展,以及日常运营中的安全补丁、运营监控等等一系列的问题,一样都不能少。

  但在Azure云计算平台中,上述面临着的问题均可在Azure开发者门户上通过几个步骤及分钟就可完成。 举个例子,当你将应用部署在Windows Azure上面之后,如果设计的系统容量是一个Instance能支持一万个并发请求,当你的客户量突然一夜之间增加到十万个并发请求时,你只需要更改服务配置文件,将Instance数量增加到10个,Azure fabric control便会自动地为您准备好所需的环境,并且动态的将应用快速部署到这10个虚拟系统上。除此之外,操作系统级补丁、安全维护等也是在系统在不宕机的情况下自动帮您完成。这些都是传统的Hosting无法实现的。
 
  可能您会注意到,还有些Hosting提供商提供虚拟主机的服务,可以帮您将ASP.NET, PHP等应用直接部署上去,此时您在获得部署便利(自己不用准备硬软件环境)的同时,牺牲了对系统的可控性,即可用的服务非常有限。但本质上该方式与上面提到的传统的托管方式是没有区别的,系统地可扩展性、可用性问题得不到解决。

  以上从设计理念上看到了两者的区别。另外,还有Azure中两种不同Role(Web Role以及Worker Role)的架构思想,也使得Azure的服务托管方式与传统的Hosting有着本质的区别,这里就不再详细说明。

  记者:我现在有一个很具体的问题,比如说我原来搭建服务器,比如我用Windows  server2008,Azure跟这个有什么区别吗?它是如何帮助企业节约成本的呢?
 
  吴延安
:有关云计算能如何帮助客户节约成本的问题,我想可以从几个方面来考虑。首先从IT拥有成本来看,自己搭建数据中心时,最令CTO们头痛的问题是采用什么标准进行IT基础设施建设才能更好地满足业务快速的变化的需求,对业务的支持更加敏捷?传统的做法是在系统规划之初,考虑未来三到五年的发展,对系统容量进行估算,尤其要考虑峰值时的处理能力,从而做出决策,需要什么规格的服务器?是5台还是10台、百台?按峰值容量配置,势必造成大部分时间(据统计90%以上)设备处于低效率运行状态。

  而云计算提供的按需支付的模式,也就是说在系统运营时可以动态的决定所需的计算资源,每个时刻系统都处在高效率运营状态,这些资源可以根据业务量的大小进行增加或减少。所以云计算可以大大降低IT的整体拥有成本。
 
  其次,从运营管理成本上来看,从系统的部署到日常运营中的安全补丁管理、系统监控、灾难恢复等需要大量的人工成本,而在云计算平台下纵然有成百上千台设备,部署过程可有云计算平台自动快速的完成(即分钟),大部分的日常维护工作也有平台帮您完成,如系统级的安全补丁永远会在第一时间得到最新的,对需要大量服务器支持的企业而言,云计算可以使运营成本降到最低限。
 
  最后便是机会成本带来的效益,传统的IT从提出需求到IT基础设施建设完成,往往需要几个月的时间,这会带来商业机会的损失。而采用云计算平台,前期IT基础设施的准备工作已有云计算平台帮您实现了,对业务快速走向市场提供了更大的敏捷性。

  云计算商业化运营面临的困难

  根据Windows Azure的架构,如果企业要搭建自己的云平台,就需要把自己的业务放到这样一个平台,但也会面临很多问题。因为这里面涉及到,信息数据的安全的问题,有没有采用相应的一些安全措施保障信息的安全性,另外会涉及到人们使用习惯或者观念的问题。

  如果要快速地拓展海外市场,或者是一些提供信息服务、网上交易的公司,由于这些信息本身就是需要对外共享的,或者是有更多的交互过程,所以这种情况可能会是最早一批部署到云上的。同时在微软看来,就算它已经发展得很成熟,软件和服务配合在一起才有可能真正发挥更好的作用,所以也不会因为云计算平台的出现,就一定要使得人们传统的运行方式发生变化。

  也许未来会走向那一天,就像有一本书《IT不再重复》里面所要求的那个场景,未来人们对IT基础设施、对信息资源的使用都像买水买电一样,这是一个憧憬。未来的云可能还会蕴含更多的内容,怎样使它真正的能够可用,让人们能够放心地用这个东西,这是要经过很大的努力才能达到的,这可能需要一个很漫长的过程。

0
相关文章