Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
之前有做过一个最简单的Windows Azure的应用-Hello Windows Azure,之后在2008年的圣诞节又获得了Invitation Code to Windows Azure,这样就可以测试一下云端版本的Windows Azure应用了,也就是真正的Windows Azure Service。
因为应用非常的简单,其实主要就是根据Jim Nakashima的文章Deploying a Service on Windows Azure,对整个Windows Azure Service的部署进行一个实践和演练。
你可以将这篇Blog作为Jim Nakashima文章的中文版或图形版,我会贴更多的图。
根据Jim Nakashima文章的规划,整个从开发阶段到部署到云端运行会分为三个阶段:
第一:完成一个开发环境中完整应用,开发,测试和运行完成。
第二:如果应用涉及到云端的Windows Azure存储,那么这个阶段可以将开发环境的应用配置以云端的数据库帐号,进行测试确保数据访问这部分功能完整,另外由于Windows Azure存储是比较分割和独立的,基本以一个唯一的标示代表一种数据存储的能力,所以需要另外一个用户标示或访问的帐号,这个标示需要配置在配置文件中,而配置文件也需要上传到Windows Azure管理门户上,所以这个阶段,可以理解为Windows Azure存储相关的测试、配置和部署准备。因为我的这个应用没有使用任何的Windows Azure存储,所以可以不考虑这一步。
第三:则是将应用部署到云端的Windows Azure运行环境中。所以这篇文章的着重在第三阶段,即如何将一个应用部署到Windows Azure运行环境中,并且将其运行起来。正如下图标明的Jim Nakashima给出的部署步骤图示。
搞清楚了之后,就可以开始进行了各项工作了
首先,需要访问Windows Azure的管理门户,创建项目,在Windows Azure的运行环境中创建你的应用标示,然后进行应用的上传和配置。
访问:https://go.microsoft.com/fwlink/?LinkID=128009
转化后可能是下面的地址,之后输入你的Windows Azure帐号和密码。
https://lx.azure.microsoft.com/Cloud/Provisioning/Templates.aspx
选择New Project选项。
由于Windows Azure的运行环境是共享的托管运行环境,所以Project Label你可以想象成一个应用标示,之后你会发现其实它未来也可以会作为一个二级的域名(云服务名称)标示,而对于Windows Azure的运行环境本身而言,这个应用会有一个唯一的代码和你的Project Label/应用标示进行对应。
之后Windows Azure管理门户会让你选择一个服务名,如果你的服务名和Project Label刚好一样,这个服务名作为一个二级域名的访问资源,它需要在整个Windows Azure的运行环境唯一,如果已经存在那么Windows Azure管理门户会提示你,让你重新设定一个
设定了Project Label和服务名之后,意味着你可以进行到下一步,应用上传和配置阶段。此时它需要你将你的应用上传到Windows Azure的云端和托管环境中,Windows Azure会来决定部署到那台服务器上面。而且Windows Azure非常好的是,它在部署的过程中又进行了精细化管理,明显的将其分为了另外两个阶段,云端的部署测试阶段,和云端的运行阶段。
当项目完成之后,Windows Azure管理平台进入到上传部署阶段,首先你会进入到云端的部署测试阶段(Staging), 你会看到下图,云端的运行阶段(Production) 什么都没有,云端的部署测试阶段等待应用上传。
不过你会说,我上传什么应用啊,是将我的aspx还是C#代码上传上去吗? 这里还有一个应用打包的过程。这个是通过Windows Azure SDK提供的工具来完成的。也就是说Windows Azure不接受aspx还是C#代码文件,你需要用SDK中的cspack.exe来打包你的应用。当然如果你使用先进而强大的Visual Studio 2008,那么你可以通过图形化的方式来完成这个打包的过程。具体步骤如下:
首先你从上图,可以看到Windows Azure运行环境给你分配的应用标示—Application ID,你复制下这个ID和标示,然后到Visual Studio 2008选中项目选项,设置这个代码,如下图:
然后保存项目,重新编译项目。
然后在Visual Studio 2008中选中你的项目,并右键选择发布(Publish…..) 如下图
如果顺利完成,其实一般这步都会十分顺利的,你会发现Visual Studio 2008自动打开发布的目录,甚至会启动IE,访问下面这个地址:https://go.microsoft.com/fwlink/?LinkID=127998&AppID=0000000040007F1A
而0000000040007F1A正是你的应用标示。我的开发环境在一个虚拟机环境中,所以我会复制出发布目录中的文件,因为项目比较小,打包的文件和配置文件都比较小。
令人有些奇怪的是,我的项目是Hello,但是最后的发布目录似乎在C:\myProject\Hello\Hello\Hello\bin\Debug\Publish 目录中。
这下你会发现Visual Studio 2008已经帮你将应用打包好了,其实你需要感谢Windows Azure Tools for Microsoft Visual Studio,因为工作是它调用Windows Azure SDK的cspack.exe完成的。
有了打包的应用,你可以部署了,单击 Deploy…… 按键
之后就比较完美了,根据下面这幅图的要求,你基本上是按图填空,很简单了。
填空完毕,然后按Deploy按键。
之后你会发现下面的这个提示和警告,因为目前的Windows Azure运行环境对应用运行的实例有限制,基本上Web Role最大两个实例,后台的WorkRole也是两个(Note: The current constraint for the number of instances you can run on Windows Azure as part of the CTP is a maximum of 2 Web Role instances and 2 Worker Role instances.),不知道未来是否会增加还是超过的部分就要收费了。
这里可以啰嗦一下,其实这里面的技术含量还是挺高的,这意味着Windows Azure运行环境会帮你完成实例的生命周期管理,也就意味着可用性的提高,最大两个,技术上要么会有四个(一对一互备)或三个(N+1方式容灾) 。而且你之前设置的二级域名和这两个实例的可靠性,Windows Azure运行环境都会管理起来。
之后你只需要修改一下ServiceConfiguration.cscfg 文件即可—如下图,这个不用重新打包或发布一次,而且我相信,你知道这个故事之后,以后会在发布之前,先修改一下这个配置文件。
然后你需要准照下面的图示,去喝杯茶或稍稍等候一下,此时Windows Azure运行环境正在为你寻找合适的服务器进行程序化和自动化的部署。
如果顺利,你会迎来胜利的曙光, 出现下面的图示:
这表示你已完成了云端的部署测试阶段(Staging),此时你的应用已经成功地上传并且配置成功,Windows Azure运行环境已经完成了相关资源的查找,分配和配置,你可以在部署测试环境启动它,--如果成功表示它降落和被托管在一块云朵上了,并且被照顾的很好,而且也可以被运行了。运行成功,表示你的应用功能都正常了,唯一的差别是,这个应用还不能”出街见人” –即外界不可见状态,也可以理解为还没有和相关的域名进行绑定。
此时你还可以进行配置的查看,再修改一些参数等等。。。。。
如果没有什么问题或需要配置的,你可以启动这个应用了。启动成功后,如下图:
之后你点击中间的蓝色按钮(提升[Promote]到生产状态),即进入到云端的运行阶段。如下图:
(其实你会发现Promote会是一个非常好的功能,未来它也能让你转换到部署测试阶段(Staging))
你也会发现Windows Azure运行环境已经将你服务的访问地址开通,应用有了访问的域名。比如我的这个叫:https://ccboyhello.cloudapp.net
可以通过浏览器直接访问这个地址,你会发现下面的结果。呵呵,很好玩啊
Windows Azure有一个应用超市-Windows Azure Gallery,这样你可以登记你的服务,同样你也可以去里面找找,看看是否有我的这个,或是你喜欢的Windows Azure应用。
云端的感觉还是不错的,我喜欢Windows Azure,希望你也一样。