Windows Azure初体验
目前在IT界,云这个概念的第一意思不再是词典里的解释了。不过它们还是有相同点的——也许确实会酝酿出一块大蛋糕,可也是飘在天上,众神分食之,与我等P民无关。所谓云,不过是网络时代发展到一定阶段的必然产物,而并非划时代的技术质变,so,我一直保持既不排斥亦不主动接触的立场。but,最近我有个个人服务器快到期了,于是也打算尝试一番。
现在比较知名的云服务有很多,国内的首推阿里云,而作为.Neter,Windows Azure也是一种选择。本人同时申请了两者的免费试用体验,对于阿里云,在申请阶段博主被折腾得够呛,后面可能会写一篇吐槽的随笔;相对来说,Windows Azure价格昂贵,不过既然是免费体验(90天),试试亦无妨。
目前Windows Azure在国内由世纪互联运营,比较坑的是很多服务国内还没有开始运营。另外不能使用微软账号登录Windows Azure管理门户,而是使用在注册域名时填写的用户ID。假如您注册的域名是xxxx.partner.onmschina.cn,那么您的登录账号就是“用户ID@xxxx.partner.onmschina.cn”。不出意外的话,申请之后两三天,你就能收到一份告知通过的邮件。
前几天又去Windows Azure中国首页看了下,发现官网已经不再接受新的试用申请,应该说博主搭了一趟末班车,运气!(截止到博主发文,Windows Azure中国官网又推出了所谓1元试用计划,名额为1500人,试用期一个月,且有积分限制)
另:本文只简略涉及博主接触到的功能,且并不保证所有阐述都正确。
登录后,会看到类似下图的页面,顶部为工具栏,左侧显示Windows Azure所提供的所有云服务,右侧面板显示您已在使用的服务。
点击顶部工具栏的下拉按钮,会弹出几个链接,其中“文档”链接到微软总部的微软云官网(不是中国[世纪互联]官网)。左侧菜单的一些概念我接触的并不多或者从没接触过,比如Active Directory,登录进来之后就发现其中已经存在一条目录了,即登录ID。根据网资(网上资料)所说——IT管理员通过 Windows Azure Active Directory,可以轻松管理用户对数百个云 SaaS 应用程序(如 Office 365、Box、GoToMeeting、DropBox、Salesforce.com 等)的访问,具体如单点登录、权限配置等等——so,我觉得这比较适用于企业内部系统,而相关的也有“域”、“命名空间”的概念,可以说,这应该是原来的一套windows服务器Active Directory在云端的重现。
存储
Windows Azure有个所谓的“存储账户”的概念,并提供了三种类型的存储服务——Blob 服务、表服务、队列服务。Blob 存储是一项可存储大量非结构化数据(如文档、图片、流媒体等)的服务;表服务提供类似NoSql方式存储数据;队列存储是一项可存储大量消息的服务,用户可以通过经验证的呼叫,使用 HTTP 或 HTTPS 从世界任何地方访问这些消息。
相对来说,Blob存储是更基础的存储服务,比如虚拟机中的数据磁盘即是Blob存储。因此,为避免出现硬件故障并提高可用性,Windows Azure在同一数据中心的三台计算机上复制每个 blob。写入 blob 时会更新所有三个副本,因此稍后的读取操作不会导致不一致的结果(博主并未找到任何资料涉及到这三个副本的负载平衡说明,因此可认为这里多个副本的存在只关乎可靠性,而非性能)。您还可以指定将 blob 数据复制到位于同一区域中但至少相距 500 英里的另一个 Windows Azure 数据中心。此复制称为“异地复制”,发生在 blob 更新后的几分钟内,可用于灾难恢复。我们还可以通过终结点对Blob数据进行读写操作,这里不再赘述。
对表服务的理解请参看:Windows Azure 表存储:不同于传统数据库,博主表示对文章中的一句话印象深刻:在学习新知识的时候,避免自己被迫转换观念,但却无法真正理解。
队列存储博主暂未研究,按过不表。
虚拟机
简单的说,虚拟机即是远程服务器。在管理门户中新建虚拟机的过程很简单。新建完毕后,点击网页下部工具栏的“连接”按钮,浏览器会自动下载远程连接用到的rdp文件:
下载完毕后,双击打开远程登录框,填入之前新建时设置的用户名和密码即可登录虚拟机(请自动忽略右上角亮点)。
可以看到,虚拟机自带系统磁盘和一个临时磁盘。Azure上的虚拟机上有两种磁盘,一种是存储在Blob存储上的,一种是存储在虚拟机所在物理机磁盘上的。前一种由于使用了Blob存储,其数据会按照Blob的存储策略在本地存3份,并在异地保持一份镜像,其数据的可用性和可靠性都很高,虚拟机通过网络访问这些Blob存储,不依赖于特定一台物理机。后一种依赖于物理机,如果物理机故障或进行维护,这个存储可能会被清空。显然,如果我们使用虚拟机的时候不分清楚磁盘类型,就会导致数据丢失。上图的C盘(系统盘)是Blob盘,D盘是临时盘。
临时盘往往空间比较大,完全不用的话有些可惜。另外,临时盘在本地,存取数据要比Blob快。因此,临时盘适合存放一些临时数据,比如裸日志、中间结果、上传下载的缓存等等。
为了提高运行效率,默认情况下,系统盘开启了读写缓存。
由于开启了磁盘缓存(主要是写入缓存),因此会有写入数据丢失的风险。综上所述,对于需要持久化的数据,比如数据库文件,系统盘和临时盘都不是很好的存放位置(当然你也可以关闭系统盘的写入缓存,不过有些得不偿失了,请看在 Windows Azure 上设置 SQL Server 虚拟机后续步骤一节)。我们可以通过附加一个新的数据磁盘到虚拟机来解决这个问题(当然得禁用写入缓存),附加的新磁盘是Blob盘。附加磁盘的步骤请参看:如何将数据磁盘附加到虚拟机。Now,我们就可以在虚拟机中安装SQL Server,并将数据库文件放到新的数据磁盘上了。如前所述,数据库似乎存储在运行服务器的 VM 的本地磁盘上。不过,事实上,其中每个磁盘都写入到 Windows Azure blob。与任何 Windows Azure blob 一样,它所包含的数据会在数据中心中复制三份。还可以使用 SQL Server 数据库镜像等方式来提高可靠性。
在新建虚拟机的过程中,会看到有个“可用性集”的选项,可参看:管理虚拟机的可用性。可结合使用可用性集和负载平衡终结点,以确保应用程序始终可用并且高效运行。有关使用负载平衡终结点的更多信息,请参见对虚拟机进行负载平衡。
SQL Database
除了在虚拟机中安装SQL Server外,。Windows Azure 提供了称为 SQL Database 的 PaaS 技术,该技术允许您对关系数据进行单独管理。
新建SQL Database时会让你选择在已有服务器上新建库还是新建一个服务器,下图所示为部署在两台服务器上的两个SQL Database。
SQL Database 不为每个客户提供自己的 SQL Server 物理实例。相反,它为每个客户提供多租户服务和逻辑 SQL Database 服务器。所有客户共享该服务提供的计算和存储容量。与 Blob 存储一样,SQL Database 中的所有数据都存储在 Windows Azure 数据中心的三台独立计算机上,从而为您的数据库提供内置的高可用性 (HA)。虽然对应用程序来说,SQL Database 非常类似于 SQL Server,但它的行为与运行在物理计算机或虚拟机上的 DBMS 不完全相同。因为它运行在共享硬件上,所以其性能将随其所有客户置于该硬件上的负载而变。这意味着 SQL Database 中存储过程等任务的性能可能每天都在变化。
在使用本机客户端访问云端数据库之前,需要配置服务器,允许访问它的IP地址(配置页面会自动获取你的公网地址,你也可以添加其它允许访问的IP[范围]);由于网站也打算放在云端,所以设置其它云服务也能访问该服务器。这一步骤在服务器的配置选项卡下进行。
Now, 现在就可以在本机使用客户端访问云端数据库了,以上图test数据库为例,链接地址为:rmvatzpfci.database.chinacloudapi.cn,1433。连上之后,就可以开始部署了,比如迁移数据库,如下图:
这同以往的数据库部署并无不同,博主非常顺利地将本地数据库迁移到云数据库。然而在使用时发现,select into 到临时表的方法将出现异常——“Statement 'SELECT INTO' is not supported in this version of SQL Server.”网上资料( SELECT INTO With SQL Azure)说SQL Azure要求所有表都要有聚合索引(经验证并不需要),而这对于select into 创造的临时表来说自然是强人所难。不论如何,我们可以使用先create临时表(不需要聚合索引),再Insert INTO 的方式使用临时表。
关于 SQL Database 和虚拟机中的 SQL Server ,博主查阅资料后也没有发现很大不同,也许要深入使用后才能真正理解并区别开来。
网站
关于如何在Azure管理门户中新建一个默认空站点不再赘述,在这步完成之后,就可以使用VS将网站直接发布到云端了。步骤如下:
1、在管理门户中点击一条网站记录进入网站管理页面,then点击“下载发布文件”,将会下载一个PublishSettings类型的文件:
2、打开vs(博主用的是2012),右键项目——发布——配置,点导入,选择之前下载的配置文件:
3、确定后,下一步为连接到服务器的必要的验证信息:
4、下一步,在“设置”选项卡将看到应用程序使用到的数据库。该步骤会自动检测EF context和web.config中的数据库连接字符串的key值,可以按需设置连接字符串(在本例中,连接数据库即为前述云端SQL Database),也可以发布成功后在管理门户中手动添加:
5、下一步,选择需发布的文件,点击发布,完成。
我们还可以使用ftp发布网站和管理网站文件,ftp地址在网站管理的仪表盘选项卡下:
关于网站是否有负载平衡的支持,官方说“内置自动缩放和负载平衡”,但资料较少。
[更多]参考资料:
部分云端存储类型介绍和比较:数据管理和业务分析
Windows Azure Virtual Machines设置IIS 7.5 FTP
转载请注明本文出处:http://www.cnblogs.com/newton/p/3913679.html
Windows Azure初体验的更多相关文章
- Windows Azure 初体验
最近看到windows azure 在做活动,只需花一块钱就可以体验一个月的windows azure. 于是,我就注册了一个账号也尝试一把云时代,传送门. 注册很简单的,成功后可以看到这个界面. 然 ...
- Windows Azure使用体验
Windows Azure在今年6月6日由世纪互联代理在中国运营,目前只能体验,没有开放注册.不过,体验的门槛比较高,只对企业开放,未来大量对外开放使用貌似时间还早.大家都懂得,“国内门槛高”.本人在 ...
- Windows Azure 使用体验
本文只是对Windows Azure的肤浅使用做个记录,算是简单入门吧. 一.门户网站 Windows Azure其实有两个版本,我们在国内所说的或者说所用的就是有别于国际版的,主要原因我想各位也是知 ...
- Windows Azure
Windows Azure初体验 目前在IT界,云这个概念的第一意思不再是词典里的解释了.不过它们还是有相同点的——也许确实会酝酿出一块大蛋糕,可也是飘在天上,众神分食之,与我等P民无关.所谓云,不过 ...
- Windows Azure 免费初体验 - 创建部署网站
前几天在看到有个学Windows Azure课程,送Windows Azure的活动,课程地址:http://www.microsoftvirtualacademy.com/ 在活得体验资格后,就迫不 ...
- Windows Azure 微软公有云体验(三) IIS中文编码解决方案
Windows Azure 微软公有云已经登陆中国有一段时间了,现在是处于试用阶段,Windows Azure的使用将会给管理信息系统的开发.运行.维护带来什么样的新体验呢? Windows Azur ...
- Windows Azure 微软公有云体验(二) 存储成本比较分析
Windows Azure 微软公有云已经登陆中国有一段时间了,现在是处于试用阶段,Windows Azure的使用将会给管理信息系统的开发.运行.维护带来什么样的新体验呢? Windows Azur ...
- Windows Azure 微软公有云体验(一) 网站、SQL数据库、虚拟机
Windows Azure 微软公有云已经登陆中国有一段时间了,现在是处于试用阶段,Windows Azure的使用将会给管理信息系统的开发.运行.维护带来什么样的新体验呢? Windows Azur ...
- Windows Embedded Compact 7初体验
Windows Embedded Compact 7初体验 Windows Embedded Compact 7已经出来半年多了,一直没时间搞.最近它又出了Refresh的版本,电脑也换了个1T的硬盘 ...
随机推荐
- 【HDU1257】最少拦截系统(贪心)
最少拦截系统 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- C语言字符串操作总结大全(超详细)
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat( ...
- golang下的grpc
facebook的thrift也是开源rpc库,性能高出grpc一倍以上,grpc发展的较晚,期待以后有长足的进步.简单来说thrift = grpc + protobuf gRPC基于HTTP/2标 ...
- Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory'
1.根本原因在http://askubuntu.com/questions/606732/php-fatal-error-uncaught-exception-pdoexception-with-me ...
- 定制个性化码表技术 ibus
在不同用户的工作环境中,都会根据各自使用的字符集的不同,而需要定制优化各自的输入法码表,例如,在GB18030中的大量汉字,或许因为输入法码表的老旧,而难于利用自己熟悉的“五笔”方法快速录入,同样,需 ...
- Add Digits, Maximum Depth of BinaryTree, Search for a Range, Single Number,Find the Difference
最近做的题记录下. 258. Add Digits Given a non-negative integer num, repeatedly add all its digits until the ...
- docker网络配置方法总结
docker启动时,会在宿主主机上创建一个名为docker0的虚拟网络接口,默认选择172.17.42.1/16,一个16位的子网掩码给容器提供了65534个IP地址.docker0只是一个在绑定到这 ...
- 兵家必争之地——关于O2O商业模式的一点遐想
先来说说什么是O2O(online to offline)商业模式.创新工场CEO李开复在提及O2O模式时指出,“你如果不知道O2O至少知道团购,但团购只是冰山一角,只是第一步”.O2O营销模式又称离 ...
- 一次Redis的使用Bug记录(exec)
博主在一次项目中,使用了工具类中的Redis类,因为该Redis没有封装管道pipeline和exec命令,所以就大笔一挥来了一段__call; 代码如下(其中$this->_connect() ...
- sql事务的调用
一.数据库的SQL USE [Text]GO/****** Object: StoredProcedure [dbo].[mon] Script Date: 2017-01-03 15:59:28 * ...