全部博文(372)
2012年(372)
分类: 云计算
2012-04-12 18:22:10
尝试Agile的方式来写博客。本文主要覆盖以下两个故事。故事一:作为一个没有开发过云计算平台的读者,我希望通过阅读本文可以了解云计算的概况。故事二:作为没有开发过Azure的读者,我希望通过阅读本文可以创建第一个Azure Web Role应用。
云计算平台简介
随 着移动设互联网的进一步快速普及,云计算在冷处理以后再度升温。当初在我刚刚从事云计算开发的时候,感觉Cloud是空中楼阁,云里雾里。也没有人跟我系 统地讲述云计算,经过一段时间Azure的开发,并且对其他Cloud平台的了解,发现Cloud真的没那么难以理解,如果你觉得对Cloud的认识还是 云里雾里,我希望这篇文章能帮你拨开云雾见青天。
到底什么是云计算
云计算就是服务,使用云计算平台就是购买服务。 一起来看看云计算平台分好多类,什么IaaS,PaaS,SaaS等等,最后一个S是什么,最后一个S代表Service。我们使用云计算平台,就是购买 服务,了解这个,就了解了云计算的核心,也同时解开了很多选型上的问题,例如使用云计算平台还是自己购买硬件来维护,就像上馆子吃饭和家里弄私房菜的区 别,各有千秋。
云计算的分类如上所述,云计算平台分IaaS,PaaS,SaaS等等。他们的共同点就是通过服务,都像下馆子吃饭,区别是你吃火锅是自己动手,吃韩国烤肉服务员帮你烤,吃西餐是厨师做好拿出来,都是享受服务,但是享受程度有一点点区别,也没有绝对的好与差,萝卜白菜各有所好。
从左到右,你管理的范畴越来越少,而灵活性越来越低。第一个不是云计算平台,是传统的自己管理模式。
IaaS第 二种叫做Infrastructure-as-a-Service (IaaS),基础框架作为服务,云计算提供商只是管理网络,物理存储,服务器和虚拟化等部分。你可以在其基础上选择操作系统,例如Windows或者 Linux,选择中间件,运行时例如JVM,.NET等。IaaS最流行的平台是Amazon的AWS。由于IaaS很灵活,因此好多其他PaaS和 SaaS的平台都是基于AWS。
PaaS第三种叫做Platform-as-a-Service (PaaS),平台作为服务,这个层次的云计算平台可以自己选择数据层,应用程序等等,当前云计算平台大都是以这种形式提供的,例如微软的Azure,谷 歌的GAE,HeroKu,App Harbour等等,其实界线越来越迷糊,像Azure除了不支持选择O/S(其实可以选择Windows的不同版本),支持多种平台,而且支持还VM mode,越来越像IaaS了。但是官方博客也说过他们不是IaaS。
Azure支持的语言与平台
在各个PaaS的云计算平台中,我觉得Azure是最灵活的,这也是我最喜欢使用Azure的原因,灵活性与管理难度达到很好的折中。
SaaSSoftware-as-a-Service(SaaS)软件作为服务,通常提供一些特殊的软件服务,典型的是苹果的iCloud,微软的SkyDrive,一般客户化程度不高。
为什么选择Azure
平常工作上会用到AWS,Azure和Saleforce,但是用得最多是Azure,每次给客户推荐的也是Azure,为什么我喜欢使用Azure,主要基于以下考虑:
1. 与.NET无缝结合,Azure可以无缝地支持.NET开发环境,例如Web项目,MVC项目等等,开发的项目不需要做任何修改就可以直接部署到Azure平台上。
2. 支持Data Storage和SQL,Azure Windows自带了Data Storage,其支持Table Storage,BLOB和Queue,也就是当前十分流行的NoSQL。同时也支持SQL Server,方便存放关系型数据。
3. 比其他PaaS好灵活,Azure除了不能选择O/S以外,基本上什么都可以自己选择,Azure支持多种语言,多种运行时,多种数据库,还支持VM mode,可以自己安装软件。其他的PaaS远远没有那么灵活,例如GAE虽然一直改进,但是与Azure相比限制性大很多。Azure还支持 Cache,很多其他PaaS都没不支持。
学习Azure有什么好处
1. PaaS的云计算平台一般提供Web Role和Worker Role两种角色,Web Role可以理解为一个Web服务器(例如IIS)上的一个网站,Worker Role可以理解为一个后台任务。Azure都提供了这两种角色,为Azure开发程序,也了解到其他平台的开发模式。
2. 一般云计算平台的管理模式与Azure类似,可以根据需求调整Role的数量,和处理能力,例如extra small,small,medium,large,extra large等等,这些东西学会了,其他平台游刃有余。
3. Azure支持灵活的数据访问,Table Storage,SQL等等,学习Azure可以同时了解NoSQL和关系数据库的不同应用。
4. 可以免费尝试,普通用户可以免费使用三个月,MSDN订阅用户可以免费使用一年。
免费使用三个月。
MSDN订阅用户免费使用一年。链接
第一个Azure程序 注册Azure帐号
要开发第一个Azure程序,其实可以使用本地模拟器,是完全不需要花钱的,但是我讲述的是如果把程序部署到真正的Azure平台上去。
首先要注册一个Azure帐号,登录,需要Live ID,电话和信用卡。
微软会发送一条短信给你确认,然后需要填写信用卡信息,如果三个月以后不使用,可以Cancel的。
注意:如果只是测试,每次部署都选择extra small的instance,然后每次用完都把instance删掉,这样就不会花钱了。
安装Azure SDK
当前Azure SDK的版本是1.6,可以在这里http://www.windowsazure.com/en-us/develop/downloads/下载,注意,如果版本更新了,请下载最新版本。对于其他语言,也可以在这里选择下载。
新建和部署项目
下面演示如何创建和部署一个Web Role的项目,Web Role支持ASP.NET, MVC的项目,这里不讲述如何创建Web项目了,与普通Web项目没有任何区别。安装完Azure SDK,就可以创建Azure项目了,右键Solution,点击新建项目 可以新增相应的Web Role,也可以加Worker Role,一个Role部署的时候对于一个或者多个instance,可以调整instance的处理能力。 要把Web项目部署到Azure,右击Azure项目,选择Public
选择你的azure帐号,如果没有可以选择Manage来新增帐号。
在Manage中选择New来新增帐号。
选择或者新增一个证书,第一次一般选择Create
这个证书也是可以通过命令行来生成的,步骤如下:
Open a Visual Studio Command Prompt as administrator from Start | All Programs | Microsoft Visual Studio 2010 | Visual Studio Tools | Visual Studio Command Prompt (2010) by right-clicking the Visual Studio 2010 Command Prompt shortcut and choosing Run as administrator.
makecert -r -pe -n "CN=AzureMgmt" -a sha1 -len 2048 -ss My "AzureMgmt.cer"
然后登录Azure Management Portal,找到订阅的ID
然后填到下面的第三个栏目里面。
填写完毕,点击OK。
点击Next
然后填写一个名称,选择地区,如果在中国可以选择东亚,会host在香港。然后点击OK。
点击Next,如果想登录到虚拟机,需要选择“Enable Remote Desktop”
点击Publish就可以部署了。
回答Azure Management Portal查看状态,如果状态变成Ready,就完成了,这样就可以访问Azure的Web Role了。
通过DNS的地址来访问。
第一个Azure程序就部署成功了。
国内做云计算的一些人
要关注云计算平台,可以关注一些人,他们常常讨论一些Azure等相关的事。首先我是自己,呵呵 超级猛将: WP达人: 美国Azure Team:@ 各大高手: @ @,有错漏,请搜索#Azure#
Azure支持
在多个云计算平台中,Azure的服务支持算是比较好的,任务问题都可以提交一个服务单(Support Ticket),网址如下:
如下图:
如果是注册问题,请选择Billing support,然后选择Other,如果是运行时的问题,可以选择Windows Azure或者SQL Azure等等具体的问题。
可以选择email服务支持,如果填写电话,一般由印度人打电话进行服务,如果email一般是北京的人回复的。