打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
微软Windows Azure初级教程:基本原理

【IT168 专稿】微软的Windows Azure云计算平台自从2月份发布收费版以来,使用的人数正在膨胀。就在上周达到了1000个收费用户;而且,Azure正在不断改进,目的是成为刚起步的云计算市场的有力竞争者。


  尽管Google、Amazon和微软提供的云计算产品大体上比较相似——他们分别提供各自的“计算(例如应用软件)”和“存储”块——但是这些服务的提供方式确实截然不同的。当然,除了这三家,还有一些其他的厂商,但是这三个家喻户晓的名字是这个市场上具有很大的代表性的,并且,事实证明,这三家厂商在市场采用和影响方面都是最重要的。

  云计算入门

  云计算领域的一大重头产品是Amazon的弹性计算云(Elastic Compute Cloud http://aws.amazon.com/ec2/,EC2),EC2可以让用户选择他们虚拟机上的操作系统,并对所选的操作系统进行配置。客户甚至可以创建并上传自己的镜像。软件可以在任何可以在镜像上运行的环境中运行。这些镜像可以使用SSH,远程桌面或其他更好的机制进行管理和配置。想在虚拟机上安装软件么?只需运行安装程序就可以了。

  云计算领域的另一典型代表是Google的App Engine。App Engine软件运行在沙盒中,仅仅提供有限的底层操系统的访问。应用程序的编写语言只能是java(至少是JVM的目标语言)或者是Python2.5。沙盒阻止了一些基本的操作,如写磁盘或打开网络socket。

  处于EC2和Google App Engine之间的是微软的Window Azure。在Azure中,没有对操作系统的直接访问,也不能直接访问运行在OS之上的软件——它就像是Windows的变种,它优化了可扩展性,在.NET的运行时环境下运行类似IIS的Web服务却没有Google环境下那么多限制,尽管.NET是更好的开发平台,它支持PHP、Java、有必要的时候还可以采用本地编码。唯一的限制是软件必须是无需安装就可以部署,即它不支持简单的复制到目录然后运行。

  存储系统是十分多变的。Amazon有四个存储系统,第一个是使用最广泛的简单存储服务(Simple Storage Service,S3),S3提供了简单的名字值匹配,这个值可以是一个大小高达5GB的BLOB(Binary Large Object,二进制大对象)。第二个是弹性块存储(Elastic Block Store,EBS),EBS提供的是虚拟的块设备,这些设备可以像硬盘一样被格式化,并用来存储有规律的文件。Amazon的第三个存储系统是关系数据服务(Relational Database Service ,RDS),RDS提供的是MySQL数据库。最后一个是数据库系统是SimpleDB。

  SimpleDB是一个非关系型数据库;它采用一种非关系形的表格存储数据。与常规的关系型数据库相类似,这些表格所存储的每一个条目(客户、订单、地址等等)都有自己的属性(因此,一个客户可能会有一个姓名、地址和一个电话号码)。与典型的数据库不同的是,SimpleDB可以不刷新表格中现有的记录就可以添加新的属性。表与表之间没有关系,也不支持关系型数据库中的连接。如果应用程序要访问与另一个表相对应的一个表中的数据,他们将不得不进行手工的查找。

  删减掉这些特征的原因是通过减少关系型数据库的所有限制,运供应商就可以更灵活地实现查询优化和数据存储。尽管限制这些特征,对一些有过关系数据库开发背景的人来说很艰难,但是对许多应用来说还是足够丰富了。

  Google提供的主要存储方案是它的datastore【http://code.google.com/intl/zh-CN/appengine/docs/python/datastore/overview.html】,datastore和SimpleDB一样广泛。Google还提供另外一种服务,叫做blobstore,类似于S3的服务。这家公司的标准的App Engine服务不支持SQL数据库的特征,但是,Google打算为商业版的App Engine平台的客户提供关系型数据库服务,现在预览版已经上线。

  微软的存储产品线与Amazon的大体差不多。Azure Storage既包括类似S3的专用二进制存储,又有类似SimpleDB的类似表单的存储。它还提供了特殊的VHD磁盘印象的支持,这些磁盘印象可以像驱动一样挂载,这类似于Elastic Block Store。最后,微软还有一个叫做SQL Azure的SQL服务器,SQL Azure为云端应用提供了几乎所有的SQL Server的特性。

  除了常规的存储选择之外,Amazon和Microsoft都提供了队列服务。队列服务允许信息以一种可靠地、不同时的方式在应用软件间被交换。应用软件编辑者将信息导入列队,然后应用软件使用者能这空闲时很快的从列队中读出这些信息。

  由于设计决策不同,不同的平台所优化的应用也不同。EC2使得在云环境中部署“常规”软件变得简单:将软件安装到镜像中,使用EBS磁盘存储数据,甚至可以对应用一无所知。相反,App Engine平台上的应用,必须是为该平台专门创建的。

  Azure处于两者之间。现有的Web应用,特别是使用ASP.NET创建的应用,可以很容易地迁移到Azure上。他们可以使用常规的SQL 服务器(或类似的其他服务器),有必要的话,他们还可以使用本地遗留的代码,但是这个平台去掉了许多传统的管理任务,如操作服务器、管理数据库等。

  Azure似乎也吸引了许多微软的用户,尽管可扩展性是人们最常说的云计算的优势,但是大约有一半的Azure设备都是单实例的。这意味着,一个应用程序仅仅部署在一个虚拟机上,Azure被用作一种减少常规应用的运营成本,而不是用来多机器的快速简单扩展。

  这对我来说当然也很有吸引力。虽然我不能算是一个真正的Web app开发者,但是Azure使得我能够使用现有的.NET技术,并且不用管系统管理,确实是很有诱惑力。所以,让我们一起来体会Azure的开发细节吧!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
业界主要的云计算提供商
云计算纵观
《云计算(第三版)》精华连载14:主流商业云计算解决方案比较
揭秘云计算
一份难得的数据库市场分析报告
云平台:诸神之战 | 36氪
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服