Windows Azure入门教学系列 (五):使用Queue Storage

本文是Windows Azure入门教学的第五篇文章。 本文将会介绍如何使用Queue Storage。Queue Storage提供给我们一个云端的队列。我们可以用Queue Storage来进行进程间的相互通信(包括运行在不同机器上的进程之间的通信)。 一个使用Queue Storage经典的场景是,在一个Web应用程序中,用户通过表单递交给服务器数据,服务器收到数据后将进行处理,而这一处理将花费很多时间。这种情况下,服务器端通过Queue Storage可以把用户递交的信息存储在队列中,后台再运行一个程序从队列中取得数据进行信息的处理。 以往如果程序时运行在Windows操作系统上,那么我们可以使用MSMQ来做类似的工作。而Queue Storage的出现为我们提供了另一种选择。特别是在非Windows操作系统上,我们依然可以使用Queue Storage的REST API来很方便地使用它。 有关Queue Storage REST API的详细信息,请参见Queue 服务 API。 为了方便.NET开发人员,我们在SDK中提供了Microsoft.WindowsAzure.StorageClient类来帮助发送REST请求。 在开始本教学之前,请确保你从Windows Azure 平台下载下载并安装了最新的Windows Azure开发工具。本教学使用Visual Studio 2010作为开发工具。 步骤一:创建解决方案和项目 由于我们要在本地模拟环境下测试Queue Storage,首先,请确保Storage Emulator已经启动。我们可以找到管理器的进程手动启动或者让Visual Studio 2010帮助我们启动他。 右击工具栏中Windows Azure模拟器的图标,选择”Show Storage Emulator UI”。弹出如下图所示的窗口: 我们要关注的是Service management中Queue所在的一行。要确保Status为Running。 确认完毕后启动Visual Studio 2010,并且新建两个Console项目。我们将演示如何在一个Console程序中往Queue Storage中添加信息然后另外一个Console程序如何读取并处理信息。 步骤二:添加SDK程序集引用 请在项目属性页里确认项目的Target framework的值是.NET Framework 4或.NET Framework 3.5。然后在两个Console项目中均添加C:\Program Files\Windows Azure SDK\v1.3\ref\Microsoft.WindowsAzure.StorageClient.dll的引用。该路径为SDK默认安装路径,如果你不能在这个路径中找到Microsoft.WindowsAzure.StorageClient.dll请从SDK安装路径中寻找。 步骤三:添加代码 首先在两个项目中的Program.cs中均引用命名空间: using System.Threading; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.StorageClient;   然后在其中一个项目(为了叙述方便,后面称之为Client项目)的Main方法中加入如下代码,我们将用它来向Queue Storage中添加信息。  …

5

Windows Azure入门教学系列 (一): 创建第一个WebRole程序

这是一系列Windows Azure入门教学文章的第一篇。 在第一篇教学中,我们将学习如何在Visual Studio 2010中创建一个WebRole程序(C#语言)。 在开始本教学之前,请确保你从Windows Azure 平台下载下载并安装了最新的Windows Azure开发工具。本教学使用Visual Studio 2010作为开发工具。 步骤一:创建解决方案和项目 以管理员权限打开Visual Studio 2010,点击File,选择New,点击Project按钮: 在弹出窗口中按照下图所示,选择Windows Azure Project模板,命名项目为FirstWebRole,点击OK按钮创建项目:   在弹出窗口出现后,按照下图所示,分别点击ASP.NET Web Role, “>”按钮。该步骤会在右边窗口中生成一个新的WebRole项。点击OK。   步骤二:观察生成的项目 项目结构如下图所示: 步骤三:运行程序 按F5键开始调试程序。如果你是第一次运行Windows Azure项目,你将会见到Development Storage初始化的窗口,直接点击OK按钮: 然后会见到下面的页面: 至此我们已经创建了第一个WebRole程序。如果你留心的话,会发现任务栏里多了一个程序的图标,见下图:   这个就是Windows Azure模拟器,让我们在本地测试自己的程序是否能够在Windows Azure Platform上运行。通常情况下如果在本地测试通过的话便能够在Windows Azure Platform上正常运行,但是也有一些例外情况。对于这些问题,我们会在以后的文章中详细介绍。 在这一教学系列的第二篇文章中,我们将会把这一程序发布到Windows Azure Platform上,这样这个页面就能被互联网上任意用户访问了。

5

Windows Azure入门教学系列 (四):使用Blob Storage

本文是Windows Azure入门教学的第四篇文章。 本文将会介绍如何使用Blob Storage。Blob Storage可以看做是云端的文件系统。与桌面操作系统上不同,我们是通过REST API来进行对文件的操作。有关REST API的详细信息,请参见Blob 服务 API。 为了方便.NET开发人员,我们在SDK中提供了Microsoft.WindowsAzure.StorageClient类来帮助发送REST请求。 在开始本教学之前,请确保你从Windows Azure 平台下载下载并安装了最新的Windows Azure开发工具。本教学使用Visual Studio 2010作为开发工具。 步骤一:创建解决方案和项目 由于我们要在本地模拟环境下测试Blob Storage,首先,请确保Storage Emulator已经启动。我们可以找到管理器的进程手动启动或者让Visual Studio 2010帮助我们启动他。 右击工具栏中Windows Azure模拟器的图标,选择”Show Storage Emulator UI”。弹出如下图所示的窗口:   我们要关注的是Service management中Blob所在的一行。要确保Status为Running。 确认完毕后启动Visual Studio 2010,并且新建一个Console项目。 步骤二:添加SDK程序集引用 请在项目属性页里确认项目的Target framework的值是.NET Framework 4或.NET Framework 3.5。然后添加对C:\Program Files\Windows Azure SDK\v1.3\ref\Microsoft.WindowsAzure.StorageClient.dll的引用。该路径为SDK默认安装路径,如果你不能在这个路径中找到Microsoft.WindowsAzure.StorageClient.dll请从SDK安装路径中寻找。 步骤三:添加代码 首先引用命名空间: using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.StorageClient;   然后在Main方法中加入如下代码:   static void Main(string[] args) {     var storageAccount = CloudStorageAccount.DevelopmentStorageAccount;     var blobclient = storageAccount.CreateCloudBlobClient();       // 检查container是否被创建,如果没有,创建container…

4

云计算简介

简介   大家知道什么叫做云计算吗?事实上,目前并没有一个确定的定义。然而概括来讲,所谓的云计算,指的就是把你的软件和服务统一部署在数据中心,统一管理,从而实现高伸缩性。 云计算拥有以下特点: ·         虚拟化和自动化 ·         服务器,存储介质,网络等资源都可以随时替换 ·         所有的资源都由云端统一管理 ·         高度的伸缩性以满足业务需求 ·         集中于将服务传递给业务   云计算的部署方式   从部署方式来说,总共有两类云计算: ·         私有云:数据中心部署在企业内部,由企业自行管理。微软为大家提供了Dynamic Data Center Toolkit,来方便大家管理自己的数据中心。详细情况可以参考http://www.microsoft.com/hosting/dynamicdatacenter/Home.html。 ·         公共云:数据中心由第三方的云计算供应商提供,供应商帮助企业管理基础设施(例如硬件,网络,等等)。企业将自己的软件及服务部属在供应商提供的数据中心,并且支付一定的租金。Windows Azure正是这样一个公共云平台。   云计算的运营方式   从运营方式来说,总共有三类云计算: ·         软件即服务(SaaS):云计算运营商直接以服务的形式供应软件,供最终用户使用。有些服务还提供了SDK,从而使得第三方开发人员可以进行二次开发。在这种运营模式下,开发人员通常只能针对现有的产品开发插件,而无法充分挖掘平台和操作系统的特点,不过他们可以在现有产品的基础上添加新的功能,而不必从头开始实现。微软的Bing,Windows Live,Microsoft Business Productivity Online等产品就属于这一类型。 ·         平台即服务(PaaS):云计算运营商将自己的开发及部署平台提供给第三方开发人员,第三方开发人员在这个平台上开发自己的软件和服务,供自己或其它用户使用。在这种运营模式下,开发人员有了更多的自由,可以发挥出平台的强大功能,而不受现有产品的束缚。Windows Azure正是这样一个产品。 ·         基础设施即服务(IaaS):云计算运营商提供但不管理基础设施,第三方开发人员将开发好的软件和服务交给自己公司的IT管理员,由IT管理员负责部署及管理。在这种运营模式下,开发人员和IT管理员有最大限度的自由,然而由于必须自行管理部分基础设施,因此成本通常也会较大,对管理员的要求也会较高。目前微软尚未提供IaaS的云计算运营模式,不过我们正在考虑如何给予开发人员和IT管理员更多的自由。   总结   云计算指的就是把你的软件和服务统一部署在数据中心,统一管理,从而实现高伸缩性。从部署方式来说,云计算可以分为私有云和公共云。从运营方式来说,云计算可以分成SaaS,PaaS,IaaS三类。Windows Azure是微软的公共云PaaS解决方案。在以后的博客中,我们将会对Windows Azure提供一个系统的介绍。

3

Windows Azure AppFabric 入门教学系列 (四):SWT 和OAuth WRAP介绍

  本文是Windows Azure AppFabric入门教学的第四篇文章。我们知道AppFabric中的Access Control Service在验证授权过程中会使用到SWT 和OAuth WRAP,所以为了更好的了解ACS其内部原理,我们会在本教程中简单地介绍SWT 和OAuth WRAP协议。 Simple Web Token (SWT) SWT简介: Simple Web Token (SWT)定义了传输简单声明的格式,其兼容性和格式能够轻易的被放入例如HTTP等协议的头部。一个简单的声明可以由一组名值对组成。 因为 SWT会传输重要的验证和访问信息,我们需要防止其被篡改。因此引入了唯一的强制的名值对- HMACSHA256。这一般为SWT最后一对名值对,其值为其他名值对的SHA 256 HMAC 值。 SWT 示例: 一SWT 发布者想要发布一个SWT,并带有如下信息 Issuer = issuer.example.com ExpiresOn = 1/1/2010, Midnight com.example.group = gold over18 = true   其 HMAC 密钥为 (base 64编码表示,该密钥客户端和服务器端各有一份) : N4QeKa3c062VBjnVK6fb+rnwURkcwGXh7EoNK34n0uM=   在本示例中, Issuer 和 ExpiresOn…

3

微软Windows Azure – 2.5 天深度技术训练营(北京场-Feb20-22)

前言 微软 Windows Azure 公有云即将落地中国。为了帮助国内客户尽快熟悉 Azure 技术和服务,微软Azure应用孵化团队很高兴地邀请您参加由微软和东方瑞通共同主办的 Windows Azure 免费深度技术训练营活动。训练营于2月20至2月22日在北京举办。本次训练营面向微软的合作伙伴和客户,训练营将通过讲解及动手实验的形式使您了解 Windows Azure 的最新功能,包括网站服务,云服务,移动服务,存储服务,SQL 数据库等。 参加此次培训,您就有机会获得来自微软中国Azure应用孵化团队一对一的技术指导,还有机会获得长达6个月的Azure免费试用账号。 参训先决条件 本次训练营面向软件开发人员和软件架构师,参训人员需要对云计算有基本的了解,需要至少三年以上的软件开发和设计经验,且需要至少半年以上的使用 .NET 及 Visual Studio 从事企业级软件开发设计的经验。 日程安排 第一天: Windows Azure 总体介绍和核心功能介绍(1) 9:00-9:15   签到 9:15-10:15 Windows Azure 平台概述 10:25-11:25 Windows Azure Website 服务 11:30-12:30 动手实验:创建基于 Azure Website 的 Web 站点 12:30-13:30 午餐 13:30-14:30 Windows Azure 存储服务介绍 14:40-15:40 动手实验:管理和使用 Windows Azure…

3

以远程桌面访问Windows Azure虚拟机(转+译)

本周Windows Azure Team发布了新的开发门户和1.3版本的SDK。新版SDK中有许多非常酷的特性,其中之一便是以远程桌面访问正在运行的Windows Azure虚拟机,该特性也是我之前非常期待的的一个新功能。 配置远程桌面访问 为Windows Azure服务启用远程桌面访问是非常简单的。首先,使用Visual Studio创建一个新的Windows Azure项目,在这个例子中我仅创建一个常规的没有任何修改的MVC2 web role。 然后在解决方案窗口右击该Windows Azure项目选择”Publish”。   选中”Deploy your Windows Azure project to Windows Azure”单选按钮,提供证书,部署服务/槽、存储和标签等信息。 为了使用一键部署的特性,您必须将Management API证书上传至到您的Windows Azure帐户内,并在计算机上安装该证书。 您会在对话框下方发现有一个”Configure Remote Desktop connections”的连接。您需要通过该链接来开启远程桌面访问功能。   点击这该连接,我们将配置远程桌面访问的权限信息。配置过程有4个步骤:    证书:我们需要创建或选择一个证书文件来加密访问凭证。在这个例子中我将证书文件用于我的Management API。 用户名:访问虚拟机的远程桌面用户名。 密码:登录密码。 有效期限:登录凭证默认在1个月后过期,但我们可以修改该默认值。 在这之后我们单击OK按钮,返回发布对话 下一步访问新版Windows Azure门户,找到托管服务清单。创建一个新的托管服务并上传证书文件到该服务。用于访问Windows Azure虚拟机的用户名和密码必须在本地机器上加密,并在Windows Azure端以相同的证书文件进行解密。这就是我们为什么需要上传证书文件到Windows Azure上的原因了。在左侧面板的”Hosted Services, Storage Accounts & CDN”中,创建一项新的托管服务,命名为”SDK13,然后点击”Certificates”。然后我们点击”Add Certificates”按钮。 选择本地证书文件和密码,将其安装至Windows Azure服务。   最后一步会返回到Visual Studio,点击发布对话框中的OK按钮。然后Visual Studio会将程序包,以及带有远程桌面设置的配置文件上传至Windows…

3

初探Dallas

Dallas项目(现改为Windows Azure Marketplace)是微软提供的数据交易和分享平台。通俗一些来讲,即能够让数据提供商通过Dallas平台暴露出API让数据消费者以OData协议操作数据。目前Dallas尚处于CPT阶段。有兴趣的读者可以免费试用。例如如果想要获取美国火星探测行动拍摄到的图片,可以访问下面的链接,点击Trial按钮,然后按照提示进一步操作: http://pinpoint.microsoft.com/en-US/PartnerDetails.aspx?PartnerId=12884901889&ProductId=12884902246&CurrentTab=1(现以改为https://datamarket.azure.com/)   本文将从数据消费者的角度来引导读者消费Dallas上的数据。 订阅服务 首先,请进入上面的链接点击Trial按钮,按照提示操作,当你看到下面的页面时,在Catalog面板下找到感兴趣的数据然后点击Subscribe按钮订阅: 在本文中,我们将使用Weather Central数据服务。该服务能够提供气象预报,历史气象数据等信息。点击Subscribe按钮订阅,确保显示为Already subscribed: 所有已经订阅的服务将会出现在Subscriptions面板下:   浏览服务细节 点击服务的标题,进入到下一页面: 在这个页面中我们可以通过Web UI来浏览某些数据(对于某些格式数据不能显示,比如image)。作为数据消费者,我们需要关心的主要是三个地方。第一个是Account Key,第二个是Unique User ID。他们相当于访问服务的用户名和密码。在我们调用API的时候需要提供。另外一个地方是下方的下载按钮(对于非C#语言开发人员需要关心下载链接上方关于HTTP头和URL的说明以便调用服务)。我们可以通过点击这个按钮下载到客户端代理类,能够方便我们调用API。需要指出的是,由于API实际上是按照OData协议的规定发送HTTP请求,因此跟开发语言甚至操作系统都是无关的。只是当前CTP阶段我们只提供C#版本的代理类代码。 编写程序 下载完代理类后,我们新建一个WPF程序,并加入该代理类文件。在XAML中加入一个Canvas,并在Canvas中加入一个Image控件: <Image  Canvas.Left=”10″ Canvas.Top=”34″ Height=”262″ Name=”image1″ Stretch=”Uniform”  Width=”501″ />  在MainWindow.xaml.cs中引用命名空间: using Microsoft.Dallas.Services; 并且加入代码: public partial class MainWindow : Window     {         const string accountkey = “7qg7j7pCPFaKvVY2u5CjBey6EnuZGAXjPHSv1gKCNyM=”;         const string guid = “5a00d570-d837-40e1-98d8-e2c7827e46f2”;        …

2

Windows Azure® 由世纪互联运营发布MySQL Database on Azure正式商用版

我们很高兴宣布MySQL Database on Azure于2015年9月1日在中国地区正式商用。回望过去,从2014年12月对少量用户开放的预览试用,到2015年4月30日对中国用户全面开放的公共预览,再到9月1日在中国地区正式商用。在这9个月时间,MySQL Database on Azure团队花了很多时间在完善功能,在稳定性、性能上面都有很大的提升,获得了用户的一致认可。在接下去几个月,我们团队会陆续推出更多的功能,为用户带来更多增值功能和更高性能的体验。 MySQL Database on Azure 帮助您在云端快速部署MySQL数据库,提供高可用性和全托管的体验,无需人工维护基础架构,让您更专注于产品的创新开发。我们的正式商用版提供99.9%的运行时间服务级别协议,用户可以更放心地使用。目前,已经有超过二百个(含企业用户)正在使用MySQL Database on Azure服务。很开心,我们的产品能够被用户接受、信赖,真真切切的帮助用户创造商业价值。 特性优点: MySQL Database on Azure提供的产品特色有: 基于Azure存储提供数据本地异地多重备份,保障数据高度可靠,支持99.9%的运行时间服务级别协议,支持异地灾备恢复。 提供防火墙功能并支持SSL链接访问数据库,保证数据高度安全。 支持30天数据备份,帮助您轻松进行数据回溯。 提供多个不同性能层级的版本,支持弹性扩展与收缩,简化购买体验。 提供各项数据库性能指标的监控以及日志,让您轻松方便的了解数据库运行情况。 兼容MySQL 协议(目前支持MySQL 5.5和5.6),您可以用熟悉的MySQL平台与技术进行开发和集成。 支持数据从企业本地的MySQL数据库同步到 MySQL Database on Azure, 更好的满足企业构建混合云的需求。 有关MySQL Database on Azure服务的详细信息,请访问MySQL Database on Azure网页。  快速入门: 以下我们将介绍部署,配置,监控和异地数据库同步MySQL实例的实战经验。 快速部署 通过Windows Azure管理门户,用户可以快速创建MySQL服务器,部署时间仅需1-2分钟。我们的服务保证您的数据库服务器的高可用性,提供自动软件修补功能,让您无需对数据库服务进行任何基础架构的维护。 弹性伸缩 您也再无需反复计算数据库服务器端的配置需求,MySQL Database on Azure 服务提供了多个不同性能的版本,您可以根据当前的性能需求选择一个相匹配的版本,后续再根据应用的实际运行情况进行弹性扩展或收缩。我们的服务按小时计费,账单透明,帮助您更有效的利用资源。 灵活配置 MySQL Database…

2

云服务基础 – 缓存基础知识

本文章由 Azure CAT 团队的 Rama Ramani 撰写。 “云服务基础”应用程序也称作“CSFundamentals”,展示如何构建数据库支持的 Azure 服务。在上一篇博客文章 DAL – RDBMS 的分区中,我们讨论了一种在数据库层中实施横向可伸缩性的技术,即分区。在本文章中,我们将讨论缓存的重要性、要考虑的因素,以及如何在 Windows Azure 中进行配置和实施。 分布式缓存架构在横向扩展的基础上构建,其中若干台计算机(物理机或虚拟机)将作为具有分摊工作负荷的固有分区能力的群集环的一部分。缓存为 <key, value> 查找范例, 它们的值为序列化的对象,这些对象可能是一个更为复杂的数据存储操作的结果集,如跨数据库中的多个表执行 JOIN 操作。因此,使用缓存, 就不用针对数据存储多次执行操作,而是针对缓存进行快速键查找。 了解什么内容适合被缓存 首先,您需要分析工作负荷并确定合适的缓存对象。数据缓存时,缓存和“数据源”之间的“过期”容错应在应用程序的可接受范围内。总体而言,缓存可用作参考(对于所有用户均为只读数据),如用户配置文件、用户会话(单个用户进行读写),或在某些情况下用作资源数据(使用锁定 API 让所有用户均可读写)。在某些情况下,特定的数据集可能并不适合进行缓存 – 例如,如果某个特定的数据集正在迅速发生变化、应用程序无法容许过期,或者您需要执行事务。 容量规划 下一步是估计应用程序的缓存需求。这需要查看一系列指标(刚好大于缓存大小),以制定最初的大小指南。 缓存大小: 可以使用对象的平均大小和对象的数量粗略估算所需的内存量。 访问模式和吞吐量要求: 读写组合显示了新对象的创建、现有对象的重新写入或对象的读取。 策略设置: 生存期 (TTL)、高可用性 (HA)、到期类型和逐出策略的设置。 物理资源:除了内存,网络带宽和 CPU 利用率也非常重要。网络宽带可根据特定的输入进行估算,但大多数情况下,应对网络宽带进行监控,然后将其用作重新计算的基础。 可从 http://msdn.microsoft.com/en-us/library/hh914129 获取更详细的容量规划电子表格 Azure 缓存拓扑 下表列出了 Azure 上提供的 PAAS 选项集,并提供了简要说明 类型…

2