如何在Azure环境里做好信息传递可扩展性经验分享

作者 王枫 发布于2014年5月15日 综述 本文介绍建立一个在Azure上使用Azure服务总线, 高吞吐量短信平台的必要步骤。在这篇文章中提出的解决方案是在响应由客户的具体要求,建立一个基于Windows Azure技术的复杂远程信息处理应用。 在Windows Azure中的通讯服务 Windows Azure平台通过不同的技术支持信息通信: 存储队列 服务总线 以下各段将给予每个类型的信息传递技术的概览。 存储队列 您可以使用Windows Azure中的队列,支持组件之间的异步通信。应用程序中的组件可以发布信息到一个队列。其他组件可以接收信息,并提供处理。队列中提供组件之间耐用的持久性存储,以及负载调平,负载均衡,和缩放的好处。 服务总线 Windows Azure服务总线为广泛的交流,大型活动分布,命名和服务发布提供了一个托管,安全和广泛可用的基础设施。服务总线为Windows Communication Foundation(WCF)和其他服务端点提供连接选项 – 包括REST端点 – 否则将很难或根本不可能达到。 针对Windows Server的服务总线是一组可安装的组件,为Windows Sever上提供Windows Azure服务总线的信息传递功能。适用于Windows Server的服务总线,使您能够在自我管理的环境,并在开发计算机上构建,测试和松耦合运行,信息驱动的应用程序。 通讯设计模式 使用存储队列构建松散耦合的信息传递方案 Windows Azure的队列存储是一个用于存储大量的信息,可以在世界任何地方通过身份验证的调用使用HTTP或HTTPS访问服务。一个单一的队列的信息可高达64KB的大小,队列可以包含数百万条信息,高达100TB的总极限容量的存储帐户。常见队列存储用途包括: 建异步处理积压的工作 Windows Azure Web角色中传递信息到Windows Azure Worker角色 队列服务包含以下组件: URL格式:队列可以通过以下URL格式访问:http://<storage account>.queue.core.windows.net/<queue>下面的URL地址针对图中的队列:http://myaccount.queue.core.windows.net/imagesToDownload 存储帐户:所有Windows Azure存储是通过一个存储帐户来访问的。存储帐户是访问队列的最高级别的命名空间。帐户内表格和队列内容存储的总大小不能超过100TB。 队列: 队列中包含一系列信息。所有信息必须在队列中。 Message: 一个信息,无论任何格式的最大上限是64KB 一个涉及多个组件之间的存储队列典型的架构设计模式,可以类似于下列: 在这个模式中,多个前端Web Role客户端发送信息到一个或多个存储队列,然后多个Worker Role实例从一个或多个队列读取信息及进行处理。 上述架构可以通过以下方式缩放: 存储队列:当信息并发数量增加,可以增加更多的存储队列…


Windows Azure 社区新闻综述(#78 版)

欢迎查看最新版本的每周综述,其中包含有关云计算和 Windows Azure 的社区推动新闻、内容和对话。以下是本周的亮点。 博客文章: 博客:Windows Azure BizTalk 服务:如何开始以及何时使用该服务,作者 Richard Seroter(12 月 11 日发布) 博客:Windows Azure 存储及跨域资源共享 (CORS) – 尽享其中乐趣,作者 Gaurav Mantri(12 月 1 日发布) 博客:远程调试 Windows Azure 云服务,作者 Shaun Xu(11 月 2 日发布) 博客:“That Conference 技术会议”Azure 网站演讲材料,作者 Matt Milner(12 月 3 日发布) 博客:将Azure 网站和 Visual Studio Online结合使用,作者 Marcel Meijer(12 月 2 日发布) 博客:Windows Azure…


新的 Windows Azure 网络安全性白皮书

下载新的 Windows Azure 网络安全性白皮书。 Windows Azure 网络提供了将虚拟机安全连接到其他虚拟机所需的基础结构,以及云和内部部署数据中心之间的网桥。 本白皮书旨在挖掘这些内部机制,并就客户可以如何利用该平台本身的功能更好地保护其信息资产提供了见解。下面一段主要介绍了本白皮书中包括的一些内容: 任何共享云体系结构最基本的就是为每位客户提供的隔离。在 Windows Azure 中,一个客户订阅可包括多个部署,每个部署可包含多个 VM。Windows Azure 在多个点提供网络隔离: 部署:将每个部署与其他部署隔离。允许部署中的多个 VM 通过私有 IP 地址相互通信。 虚拟网络:可将多个部署(位于同一订阅中)分配给同一虚拟网络,然后允许其通过私有 IP 地址相互通信。将每个虚拟网络与其他虚拟网络隔离。 图 1 显示了此类拓扑的一个示例。 图 1. Windows Azure 中托管的一个隔离的多层 IaaS 应用程序示例。 本文翻译自: http://blogs.msdn.com/b/windowsazure/archive/2014/01/07/new-windows-azure-network-security-whitepaper.aspx


扩展 Windows Azure 运营能力 – 巴西

今天早些时候,在巴西圣保罗的一个活动上,我宣布了我们将在巴西设立一个 Windows Azure 区域数据中心的计划。我们希望该区域中心可以在 2014 年年初上线,并且我们很高兴地宣布将在未来 4 至 6 周开始吸引预览版客户。此公告表明,继此前宣布通过我们的合作伙伴 21Vianet 进军日本、澳大利亚和中国市场后,我们将首次大举进军南美市场。 随着此区域中心的设立,巴西的新老客户 – 包括早在 2010 年春我们进入巴西以来就一直追随我们的那些客户 – 将能够体验延迟减少后的更佳性能,并且能够将其数据保留在巴西。巴西在数据管理方面的规章制度一直在演变,使用巴西区域中心的客户将可以选择本地冗余存储 (LRS),这将保留其数据的三个副本,并且不会将其数据复制到巴西以外的地方。跨地域冗余存储 (GRS) 仍然是创建存储帐户时的默认选项,因为通过将数据存储在第二个区域,可以提供最高的持久性,这种情况下,对于使用巴西区域中心的客户,美国中南部将作为其主要冗余区域。 进军巴西市场是一个激动人心的时刻,今天的公告表明我们将继续致力于在全球范围发展 Windows Azure 业务,并继续为我们的巴西客户提供优质服务,例如依赖 Windows Azure 来运营其业务的 Boa Vista Serviços、Globosat 和 Linx。   Steven Martin 本文翻译自: http://blogs.msdn.com/b/windowsazure/archive/2013/12/04/expanding-windows-azure-capacity-brazil.aspx  


Windows Azure 安全最佳实践 – 第 6 部分:Azure 服务如何扩展应用程序安全性

多种  Windows Azure 服务可以帮助您将应用程序安全性扩展到云。    有三种服务可提供多个提供程序之间的身份标识映射、内部部署数据中心间的连接和相互发送消息的应用程序功能(无论应用程序位于何处)。 使用 Windows Azure Active Directory,您可以通过位于云中的应用程序的代理身份验证在应用程序上创建单点登录应用程序。使用访问控制服务功能,您可以将来自多个提供程序的标识映射到应用程序可以识别的claims。 通过 Service Bus,您可以使用安全消息传递和中继功能启用松散耦合的分布式应用程序。 Windows Azure Active Directory Windows Azure Active Directory 是一种云服务,可对 Windows Azure 和 Microsoft Office 365 上的应用程序提供身份认证和访问功能。Windows Azure Active Directory 是一种多租户云服务,Microsoft Office 365 依赖于其身份验证基础结构。 Windows Azure Active Directory 利用被公认具备企业级质量的 Active Directory 的功能,因此您可以轻松将应用程序迁移到云中。您可以使用访问控制服务 (ACS)(Windows Azure Active Directory 的一项功能)启用单点登录、安全增强型应用程序以及与现有 Active Directory 部署的简单互操作性。 访问控制服务 访问控制服务 (ACS)…


Windows Azure 安全最佳实践 – 第 4 部分:需要采取的其他措施

  那么,哪些安全威胁应由 WindowsAzure 环境缓解?哪些安全威胁必须由开发人员缓解? 开发 Windows Azure 应用程序的最佳安全做法一文说明了对于在 Windows Azure 中运行的应用程序而言,什么样的威胁应被视为主要威胁。它还专门说明了 Azure 能够缓解的威胁以及您需要调用 API 的内容和您需要自己处理的内容。(它未涉及合规性问题。) 您应该处理的内容 我将选择一些威胁和您应该执行的操作,并提供一些参考,以便您可以了解有关如何在代码中进行实现的更多信息。该列表在 Windows Azure 安全概述中提供。但是具体结果将取决于您。 这个列表并不全面。正如您从本系列文章的以前部分中了解的那样,您根据您自己的应用程序需求来调整您的安全做法。 篡改威胁 篡改/泄漏凭据或其他敏感应用程序数据。 针对 SSL 连接,使用 WindowsIdentity Foundation 和 HTTPS 相互身份验证。 请参见如何管理服务证书,了解有关将证书添加到存储、将证书与服务关联以及更新证书的信息。在这些情况下,我们假设 IT 管理人员和服务开发者是两个不同的人,但是他们也可能是同一个人。 请参见 Windows Identity Foundation,帮助开发者简化用户访问,方法是通过claim将用户访问从应用程序外部化,以及使用预先构建好的安全逻辑和集成 .NET 工具减少开发工作量。 否认威胁 审计日志收集、存储和分析。根据需要使用监控和诊断 API,将日志通过 HTTPS 传输到私有 Blob 存储/表存储。请参见: 在 Windows Azure 中控制日志记录和跟踪(来源于 MSDN 杂志)。 Azure Monitor(可获得用于实时监控…


Windows Azure 安全最佳实践 – 第 3 部分:确定安全框架

构建云应用程序时,安全始终是计划和执行 Windows Azure 的首要核心因素。 第 1 部分介绍了威胁形势并且建议您的应用程序使用深度防御。第 2 部分提出安全是一项共同责任,Windows Azure 为您的应用程序提供超出内部部署应用程序需求的强大安全功能。但另一方面,它也暴露了您应该考虑的其他漏洞。 此部分中将探索如何检查应用程序的体系结构。模式与实践团队提出通过安全框架来检查应用程序,以便您在开始编码之前即确定威胁和您的响应。 此部分还介绍了如何将Microsoft 安全开发生命周期 (SDL) 通过规定的方式应用于您的组织以解决应用程序生命周期中每个阶段的安全性问题。 安全框架 透过安全框架,您可以轻松了解应用程序的安全状况。 此概念在 Windows Azure 安全记要中有详细说明。该文档由模式与实践团队的首席项目经理 J.D. Meier 和 Paul Enfield 撰写。该文档还收集了客户、现场工程师、产品团队和业内专家的意见,提供了基于常见原则、模式和实践确保 Windows Azure 上的常见应用程序方案的安全性的解决方案。 那篇文档概述了您可能遇到的威胁、攻击、漏洞和应对措施。它还详述了一组方案,其中包含许多常见的应用程序类型。那篇文档提供了一个安全框架,指导设计和构建 Windows Azure 应用程序时的安全性考虑。 那篇文档开头介绍了一个常见的 ASP.NET 应用程序,并确定了一组操作且为它们分类: 审计和日志记录 身份验证 授权 通信 配置管理 加密 异常管理 敏感数据 会话管理 验证 此方法可帮助您解决安全框架所识别的关键安全热点,以确保解决方案的安全。 对于内部部署应用程序,您需要分别处理各个主要问题。下图显示了一种十分典型的内部部署应用程序体系结构,然后标出了相应的热点。 借助托管基础结构,我们可以少费神一些问题,因为这些问题由托管基础结构进行处理。例如,Windows Azure 应用程序没有权限创建用户帐户或者提升权限。 文档中建议您 使用基本图表示您的体系结构,然后将框架覆盖在基本图之上。应用框架之后,即可评估每一项的适用性并快速排除不需要关注的类别。…


Windows Azure 安全最佳实践 – 第 2 部分:Azure 提供哪些现成可用的安全机制

在WindowsAzure 安全最佳实践 – 第 1 部分:深度解析挑战防御对策中,我介绍了威胁形势以及在您的应用程序中采用深度防御的计划。     在本部分中,我将说明 Windows Azure 的安全是一项共同责任,Windows Azure 为您的应用程序提供超出内部部署应用程序需求的强大安全功能。但另一方面,它也暴露了您应该考虑的其他漏洞。最后,在应用程序开发过程中,您应该积极保护应用程序的安全。 本节将概括介绍 Windows Azure 提供的功能。有关详细信息,请参阅全球基础服务在线安全。全球基础服务团队提供值得信赖的可用在线服务,可为您和 Microsoft Windows Azure 带来竞争优势。 此系列文章旨在为您提供更多背景信息,让您能够编写出适用于公共云的理想应用程序。 Windows Azure 如何帮助保护主机? 您可能会说“别着急 Bruce。Windows Azure 如何帮助保护主机?” WindowsAzure 安全概述全面概括了 Windows Azure 提供的安全功能。该文章由Charlie Kaufman 和 Ramanathan Venkatapathy 撰写。它从客户和 Microsoft 运营的角度分析了可用的安全功能,介绍帮助提高Windows Azure 安全性的人员和流程,并简单讨论了合规性。我将总结这些功能,并建议您阅读并理解该概述以进一步深入了解。 Windows Azure 旨在将通常构成应用程序(服务器、操作系统、网络和数据库软件等)基础的大部分基础结构抽象化,让您可以专注于构建应用程序。 从表面看,您会看到基于云的计算和存储,以便您构建和管理应用程序及其相关配置。迁移到 Windows Azure 的每种方式可能都要求您具有您所控制的一定程度的授权。 我将在后面的文章中介绍您应针对身份验证机制执行的一些最佳实践。 Windows Azure 必须确保客户数据的机密性、完整性和可用性,就像任何其他应用程序托管平台一样。它还必须提供透明问责,让您和他们的代理能够跟踪您自己以及…


Windows Azure 安全最佳实践 – 第 1 部分:深度解析挑战防御对策

我每次与开发人员讨论将应用程序迁移到云时都围绕着两个主要问题。 首先是业务。将应用程序迁移到云可以带来怎样的规模经济? 其次是安全问题。“云的安全性如何,尤其是 Windows Azure?Windows Azure 可以提供哪些优势?为保证应用程序的安全,我需要采取哪些措施?” 此外还有个心照不宣的问题:“我如何让用户对云的使用体验就像使用内部部署应用程序一样顺畅?” 作为 ISV,我们希望向授权用户、客户和系统提供随时随地使用任何技术访问所需数据的功能,同时满足机密性、可用性和完整性方面的基本安全要求。 而且同样重要的是,我们希望让坏人远离这些数据。 本文是多篇有关软件设计挑战的文章中的第一篇,旨在说明如何才能让拥有访问权限的人顺利访问软件,同时阻止未经授权者访问。 此系列文章旨在为您提供更多背景信息,让您能够编写出适用于公共云的理想应用程序。 威胁 首先我将简要概括一下这些挑战。您的应用程序面临的威胁多种多样,与您能想到的内部部署应用程序面临的威胁相类似。但对于内部部署应用程序,有些关键威胁会得到缓解,因为它们在防火墙之后运行。 迁移到 Windows Azure 云时,有些威胁会提高,有些则会降低。同您部署自己的应用程序时相比, 缓解这些威胁变成了一个更深层次的合作。在您自己的服务器上部署应用程序时,您控制着对服务器的物理访问、操作系统、补丁以及用户的访问方式,等等。但随之而来的是加重了维护基础结构、确保执行备份、配置负载平衡器的责任。 但与 Microsoft 合作时,全球基础服务团队可以应对各种客户需求,并承担与您的应用程序安全相关的部分责任。 这一点类似于由您负责基础结构的基础结构即服务 (IaaS) 和与 Microsoft 共享基础结构的平台即服务 (PaaS) 之间的区别。 在这两种环境中,您需要考虑七个攻击矢量。 对应用程序进行管理的客户管理员。如何对应用程序进行部署、更新和数据访问?哪些人拥有访问权限以及如何对访问进行身份验证? 托管服务的管理中心。如何、何时、在哪里、用什么工具监视托管商管理员以及谁拥有托管服务的访问权限? 如何对服务器进行物理访问?它是否被放在办公桌下?是否具有武装防护措施?谁可以接触服务器以及谁拥有这些设备的物理访问权限? 用户可以访问哪些数据以及如何将数据提供给这些用户?用户有权查看哪些数据? 客户如何才能从应用程序内部攻击 Windows Azure?客户如何对系统进行越狱并损害系统? 客户使用 Azure 来攻击其他网站时,会发生什么? 即使将应用程序迁移到云,传统威胁仍然存在。例如,您仍然需要防范跨站点脚本攻击 (XSS) 和代码注入攻击。而提供商需要防范 DNS 攻击和网络拥堵问题。 有些威胁进一步扩大,比如您需要考虑的数据隐私。您需要知道数据的存储位置和数据隔离,尤其是在多租户环境中。您还需要处理访问权限。 云服务提供商的性质带来了新的威胁。例如: 新权限升级攻击(VM 到主机或 VM 到 VM) VM 边界的越狱…


Windows Azure 数据安全(清理和泄漏)

免责声明:本文档中所述过程为 2012 年 1 月时起的情况,如有变更,恕不另行通知。 希望将应用程序部署到 Windows Azure 的企业客户(实际上是所有客户)最为关心的就是其数据的安全性。释放磁盘空间并将其重新分配给其他客户时,要确保新的所有者无法读取释放空间后磁盘上原来的数据,在数据保护中这一点有时会被忽视。一个极端的例子是,废弃处理从数据中心移除的驱动器或在其他任务中再次利用。释放之前先使用零或其他模式覆盖释放的空间,是确保这一点最简单的方式。这种覆盖可能会大大影响性能,因此 Azure 与大多数系统一样,会使用更为复杂但更有效的机制。 在本文中,我们将发现 Windows Azure 和 SQL Azure 软件为达到以下目的而实施的做法:防止在删除 Windows Azure 虚拟机实例、Windows Azure 虚拟机驱动器、Windows Azure 驱动器、Windows Azure 存储、SQL Azure 数据或 SQL Azure 实例本身时造成数据泄露或将一个客户的数据暴露给其他客户。这些机制的细节有所不同,但概念均类似,即:不允许任何用户从之前未写入数据的磁盘位置读取数据。 本文中的详细信息由 Windows Azure 首席软件工程师、杰出的安全架构师 Charlie Kaufman 提供。您可以在此处和此处找到 Charlie 的一些著作。Charlie,谢谢你! 关于数据保护的概念 在实践中,磁盘是稀疏分配的。这意味着在创建虚拟磁盘时,不会分配全部的磁盘空间量。而是创建一个表,将虚拟磁盘上的地址映射到物理磁盘上的区域,并且该表最初为空白。客户第一次在虚拟磁盘上写入数据时,将会分配物理磁盘空间并在表中设置标志。我们可以通过下面的一系列图表来了解其概念: 图 1:分配给用户的数据块   在上面的图 1 中,基于两个用户各自的写入请求为他们各分配两个数据块。   图 2:用户释放数据块 在上面的图 2 中,一个用户“删除”数据以释放数据块。数据块标记为可用,其他方面不受影响。…