扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
来源:ZDNetCBSi企业方案解决中心频道 2013年01月16日
【ZDNet企业解决方案中心】广义的云计算可以解释为一切能够通过网络提供的服务,服务的本质在于减少用户本身需要去部署的内容,从而降低应用难度和使用成本。云服务的三个层次:IaaS(Infrastructure-as-a-Service, 基础设施即服务)、PaaS(Platform-as-a-Service, 平台即服务)和SaaS(Software-as-a-Service,软件即服务),从前到后,用户需要耗费精力维护的部分就越少。
当前市场上,公有云服务已经比较成熟,可供选择的也比较多,私有云也有那么几家,不过,成熟的产品并不多,毕竟,从搭建的角度来看,需要部署的内容和传统IT架构相比还要更多了,也因此很多开源的公有云方案应用到私有云市场并不多见,基本上,都要经过修改。当前,微软适时推出了Windows Azure Pack,可以方便地将原有的Windows基础架构升级为一个完整的私有云。
Cloud OS云操作系统,是微软的一大战略,涵盖公有云、私有云和混合云领域
Microsoft,微软,其对云计算的重视程度正在逐渐提高,特别是在新CEO到任之后。微软当前拥有的数据中心/服务器数量在全球处在前列,在2013年7月的时候,微软就表示其数据中心的服务器达到了一百万台,仅次于谷歌。一方面,微软本身提供了公有云服务,其次,云服务现在也已经成为了一种基础设施,可以对内部业务提供支持,此外还有一点,云服务的方式可以更方便地将微软的Windows、SQL Server、Office、Visual Studio等软件集成最终提供给用户。微软对云服务的重视,从其公有云服务Windows Azure更名为Microsoft Azure就可见一斑。
Windows Azure Pack私有云,针对服务供应商和企业
在可见的未来,公有云和私有云都会同时存在,微软的Cloud OS方案当中也将私有云、公有云等统一作为“1 Consistent Plaftorm”战略的一部分,日前微软正式推出了Windows Azure Pack,微软对私有云产品的重视程度如何?我们接下来会对其架构进行解析。
Windows Azure Pack是一个软件套件, 它构建在Windows Server 2012 R2、Hyper-V以及System Center 2012 R2的基础上,对于现有的大多数Windows基础架构来说,只要使用了Windows Server 2012 R2和System Center 2012 R2,用户就可以很方便地将其转化为一个私有云:
Windows Azure Pack在原有的System Center + Windows Server架构上增加一个软件层,将传统基础架构升级为私有云
Windows Azure Pack提供了必装和可选两种组件,可以根据用户需求的不同而定制。其中,在必装组件当中,最重要的核心部分就是Service Management API,也就是提供管理员/用户与Windows Azure Pack之间的接口,它包括Admin API、Tenant API、Tenant Public API三个部分。必装组件的另外两个部分是Authentication Sites和Service Management Portals,前者用来提供门户交互的认证功能,后者则提供了用户的交互界面,Service Management Portal服务管理门户包含了两个门户,一个提供给管理员,一个提供给Tenant租户。
在最简单的情况下,只需要在一台服务器上使用必装的组件就能搭建好Windows Azure Pack环境,要搭建提供功能更强大的IaaS乃至PaaS服务,则可以选择安装其它组件。
Windows Azure Pack私有云架构示意图,包括了处于核心的管理门户/API组件,以及额外的Web站点、数据库等可选组件
尽管顺着微软的思路也能进行解释,不过我们可以看到,上面的示意图只适用于了解其管理门户和管理API处于核心地位,实际上对理解其结构并没有太大的帮助, 我们需要更完整的结构图:
这个架构图我们可以清晰地看到,从以提供云服务的“服务”为核心来看,Windows Azure Pack架构可以分为三层:管理门户层、服务层、基础设施层,三个分层之间由两个API分割。这个架构和软件定义架构很相似,只是侧重点不同,微软架构侧重于“服务”,软件定义架构侧重于“软件定义”,简单来说就是数据平面(Data Plane)和控制平面(Control Plane)、应用平面(Application Plane)分离,它们的相同点都是具有两个API,北向API(Northbound API)和南向API(Southbound API),前者对应Windows Azure Pack架构当中的Service Management API,后者则相对要复杂一点,我们下面会继续谈到。关于软件定义方面的诠述,可以参阅我们的报告《数据中心2013:硬件重构&软件定义》,下面这张图会更有利于理解Windows Azure Pack私有云的架构:
这个架构图和前一个图不同,前一个图基于“服务”,它关心的是从Tenant所看到的架构视图,组成元素以服务为主题,现在这个架构图则不同,是真正以系统软硬件层次划分,这也更符合我们软件定义体系的定义:
Application Plane:应用平面,包括了Windows Azure Pack的分别面向管理员和租户的管理门户
Control Plane:控制平面,包含了Service Management API、SPF、System Center等套件在内的一套软件,用来控制最下层的数据平面,以构建复杂的云基础架构
Data Plane/Infrastructure Plane:数据平面/基础设施平面,包括物理的Compute、Network、Storage资源,并使用Windows Server 2012 R2/Hyper-V 2012 R2进行资源管理以及资源虚拟化、池化
下面我们就同时按照两种划分方法来分别看看Windows Azure Pack架构的这几层分层。
无论从什么方面看,管理门户以及和其对应的管理API都是很重要的, 从SDC(Software Defined Compute,软件定义计算)的方面来看,这个管理API定义了最上层、用户应用程序可以对整个云基础架构进行管控的能力。在Windows Azure Pack当中,使用的是OData REST API(http://www.odata.org/),这是一个符合REST定义、以数据为核心的API协议:
在OData REST API之上,Windows Azure Pack构建了管理门户,并提供给管理员和客户(或者说租户)进行各自的管理。
Windows Azure Pack提供的管理门户界面和Microsoft Azure一致,当然,基于软件定义计算的定义,这个管理界面可以自己编写修改
按照我们软件定义计算的定义,管理门户属于最上层的Application Plane,应用平面,这个“应用”和云服务运行的“应用”不太一样,指的是这个平面运行的应用可以管理控制下层的Control Plane以及Data Plane(或者Infrastructure)构造,因此这是一个逻辑上的定义。Windows Azure Pack也很符合软件定义计算的特性——其核心是南北向的API,除了API之外,其它层的组件都是可以灵活更改的,如同Windows Azure Pack说明的那样,管理门户可以被完全替换成用户编写的应用,以更适合用户运行的应用程序。微软还给我们展示了通过微信语音来开启Windows Azure Pack云的虚拟机,更多的能力还可以进行自行开发。
Application Plane下面两个分层是微软的定义架构与软件定义架构最不相同的地方。中间层Control Plane控制平面是非常重要的分层,一方面,它通过北向API接受Application Plane的管理,另一方面,它通过南向API管理着下层的基础架构,以实现特定的功能。在Windows Azure Pack当中,控制平面,或者按照微软的定义为服务层,主要由两大部分组成,其中一部分是IaaS,另一部分这是PaaS附加,根据用户私有云配置的不同而不同。支持PaaS是Windows Azure Pack的一大特点。
在Windows Azure Pack当中,北向API——也就是联接Application Plane和Control Plane的API,其内部具有两个层次,分为SM API(Service Management API)和SPF API(Service Provider Foundation API),实际上,还有第三层API:System Center所用的API,SM API和SPF API都是对System Center API的层层封装,为什么不直接用System Center API?一方面,System Center虽然功能强大却过于复杂,其API也一样;另一方面,System CenterAPI并不是固定的,各个版本会升级变动,不利于管理,因此就出现了SM API下面是SPF API,SPF API则使用System Center API的情况;最后,Windows Azure Pack架构里面还有其他的组件,也需要北向API提供相应的接口。
北向API是Windows Azure Pack的核心组件,也是软件定义架构的核心功能:提供对处于Control Plane的管理功能的封装。通过SM API和SPF API,Windows Azure Pack让用户和系统管理员不需要去管理复杂的基础架构,而需要通过简单易用的管理门户就足够了。
在Control Plane,根据构建IaaS和PaaS的不同,Windows Azure Pack包含的组件也不尽相同,显然,PaaS架构要比IaaS复杂得多。Windows Azure Pack架构中,除去底部的基础设施层,IaaS平台主要包含了虚拟机管理组件,而要建立PaaS平台,还要附加Web Sites组件以及Services Bus等组件:
我们先来看看Windows Azure Pack架构的IaaS方面:
Windows Azure Pack IaaS平台除去底层基础设施之外的组件包括各种System Center,如SC VMM(SC Virtual Machine Manager)、SC Orchestrator等,其中SC VMM最重要,它管理着底层的基础架构,SC Orchestrator实现各种自动化控制。这些System Center套件通过Service Provider Foundation组件提供的SPF API进行管理,Serverce Provider Foundation由Windows Azure Pack提供:
Service Provider Foundation Architecture
SPF API和其上的Service Management API一样,都是OData REST API,可以实现复杂的功能。
通过必装的Windows Azure Pack(包括Service Provider Foundation)、SC VMM、SC Orchestrator以及底层的Windows Server Hyper-V,已经可以搭建起一个IaaS平台——实际上,你直接通过SPF API,或者System Center API,也能构建IaaS平台,在前一页的架构图中,租户也是可以直接跟Control Plane当中的组件联系的,如下图的Custon Control Panels和RunBooks的箭头:
Run Book是System Center Orchestrator的重要部件,用于实现对底层资源的管理。接下来我们再来看看Windows Azure Pack PaaS平台架构。
PaaS(Platform-as-a-Service)是比IaaS(Infrastructure-as-a-Service)更高的层次,对于用户来说,PaaS已经提供好了包括操作系统在内的基本软件,只需要在上面进行搭建开发即可。PaaS比IaaS显得更有技术含量,对广大的用户也更有价值。
实现PaaS需要比IaaS更多的组件,包括Web Sites(由Web服务器组成的Web Farm)、Service Bus和SQL服务器(上图未列出)。Windows Azure Pack支持ASP.NET、Python、Classic ASP、Node.js、PHP以及SQL、MySQL、noSQL等PaaS服务,通过附加SQL服务器组件,Windows Azure Pack还支持database-as-a-service(dBaaS)。其实按照我们ZDNet企业解决方案中心对软件定义架构的定义,这些部件都可以进行控制平面和数据平面的分离,而不是像微软的文档中这样,看起来全部是包含属于中间的分层。
可以看出,Windows Azure Pack主要支持数据库集成的Web PaaS
Windows Azure Pack也支持各种开发工具如Visual Studio、CodePlex、GitHub等等
在Windows Azure Pack组建的PaaS平台中,一个很重要的软件是Service Bus,这是实现PaaS的一个核心组件,因为这是不同的应用软件进行通信的桥梁,也是构建PaaS混合云——私有云和公有云相沟通的一个重要部分,为此下面我们将单独列出一页来对它进行介绍。
不同的PaaS平台都具有类似消息队列这样的服务,如,AWS中是Amazon SQS(Amazon Simple Queue Services),在Windows Azure Pack架构当中,对应的组件则是Service Bus:
Windows Azure Pack Service Bus:构建在Windows Server上的Message Broker Service
Windows Azure Pack Service Bus用来提供1-1队列、1-n订阅,它是基于TCP的可靠链接。
Windows Azure Pack Service Bus提供两种消息协议:一种是SBMP(Service Bus Messaging Protocol)专有协议,一种是AMQP规范协议,最后,任何支持HTTP的应用还可以通过HTTP/HTTPS的方式使用Service Bus:
Service Bus Messaging Protocol和Advanced Message Queuing Protocol
通常,SBMP协议只有.NET应用才会支持,为了提供对Windows/.NET之外平台的支持,Windows Azure Pack Service Bus还支持AMQP(Advanced Message Queuing Protocol,高级消息队列协议),AMQP在2012年10月成为OASIS标准,它是一种可靠协议:发射后不管、精确一次传递——精确一次的意思是,它可以确保目标会收到一次并且只收到一次消息。微软在2013年对AMQP提供了支持。
从我们ZDNet企业解决方案中心的观点来看,由软件定义网络发展而来的软件定义计算/软件定义存储等概念的核心就在于数据平面(Data Plane)与控制平面(Control Plane)的分离,也就是说,控制平面并不涉及到具体数据的计算、传输和存储,因此,物理的基础设施和虚拟化之后的基础设施一样,都属于数据平面,有时我们也叫做基础设施平面(Infrastructure Plane)。
基础设施平面层可以包含未经虚拟化的独立Windows主机,但主要还是由经过Hyper-V虚拟化之后的虚拟资源池。对于微软来说,网络虚拟化资源和存储虚拟化资源都是构建在Hyper-V之上,因此,Windows的Hyper-V具有很重要的地位。SC VMM(System Center Virtual Machine Manager)除了一开始的对Hyper-V的管理之外,根据版本的不断升级,逐渐提供了对虚拟网络、存储资源,乃至物理的网络和存储资源的管理能力,因此SC VMM已经变成了一个很核心的组件,它包含在Control Plane内。Windows Server Hyper-V提供的核心能力是将物理的计算资源分割为虚拟计算资源(包含在虚拟机内的vCPU和Memory):
此外,虚拟网络资源也由物理交换机以及Windows Hyper-V虚拟交换机提供。在Windows Azure Pack当中隐含了SDN的概念,另外也包括了SDS(Software Defined Storage,软件定义存储),后者也就是通过Storage Spaces来有限度地达成。在越来越大的数据中心当中,SDN、SDS的存在几乎是一个必然:
物理交换机也可以由SCVMM支持
物理存储设备通过SM-API(Storage Management API)管理
Hyper-V虚拟机交换机主要提供对网络虚拟化的支持,这些网络资源可以通过额外的控制器来管理控制,这个角色同样由System Center来完成,存储方面则稍微不一样,关于SDN和SDS方面的内容,同样可以参看我们的报告《数据中心2013:硬件重构&软件定义》。
【ZDNet企业解决方案中心】Windows Azure Pack的架构基于传统的Windows Server + System Center基础设施,在其上可以构建具有可扩展性的、面向多租户的私有云服务平台,Windows Azure Pack支持.NET、Node.js和PHP,并提供了开放的API,用户既可以根据需要建立IaaS平台,也可以建立PaaS平台。Windows Azure Pack架构还提供了足够的开放API,可供用户建立扩展的私有服务,并重新定制控制管理界面。
Windows Azure Pack,可以构建一个完整的Paas/IaaS私有云平台
基于已有的Windows Server + System Center架构是很重要的一点,因为在市场上有着大量的用户基础,并且Windows Azure Pack的PaaS也支持混合平台,通过AMQP队列协议,不同平台的应用可以进行互相通信,协同工作,特别地,则提供了对Windows之外的移动终端的支持,因此,Windows Azure Pack架构不仅仅是云服务平台,它是微软的云+端战略的体现。
Why Windows Azure Pack?
在前面开始介绍组件以及架构时,我们提供了一张Windows Azure Pack快速部署的简图,在真实的应用环境中部署会有什么不同了?请继续收看我们ZDNet企业解决方案中心频道。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。