自从微软在今年6月6日宣布开展Windows Azure中国区的免费试用以来,大家都翘首以盼,希望能早日体验这项服务。无奈好事多磨,试用账号的发放比想象中来得慢了一些,即使是微软内部员工也很难获得账号。这两天我终于拿到一个试用账号,初步试用了一下由世纪互联运营的中国版Windows Azure.
总的来说,中国版和国际板的服务差别不大,由于在国内刚刚推出,而且服务仍处于试用阶段,并不是每项服务现在都可以试用,不过所有核心的服务都已经就绪了。另外值得一提的是,在开发工具、API、命令行工具方面,国内版和国际版没有任何区别,用户只需要指向不同域名即可用同一套工具管理不同的服务
下面就从几个方面简单对比下国内版和国际版的Azure服务
Windows Azure国际版的入口是www.windowsazure.com,管理门户地址是manage.windowsazure.com
中国版的URL采用了.cn域名,门户地址是www.windowsazure.cn,管理门户地址是manage.windowsazure.cn
需要注意的是,在全球版Azure管理门户里,用户可以通过一个门户管理8个区域(不包括中国)的服务,而在中国版的门户里,用户只能选择中国的两个区域:华北和华东。也就是说,国内版和国际版是完全隔离的,即使管理门户也是完全分开的,用户无法从国内版看到国际版的服务,反之依然。用户如果希望同时部署服务到国内和国外,需要分别订阅世纪互联的服务和微软的服务,然后从两个门户分别进行部署
此外,Windows Azure还有一系列域名用于各个服务、API等用途,对比如下:
中国版 | 国际版 | |
云服务与虚拟机域名后缀 | .chinacloudapp.cn | .cloudapp.net |
SQL数据库域名后缀 | .database.chinacloudapi.cn | .database.windows.net |
存储服务域名后缀 | .blob/table/queue.core.chinacloudapi.cn | .blob/table/queue.core.windows.net |
服务总线域名后缀 | .servicebus.chinacloudapi.cn | .servicebus.windows.net |
管理API域名 | management.core.chinacloudapi.cn | management.core.windows.net |
可见,以上这些域名中,中国区使用的顶级域名有两个,分别是chinacloudapp.cn和chinacloudapi.cn,国际版的是windows.net和cloudapp.net
除了域名后缀以外,中国版和国际版命名规则完全一样
国际版目前支持免费试用和多种付费方式,而国内版由于还没有商用,目前只有免费试用(目前试用暂停申请了),而具体的费用需要等正式商用才可公布
登陆国内版的管理界面后,能够使用的服务一目了然。可以发现一些核心的服务都已就绪,包括虚拟机、云服务、SQL数据库、存储、服务总线、虚拟网络。与国际版相比,目前主要欠缺的服务包括:移动服务、媒体服务、大数据HDInsight、SQL报表、恢复服务、AD服务、应用商店和流量管理器
此外,在门户左上角不难发现“由世纪互联运营”字样,说明该服务是由世纪互联提供的
在功能方面,目前国内已发布的服务和国际版的服务是同步的,比如国际版里面虚拟机服务的创建过程在上个月进行了更新,而现在中国版的虚拟机创建过程跟国际版是一样的。不过,某些服务的某些功能并没有在国内版体现,比如,国内版目前也没有自动伸缩和健康监控功能。
一个令人欣慰的功能点,是国内版虚拟机提供中文Windows镜像。此外,同样提供了SQL、SUSE、Ubuntu和CentOS镜像
选择中文Windows部署后,可以看到部署后的虚拟机确实是中文的
Windows Azure的一大优势,是提供了丰富的开发工具,包括Visual Studio集成、Eclipse集成、命令行工具、API等。使用这些工具,开发者可以不必依赖于门户,同时也可以调用很多PaaS服务,比如消息总线。尽管国内版和国际版由不同厂商运营,具有不同的URL,但是Windows Azure在设计之初已经考虑到这种可能性,各种开发工具并不是通过硬编码与Azure集成,而是通过一个名为publishsetting的订阅文件,这个文件里面定义了用户的订阅信息,主要是目标URL、订阅名称、证书等。只要将这个订阅信息导入开发工具,开发工具就可以与相应的Azure服务进行集成。对于不同运营商提供的Azure服务,只需要提供不同的publishsetting文件就可以实现开发工具的集成。
在Visual studio上连接中国区Azure的方法如下。
在服务器资源管理器视图中,右键Windows Azure图标(本机需要事先安装好Windows Azure SDK for .NET),点击“导入订阅”
在弹出的对话框中点击“下载订阅文件”
这会打开一个浏览器,指向https://manage.windowsazure.com/publishsettings/xxxx这个地址,这个地址是全球版的,要下载中国区的订阅文件,只需要将URL里面的.com改为.cn。进入这个URL后,保存下载的文件到本地
在上一步的Visual studio对话框中选中该下载的文件,Visual studio就可以自动导入该中国区订阅里面的各种服务了。
尽管中国版和国际版的管理门户是相互隔绝的,开发者却可以从Visual studio里面同时管理中国版和国际版的Azure服务,如果我们希望只看到中国区的服务,可以点击“筛选器服务”
然后在订阅和区域里面选择需要显示的服务
Eclipse配置方法(已安装Azure插件)如下:
首先在Windows-Preference->Windows Azure里面将Active Set改为windowsazure.cn,然后保存
这样Eclipse会将中国区作为发布目标。接下来就可以正常发布了。
在项目发布窗口上,点击Import from publish-setting
在弹出的对话框中点击Download Publish-setting file。这时Eclipse会打开windowsazure.cn窗口,下载中国区订阅文件。下载后导入该文件即可以继续发布
如果使用Powershell命令行工具,也可以通过导入中国区的订阅文件管理中国版的服务
如果通过代码直接调用Azure API,可以按照前面所述的URL对应方式修改目标URL
如果大家已经在国际版Azure上运行应用,或者希望部署应用到国内版与国际版,该如何进行数据同步呢?显然,国内和国际的数据中心是完全隔离的,所有跨越中国边界的访问都是通过互联网进行,Azure本身不会进行任何跨越中国边界的数据同步。这样我们需要有Azure之外的工具进行数据同步,这要分不同情况处理:
[虚拟机与虚拟机磁盘]
虚拟机磁盘上的数据都存储在Azure Blob上,这些磁盘往往都比较大,Linux的有30G,Windows的有130G。尽管我们可以把磁盘下载下来,再上传到中国区,但这个过程会比较长。简单的做法,是在国内和国外部署相同的VM,然后用VM同步工具,比如rsync
[SQL数据库]
这个比较简单,在Azure界面上把数据导出为bacpac,再进入另一边的门户导入即可。目前国内版SQL数据库不支持SQL Sync
[Blob存储]
用Azcopy工具进行文件拷贝即可,Azcopy可以拷贝一个container下的所有文件
http://blogs.msdn.com/b/windowsazurestorage/archive/2013/04/01/azcopy-using-cross-account-copy-blob.aspx
拷贝方式为
AzCopy https://<sourceaccount>.blob.core.windows.net/<sourcecontainer>/ https://<destaccount>.blob.core.chinacloudapi.cn/<destcontainer>/ /sourcekey:<key> /destkey:<key> /S
见后一篇文章
最后,Windows Azure中国区的官方网站上也介绍了中国区的具体差异。可参考
http://mcwamarketingportal.cloudapp.net/zh-cn/develop/other/developerdifferences/