Windows Azure初体验

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 目前在IT界,云这个概念的第一意思不再是词典里的解释了。不过它们还是有相同点的——也许确实会酝酿出一块大蛋糕,可也是飘在天上,众神分食之,与我等P民无关。所谓云,不过是网络时代发展到一定阶段的必然产物,而并非划时代的技术质变,so,我一直保持既不排斥亦不主动接触的立场。

目前在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使用必读

为什么我们需要域?Active Directory系列之一 

部分云端存储类型介绍和比较:数据管理和业务分析

如何向Azure虚拟机传文件

Windows Azure Virtual Machines设置IIS 7.5 FTP

什么是IaaS, PaaS和SaaS及其区别

 

转载请注明本文出处:http://www.cnblogs.com/newton/p/3913679.html 

目录
相关文章
|
3月前
|
Linux C++ Windows
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
|
10天前
|
C# Windows
【Azure App Service】在App Service for Windows上验证能占用的内存最大值
根据以上测验,当使用App Service内存没有达到预期的值,且应用异常日志出现OutOfMemory时,就需要检查Platform的设置是否位64bit。
35 11
|
3月前
|
PHP Windows
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
|
3月前
|
PHP 开发工具 git
【Azure 应用服务】在 App Service for Windows 中自定义 PHP 版本的方法
【Azure 应用服务】在 App Service for Windows 中自定义 PHP 版本的方法
|
3月前
|
网络安全 API 数据安全/隐私保护
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
|
3月前
|
Shell PHP Windows
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
|
3月前
|
应用服务中间件 nginx Windows
【Azure 应用服务】在App Service for Windows中实现反向代理
【Azure 应用服务】在App Service for Windows中实现反向代理
|
3月前
|
安全 Windows
【Azure 云服务】当Windows系统发布新的安全漏洞后,如何查看Azure云服务(Cloud Service)的实例是否也更新了安全补丁呢?
【Azure 云服务】当Windows系统发布新的安全漏洞后,如何查看Azure云服务(Cloud Service)的实例是否也更新了安全补丁呢?
|
3月前
|
消息中间件 Kafka 网络安全
【Azure Developer】在Azure VM (Windows) 中搭建 kafka服务,并且通过本地以及远程验证 发送+消费 消息
【Azure Developer】在Azure VM (Windows) 中搭建 kafka服务,并且通过本地以及远程验证 发送+消费 消息
|
3月前
|
网络协议 Linux 网络安全
【Azure 应用服务】更便捷的方式抓取Azure App Service for Windows的网络包
【Azure 应用服务】更便捷的方式抓取Azure App Service for Windows的网络包