如何把应用程序部署到Windows Azure中

如何把应用程序部署到Windows Azure中,第1张

在过去的文章中,我们已经讨论过了如何在Azure中创建一个“Hello World”应用程序。在本文中,我们主要讨论如何把应用程序部署到Windows Azure中。要在Azure中部署应用程序,有两个文件是必需的——一个包文件和一个配置文件。配置文件在CloudService1中,叫作ServiceConfiguration.cscfg。

要创建包文件,可以在CloudService项目上“右击”,然后点击“Publish”。

然后,它会询问你是创建一个包文件还是把它发布到Azure中。

如果选择第一个选项,它会创建包文件,并打开这个浏览器。

有了包文件(.cspkg)和配置文件(.cscfg) ,我们就可以通过管理门户,azure service management cmdlets,Cerebrata的CloudStorageStudio,或者Cerebrata的Azure management cmdlets来部署它了。如果我们在发布对话框中选择第二个选项的话,我们也可以通过visual studio直接上传它。它需要一个subscriptionId和一个X509 v3版的证书,

然后,我们必须提供部署环境和储存账户。

无论我们选择了哪个选项,我们都需要:

1,一个Windows Azure订阅——当我们注册Azure的时候,一个Subscription会和我们的Live ID关联起来。

2,一个Windows Azure Hosted Service——我们需要为部署创建一个Hosted Service。它可以提供两种部署环境——生产环境和测试环境

3,一个Windows Azure存储账户——当我们通过visual studio部署的时候,包文件首先会被上传到这个存储账户的blob storage中,然后通过blob service来部署。

总结一下通过管理门户部署应用程序的几个简单步骤:

1,要部署应用程序,我们需要一个包文件和配置文件。

2,要创建一个包文件应该点击“Publish”,然后选择只创建包文件那个选项。

3,登录到管理门户。

4,如果你想在一个新的服务中部署应用程序,创建一个新的Hosted Service。

5,然后,在部署环境方面,我们既可以选择部署到生产环境,也可以部署到测试环境。

6,然后开始部署。

7,在管理门户上,你可以看到部署的进度。

8。要删除一个部署,首先应该点击“Stop”,当它停止以后再删除它。

1.通过远程桌面的本地资源访问

最简单的方式是通过远程桌面的本地资源访问功能。在虚拟机页底部点击“连接”后,浏览器会提示下载rdp文件。

不要直接打开该文件,而是选择另存,将其存在本地

对于下载的RDP文件,不要直接打开,而是右键,选择Edit

然后在本地资源页中,点击More,然后选中本地要访问的磁盘

这样登录虚拟机后,就可以在资源管理器里面看到本地磁盘,直接进行文件拷贝。

这种访问最方便,不过缺点是受网络影响较大。如果文件较大或者较多,效率比较低

2. 通过Blob存储中转

Azure存储提供了近乎无限的存储空间,我们可以把要上传的文件先上传到Blob存储,然后再从Azure的各虚拟机下载

Blob的上传下载需要Blob工具,比如Azure Storage Explorer, CloudXplorer等,具体可参考http://blog.csdn.net/shaunfang/article/details/8647557

在本地和Azure虚拟机上,都需要安装这个工具

3. 通过FTP

用FTP看似是个好主意,大家都会用。但这里存在一个问题,就是Azure的安全设计。Azure的虚拟机全部位于防火墙后,所有的外部访问均需事先定义端口映射。对于通常的Web访问来说,不是什么问题,因为我们会打开80端口。但是FTP就有点麻烦了。

首先,我们需要了解下FTP的工作原理。FTP基于两个端口运作,21端口是命令端口,用于接受客户连接,此外还有一个端口专门用于传数据。这个端口的确定有两种方式,分别是Passive和Active。其中Active的意思是,客户端主动监听一个端口,然后让服务器反向连接至该端口进行数据传递。这对于大部分场景不可用,因为客户端往往在内网,内网开的端口外网是访问不了的。于是FTP缺省用Passive模式,即服务器随机开一个端口,告诉客户端,然后让客户端连接至该端口传数据。由于这个端口是随机创建的,自然无法在Azure上提前定义端口映射,FTP也就无法运作了。

那么是不是FTP就没法用了?也不是。FTP服务器都支持指定数据端口范围,如果我们限定数据端口在一个很小的范围内,比如30000-30004,然后我们在Azure上把这些端口都定义了,那么就可以解决FTP的防火墙穿越问题。

下面我们实际测试下,首先我们在一台CentOS上配置VsFtp服务,并在Azure上定义21端口,再用FTP客户端访问

我们发现FTP试图连接一个服务器随机创建的端口50118,该端口没有在Azure防火墙上定义,自然无法连通。

接下来,我们修改vsftp配置,在/etc/vsftpd/vsftpd.conf末尾添加

pasv_min_port=30000

pasv_max_port=30001

表示数据端口采用30000-30001,重启ftp服务

然后进入Azure门户,为这两个端口定义防火墙映射

再次使用ftp客户端连接

工作正常了!可见客户端正是用30001访问服务器端数据端口


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7978715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存