通过上一篇博文可以得知,Azure其实是个平台,上面跑的服务五花八门,可以相互分开使用,同时也可以相互结合。
那我们应该如何来学习Azure呢?
其实有很多种选择,正所谓条条大路通罗马, 官方的training kit 提供了五种选择分别是:
Web Site,Virtual Machine,Cloud Service, Building Block Services,Mobile
详情可以参看:通过Trainingkit对Azure有一个初步的了解
我将这五种选择根据自己理解加以划分,希望能帮助刚刚接触Azure的人找到最适合自己的学习路径。
Web Site
Web site 是针对网站部署人员的,通过对web site的学习,他们能够以最快的速度将运行在传统网站程序移植到Azure website上,所需要做的改动相当小。它支持许多语言及平台,例如java,php,linux等等。
这非常适用于一些租用第三方服务器来发布自己网站的人,Website提供了多种多样的发布方式,例如TFS发布,GIT发布等等。
Virtual Machine
VM是针对IT人员的,通过对VM的学习,IT人员能够通过在Windows Azure上创建虚拟机,然后通过虚拟网络将虚拟机组建成局域网,从而可以将原先部署在本地机房的程序(网站,游戏,web 服务等等)迁移到windows Azure上。
IT 人员能够通过 Windows Power shell 等工具方便的控制在Azure上的虚拟机。对于程序来说只要操作系统一样,其实运行在虚拟机上与运行在本地机房中并无多大不同,所以一些比较大型的公司(有自己专门的IT人员)会选择用这种方式来做,这样无需开发人员学习新的知识,只需要几个IT学习一些关于Azure的知识就行了!
Cloud Service
Cloud Service 是针对于.net 网站开发人员的。
.NET开发人员可以根据Azure cloud service 的一些概念在设计一个网站之初就考虑使用Azure cloud service。与传统开发有一部分不同,Cloud service是针对微软开发平台的,所以如果网站是使用.net +IIS+windows Server的话,选用Cloud service会是非常不错的选择, 但这需要每一个开发者都对Azure上的一些概念有一定了解。
Building Block Services
Building Block Services 是针对广大开发人员的(如果你只是想了解Azure,并不是一个决策者,那么这个最适合你啦)。
它包含了一系列非常好用的模块服务(个人理解为SAAS服务),有 SQL Data Base,Azure storage,service bus,Azure Caching,HDinsight, media service,Azure Active Dire 等等等等,无论你是.net 开发,还是java 开发、Android开发、IOS 开发、C++开发。。。你都能在这里找到适合你的模块服务!
同时Windows Azure还包含了一个模块服务市场(Azure market Place),在这里允许第三方将其Saas服务发布到这个市场中,以供开发者使用。微软自己的一些Saas服务,例如Bing search API,Microsoft translate等等也放到这个Azure market Place里面。 里面的收费方式也是按需收费的!
Mobile
针对于Mobile开发人员, 微软提供了mobile service,Notification hub等模块服务,方便Mobile开发人员使用同一个服务就能针对不同的开发平台来进行开发。
同样他也支持电脑上的Win 8 store app!
由于我是一个学asp.net的起家的人,所以这里建议搞asp.net的朋友从Azure cloud service入手,然后学习其他相关内容如 storage,ACS,CDN等等
总之Azure不是一门技术,而是一个平台,学习的时候切不可盲人摸象,学习了其中一块内容就产生:“哦,原来Windows Azure是这样的呀!”的想法。
我对学习Azure的看法:
首先Windows Azure是一个公有云,作为一个云平台它的主要用处是为了省钱,提高效率。
这个技术是每一个搞Web dev的都应该有所了解的,微软已经将Azure列入了MCSD考试之中,要想成为一个MCSD Azure这个坎是躲不过的。
Azure平台下面包含的技术其实是相当多的,以Azure ACS和Azure storage为例,如果想要学好Azure ACS,需要对各种网络协议:OAuth 2.0, Open ID, WS-federation,以及几种数据格式:SWT,JSON,SAML, SAML 2.0等都有一定的了解,其中ACS还可以加密令牌,又涉及到了一些加密相关的内容。学会了对网络编程会有相当相当大的帮助。同样Azure storage也有很多东西可以学习,特别是Azure storage底层涉及的知识点相当多,特别是涉及性能相关的问题,非常有深度!
由此可以看出如果想精通Azure 这个平台需要对各种技术都有一定的了解,这也是学习Azure需要注意的:
Azure不是一门技术,你无法在不了解其它技术的情况下只精通Azure, 要想学好Azure必须对网络,编程等相关方面知识都要熟练掌握。