<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>微软云计算: Microsoft Azure 中文博客</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/azchina/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/azchina/feed.xml</link>
    <description>本博客为微软云计算论坛支持小组所维护，内容以 Azure 为主。本中文博客面向所有对 Azure 平台有兴趣的人，内容以入门教学和case study为主。</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:06:47 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>亲爱的 #MongoDB 用户，欢迎来到 #Azure#DocumentDB</title>
      <link>https://docs.microsoft.com/archive/blogs/azchina/%E4%BA%B2%E7%88%B1%E7%9A%84-mongodb-%E7%94%A8%E6%88%B7%EF%BC%8C%E6%AC%A2%E8%BF%8E%E6%9D%A5%E5%88%B0-azuredocumentdb</link>
      <pubDate>Mon, 27 Mar 2017 10:08:43 GMT</pubDate>
      <dc:creator><![CDATA[China Windows Azure Blog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/azchina/?p=14097</guid>
      <description><![CDATA[作者：Rimma...]]></description>
      <content:encoded><![CDATA[<div class="entry-content single">
<div class="entry-content single">

作者：Rimma Nehme，架构师，开源软件分析，NoSQL团队

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/20171.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/20171.jpg" alt="20171" width="482" height="271" class="alignnone wp-image-14015" /></a>

<strong>我们自始至终将“安全”放在第一位 </strong>

对于我们，从代码开发到事件响应，每一个环节安全都是重中之重。Azure 代码开发遵循<a href="https://www.microsoft.com/en-us/sdl/">微软安全开发生命周期</a>（SDL）——这是一个软件开发流程，帮助开发人员构建更安全的软件并满足安全合规性要求，同时极大降低开发成本。Azure安全中心使Azure成为唯一一个提供持续安全健康监测的公有云平台。

<a href="https://www.azure.cn/home/features/documentdb/">Azure DocumentDB</a>是全局分布式多租户数据库系统，其设计旨在让开发人员能够生成跨区域范围的应用程序。 DocumentDB 允许跨任意数量的地理区域灵活扩展吞吐量和存储。这项服务提供低延迟保证 P99-99.99% 的高可靠性， 可预测的吞吐量和<a href="https://www.azure.cn/documentation/articles/documentdb-consistency-levels/">多个定义完善的一致性模型</a>——所有这些全部通过企业级服务级别协议支持。凭借其架构不可知和经写入优化的数据库引擎，DocumentDB 默认能够自动索引其引入的所有数据并以不受规模影响的方式服务于 <a href="https://www.azure.cn/documentation/articles/documentdb-protocol-mongodb/">SQL、MongoDB</a> 和<a href="https://www.azure.cn/documentation/articles/documentdb-programming/"> JavaScript 语言集成查询</a>。

DocumentDB有许多强大的安全功能内置。 为了保护存储在Azure DocumentDB数据库帐户中的数据，DocumentDB提供了对基于密钥的授权模型的支持，该授权模型利用强大的<a href="https://www.azure.cn/documentation/articles/documentdb-firewall-support">基于哈希值的消息验证代码 </a>（HMAC）。除了基于密钥的授权模型，DocumentDB还支持针对入站防火墙支持的基于 IP 的策略驱动访问控制。此模型与传统数据库系统的防火墙规则非常类似，并且对 DocumentDB 数据库帐户提供额外的安全级别。利用此模型，可将 DocumentDB 数据库帐户配置为仅可从一组已批准的计算机和/或云服务进行访问。 一旦应用此配置，来自该允许列表之外的机器的所有请求都将被服务器阻止。从该组已批准的计算机和服务访问 DocumentDB 资源仍要求调用方提供有效的授权令牌。DocumentDB中群集内的所有通信（例如，复制流量）都在使用SSL。 从Mongo（或任何其他客户端）到DocumentDB服务的所有通信始终使用SSL。要了解有关在DocumentDB中安全访问您的数据的更多信息，请参阅<a href="https://www.azure.cn/documentation/articles/documentdb-secure-access-to-data">安全访问DocumentDB数据</a>。
下表将当前的DocumentDB功能映射到<a href="https://docs.mongodb.com/manual/administration/security-checklist/?_ga=1.98569501.2000893617.1460145385">MongoDB推荐的安全查核项目</a>。

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/f1.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/f1.jpg" alt="f1" width="560" height="300" class="alignnone size-full wp-image-14085" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/f2.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/f2.jpg" alt="f2" width="561" height="364" class="alignnone size-full wp-image-14095" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/20173.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/20173.jpg" alt="20173" width="465" height="261" class="alignnone wp-image-14035" /></a>

DocumentDB提供的功能大大超出“单一站点”数据库提供的传统地理灾难恢复（Geo-DR）的功能。提供Geo-DR功能的单一站点数据库是跨区域分布式数据库的严格子集。由于DocumentDB的跨区域分布，开发人员既不必对数据库使用Lambda模式（例如，<a href="https://github.com/awslabs/dynamodb-cross-region-library/blob/master/README.md">AWS DynamoDB复制</a>），也不必跨多个地区执行 “double writes” 来构建自己的复制架构。由于无法确保这些方法的正确性以及没有可靠的服务级别协议，我们不建议采用这些方法。

DocumentDB使您能够拥有基于策略的地理围栏功能。地理围栏功能是一项重要功能，确保数据治理和合规限制，防止特定区域对您账户的恶意关联。地理围栏的示例包括（但不限于），将跨区域分发范围限定在主权云内。策略是使用您订购的Azure的元数据来加以控制的。

至于故障切换，如果存在多区域中断，您可以指定区域故障切换的确切顺序，并且可以为区域关联数据库账户匹配优先级。DocumentDB将确保故障切换以您指定的优先级顺序自动执行。

我们还致力于静态加密和动态加密。客户可以加密DocumentDB中的数据，以符合保护机密性和数据完整性的最佳实践。敬请关注。

<strong>第二，您不必重写应用程序</strong>

将应用程序转移到DocumentDB，不需要重新编写或丢弃现有工具。DocumentDB支持<a href="https://www.azure.cn/documentation/articles/documentdb-protocol-mongodb/">MongoDB的协议</a>，这意味着DocumentDB数据库可以用作为MongoDB编写的应用程序的数据存储区。同样意味着，使用MongoDB数据库的现有<a href="https://docs.mongodb.com/ecosystem/drivers/">驱动</a>程序编写的基于MongoDB标准的应用程序可以和Document DB无缝对接，从而实现Document DB数据库最终替代MongoDB数据库。在通常情况下，您只需更改一个连接字符串即可从MongoDB切换到DocumentDB。 使用此功能，您可以在Azure云中轻松搭建和运行MongoDB数据库应用程序。利用DocumentDB的完全托管和可扩展的NoSQL数据库，同时继续使用熟悉的MongoBD技术和工具。 此外，为所有用户的利益，我们仅支持Mongo SSL（而不是http）。 你可以即刻获得的好处（其他数据库无法实现）包括：
<ul>
 	<li><strong>无需服务器管理</strong> —— DocumentDB是一种完全托管的服务，这意味着您不必自己管理任何基础架构或虚拟机。DocumentDB在中国Azure区域都可用。</li>
 	<li><strong>无限缩放</strong> —— 可以独立和弹性缩放吞吐量和存储。 可以添加容量，以便轻松地每秒为数百万个请求提供服务。</li>
 	<li><strong>企业级</strong> —— DocumentDB 支持多个本地副本，在面对本地和区域故障时提供 99.99％ 的可用性和数据保护。 DocumentDB 具有企业级<a href="https://www.trustcenter.cn/zh-cn/compliance/default.html">合规性认证</a>和安全功能。</li>
 	<li><strong>MongoDB 兼容性</strong> —— DocumentDB 的 MongoDB 协议支持旨在提供与 MongoDB 的兼容性。 可以将现有代码、应用程序、驱动程序和工具用于 DocumentDB。</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2017/03/20174.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/20174.png" alt="20174" width="494" height="278" class="alignnone wp-image-14045" /></a>

<strong>第三，我们用爱去创造它</strong>

现代开发者依赖多种不同的技术来构建应用程序，技术种类日新月异。 开发这些应用程序通常是关键任务，开发者通常不论供应商，只论工具和技术是否是最棒的。 这就是为什么我们努力寻找一种有效、创新和简单的方式，让我们的客户可以使用DocumentDB，不论何种模型，不论何种机器语言（例如<a href="https://www.azure.cn/documentation/articles/documentdb-introduction/">Node.js，Java，Python，JavaScript，.NET，.NET核心，SQL</a> ），都可以毫无障碍地构建他们的应用程序。这就是为什么有成千上万的应用程序是在DocumentDB的基础上构建的，从<a href="https://www.azure.cn/documentation/articles/documentdb-use-cases/">物联网、广告、市场营销、电子商务、客户支持、游戏到电网监控</a>。 我们全心全意致力于让您体验卓越的DocumentDB！ 我们的平台通过整合，化繁为简，为实现跨区域分布式应用程序开发提供可能。我们竭诚为开发者提供最佳体验，确保我们的服务与Azure中的所有其他服务无缝协同工作，如Azure搜索，Azure流分析，Power BI，Azure HDInsight等。 我们力求周到及时地回应您在线提出的有关Document DB的问题。千万不必惊讶，对我们来说这是分内事，我们也将一如既往。

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/20175.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/20175.jpg" alt="20175" width="505" height="284" class="alignnone wp-image-14055" /></a>

<strong>欢迎来到跨区域范围的NoSQL革命！ </strong>

很高兴你将帮助我们定义我们的NoSQL产品，使我们的服务更好（比如添加哪些功能，支持哪些API，以及如何与其他产品和服务集成）。 DocumentDB支持诸如银行和资本市场、专业服务和离散制造商、初创公司和健康解决方案等行业。适用领域广泛，而我们才刚刚起步。这是一个令人无比自豪的事业，它深受客户和开发者们的喜爱。促使成千上万开发人员涌向Azure DocumentDB的革命刚开始拉开帷幕，推动这场革命的是极其深层的力量，而绝不仅仅是我们产品的功能特性。Document DB为开发人员如何架构现代应用程序提供了巨大的改进可能，因为任何研发过程都需要深思熟虑，精工细作，更需要情感共鸣，而我们的产品可以知其所需、为其解难，因为我们本身就是开发者。

我们希望让开发人员能够通过他们开发的应用程序，真正改变我们所置身的这个世界，这比我们<a href="https://www.azure.cn/home/features/documentdb/">添加到DocumentDB的一项项功能特性</a>来得更重要。开发应用程序很难，而开发这类要求迭代快、可扩展、灵活弹性、永不过时、简单易用的跨区域规模分布式应用程序更是难上加难。然而，这是在现代世界吸引全球所有人的一个基本前提。我们每天花大量的时间与客户交流，适时地调整DocumentDB，提供超级棒的体验。搭载在DocumentDB上的应用程序，无一不是敏捷、高效和低成本的，这绝非偶然。即使微小的细节也会产生巨大的差异。

那么，接下来你应该采取哪些步骤？下面是我们想到的几个：
<ul>
 	<li>首先，若要创建 DocumentDB 帐户，请参阅<a href="https://www.azure.cn/documentation/articles/documentdb-create-mongodb-account/">创建具有 MongoDB 协议支持的 DocumentDB 帐户教程</a>。</li>
 	<li>若要了解如何获取帐户连接字符串信息，请参阅<a href="https://www.azure.cn/documentation/articles/documentdb-connect-mongodb-account/">连接到具有 MongoDB 协议支持的 DocumentDB 帐户教程</a>。</li>
 	<li>若要了解如何在 MongoChef 中创建 DocumentDB 数据库和 MongoDB 应用之间的连接，请参阅<a href="https://www.azure.cn/documentation/articles/documentdb-connect-mongodb-account/">通过具有 MongoDB 协议支持的 DocumentDB 帐户使用 MongoChef 教程</a>。</li>
 	<li>如果您觉得灵感被极大地激发了（我相信一定会的）请浏览具有 MongoDB 协议支持的 DocumentDB <a href="https://www.azure.cn/documentation/articles/documentdb-mongodb-samples/">示例</a>。</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2017/03/20176.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/20176.png" alt="20176" width="537" height="302" class="alignnone wp-image-14056" /></a>

真诚的，

@rimmanehme + 你的忠实朋友@DocumentDB

</div>
</div>]]></content:encoded>
    </item>
    <item>
      <title>数据库安全之数据掩码：SQL 2016新功能之动态数据掩码（SQL 2016 &amp; AZURE SQL 数据库）</title>
      <link>https://docs.microsoft.com/archive/blogs/azchina/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AE%89%E5%85%A8%E4%B9%8B%E6%95%B0%E6%8D%AE%E6%8E%A9%E7%A0%81%EF%BC%9Asql-2016%E6%96%B0%E5%8A%9F%E8%83%BD%E4%B9%8B%E5%8A%A8%E6%80%81%E6%95%B0%E6%8D%AE%E6%8E%A9%E7%A0%81</link>
      <pubDate>Mon, 13 Mar 2017 09:13:08 GMT</pubDate>
      <dc:creator><![CDATA[China Windows Azure Blog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/azchina/?p=13835</guid>
      <description><![CDATA[Max Shen...]]></description>
      <content:encoded><![CDATA[Max Shen 沈云

技术解决方案专家

我们在开发上都有这样的需求：对部分敏感数据进行屏蔽，如身份证信息，名字的一部分等
显示如：
<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3701.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3701.png" alt="3701" width="405" height="176" class="alignnone size-full wp-image-13845" /></a>

在开发上，一般是取出相应的文字后进行替换，如可以用下面的方法。

function plusXing (str,StartLen,endLen) {
var len = str.length- StartLen -endLen;
var xing = '';
for (var i=0;i&lt;len;i++) {
xing+='*';
}
return str.substr(0, StartLen)+xing+str.substr(str.length-endLen);
}

如输入 plusXing(“18023456789”,3,4)

返回结果：180****6789

但是这样的方法存在安全隐患，因为读取出来的源数据是明文。因此在SQL 2016和Azure SQL 数据库中有了一个数据掩码（Azure SQL 数据库翻译为动态数据掩码，Technet上面翻译为动态数据屏蔽）的新功能帮助解决这样的问题。

下面我们来看看能实现什么样的功能：

先在本地做个测试：

创建一张表

create TABLE Membership
(MemberID int IDENTITY PRIMARY KEY,
FirstName varchar(100) MASKED WITH (FUNCTION = 'default()') NULL, ----启用默认掩码
LastName varchar(100) NOT NULL,
Phone# varchar(13) MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)') NULL, ---启动动态屏蔽，从第一个字符开始使用XXXXX替换，最后不显示
Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL); ----启用email掩码
插入数据：
INSERT Membership (FirstName, LastName, Phone#, Email) VALUES
('张', '三丰', '13980040000', 'zhangsanfeng@contoso.com'),
('王', '一箭', '13698000000', 'wangyijian@contoso.com.co'),
('独孤', '九剑', '13599999999', 'dugujiujian@contoso.net');
SELECT * FROM Membership;

分配一个testuser用户赋予查询权限

CREATE USER TestUser WITHOUT LOGIN;
GRANT SELECT ON Membership TO TestUser;

使用testuser身份进行查询

EXECUTE AS USER = 'TestUser';
SELECT * FROM Membership;
REVERT;

结果如下：

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3702.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3702.png" alt="3702" width="439" height="232" class="alignnone size-full wp-image-13855" /></a>

更改掩码

ALTER TABLE Membership
ALTER COLUMN Phone# varchar(13) MASKED WITH (FUNCTION = 'partial(3,"****",4)'); ---更改为从第三位开始，使用*来做掩码，最后显示4位

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3703.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3703.png" alt="3703" width="499" height="363" class="alignnone size-full wp-image-13857" /></a>

ALTER TABLE Membership
ALTER COLUMN Phone# varchar(13) MASKED WITH (FUNCTION = 'partial(3,"****",5)'); ---更改为从第三位开始，使用*来做掩码，，最后显示5位

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3704.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3704.png" alt="3704" width="523" height="227" class="alignnone size-full wp-image-13865" /></a>

<strong>授权查看未经屏蔽数据的权限 </strong>

授予 <strong>UNMASK</strong> 权限即可让 TestUser 查看未经屏蔽的数据

GRANT UNMASK TO TestUser;
EXECUTE AS USER = 'TestUser';
SELECT * FROM Membership;
REVERT;

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3705.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3705.png" alt="3705" width="545" height="221" class="alignnone size-full wp-image-13875" /></a>

删除未屏蔽权限

-- Removing the UNMASK permission
REVOKE UNMASK TO TestUser;

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3706.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3706.png" alt="3706" width="582" height="356" class="alignnone size-full wp-image-13885" /></a>

<strong>删除动态数据屏蔽</strong>

以下语句将删除上述示例中创建的针对 FirstName列的屏蔽：

ALTER TABLE Membership
ALTER COLUMN FirstName DROP MASKED;

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3707.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3707.png" alt="3707" width="487" height="420" class="alignnone size-full wp-image-13895" /></a>

<strong>查询屏蔽列</strong>

通过以下语句可以查询到那些列使用了屏蔽

SELECT c.name, tbl.name as table_name, c.is_masked, c.masking_function
FROM sys.masked_columns AS c
JOIN sys.tables AS tbl
ON c.[object_id] = tbl.[object_id]
WHERE is_masked = 1;

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3708.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3708.png" alt="3708" width="693" height="270" class="alignnone size-full wp-image-13905" /></a>

以上是在SQL 2016上完成的，再来看看Azure SQL 数据库上怎么实现

第一种方法也使用上面的代码，用SQL management studio 连接Azure SQL 数据库，如图

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3709.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3709.png" alt="3709" width="503" height="301" class="alignnone size-full wp-image-13915" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3710.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3710.png" alt="3710" width="396" height="488" class="alignnone size-full wp-image-13925" /></a>

一样执行之前的代码，看看结果

create TABLE Membership
(MemberID int IDENTITY PRIMARY KEY,
FirstName varchar(100) MASKED WITH (FUNCTION = 'default()') NULL, ----启用默认掩码
LastName varchar(100) NOT NULL,
Phone# varchar(13) MASKED WITH (FUNCTION = 'partial(3,"****",4)') NULL, ---启动动态屏蔽，
Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULL); ----启用email掩码

INSERT Membership (FirstName, LastName, Phone#, Email) VALUES
('张', '三丰', '13980040000', 'zhangsanfeng@contoso.com'),
('王', '一箭', '13698000000', 'wangyijian@contoso.com.co'),
('独孤', '九剑', '13599999999', 'dugujiujian@contoso.net');
SELECT * FROM Membership;

CREATE USER TestUser WITHOUT LOGIN;
GRANT SELECT ON Membership TO TestUser;

EXECUTE AS USER = 'TestUser';
SELECT * FROM Membership;
REVERT;

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3711.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3711.png" alt="3711" width="976" height="606" class="alignnone size-full wp-image-13926" /></a>

查看掩码情况

SELECT c.name, tbl.name as table_name, c.is_masked, c.masking_function
FROM sys.masked_columns AS c
JOIN sys.tables AS tbl
ON c.[object_id] = tbl.[object_id]
WHERE is_masked = 1

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3712.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3712.png" alt="3712" width="736" height="246" class="alignnone size-full wp-image-13935" /></a>

第二种方法，在 Azure  资源管理器 (ARM) 界面下，选择Azure SQL 数据库，数据的选项里面就有动态数据掩码选项。

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3713.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3713.png" alt="3713" width="811" height="561" class="alignnone wp-image-13936" /></a>

点击后

已经展示了使用个掩码的情况，也可以在此界面进行添加，更加简单。

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3714.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3714.png" alt="3714" width="812" height="562" class="alignnone wp-image-13945" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3715.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3715.png" alt="3715" width="498" height="624" class="alignnone size-full wp-image-13955" /></a>

也可以在这个界面进行修改

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3716.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3716.png" alt="3716" width="701" height="609" class="alignnone size-full wp-image-13965" /></a>

SQL 数据库动态数据掩码通过对非特权用户模糊化敏感数据来限制此类数据的泄露。
<ul>
 	<li>不对其进行屏蔽的 SQL 用户 - 一组可以在 SQL 查询结果中获取非屏蔽数据的 SQL 用户或 AAD 标识。 请注意，始终不会对拥有管理员权限的用户进行屏蔽，这些用户可以查看没有任何屏蔽的原始数据。</li>
 	<li>屏蔽规则 - 一组规则，定义将要屏蔽的指定字段，以及要使用的屏蔽函数。 可以使用数据库架构名称、表名称和列名称定义指定的字段。</li>
 	<li>屏蔽函数 - 一组方法，用于控制不同情况下的数据透露。</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2017/03/181.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/181.png" alt="18" width="660" height="634" class="alignnone size-full wp-image-13975" /></a>

<strong>权限</strong>

不需任何特殊权限即可使用动态数据屏蔽来创建表，只需标准的<strong> CREATE TABLE</strong> 权限以及对架构的 <strong>ALTER</strong> 权限。

添加、替换或删除对列的屏蔽，需要 <strong>ALTER ANY MASK</strong> 权限以及对表的 <strong>ALTER</strong> 权限。 可以将 <strong>ALTER ANY MASK</strong> 权限授予安全负责人。

具有表的 <strong>SELECT</strong> 权限的用户可以查看表数据。 列在被定义为“已屏蔽”后，将显示屏蔽后的数据。 对于需要从定义了屏蔽的列中检索非屏蔽数据的用户，可授予其 <strong>UNMASK</strong> 权限。

针对数据库的 <strong>CONTROL</strong> 权限包括<strong> ALTER ANY MASK</strong> 和 <strong>UNMASK</strong> 权限。

<strong>安全说明：可使用推断或暴力技术绕过屏蔽</strong>

<strong>上面的例子中，可以这样进行暴力推断 </strong>

<a href="https://msdnshared.blob.core.windows.net/media/2017/03/3719.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/03/3719.png" alt="3719" width="492" height="340" class="alignnone size-full wp-image-13985" /></a>

<strong>也就是说动态掩码是一个障眼法，不能阻止你去窥探数据的本身。上面的例子就是testuser看到数据，但是他可以推测出了姓“张”的数据。</strong>

<strong>总结：</strong>

动态数据屏蔽 (DDM) 通过对非特权用户屏蔽敏感数据来限制敏感数据的公开。 它可以用于显著简化应用程序中安全性的设计和编码。

动态数据屏蔽允许用户在尽量减少对应用程序层的影响的情况下，指定需要披露的敏感数据，从而防止对敏感数据的非授权访问。 DDM 可以在数据库上进行配置，以隐藏对指定数据库字段进行查询时获得的结果集中的敏感数据，同时不会更改数据库中的数据。 可以轻松地对现有应用程序使用动态数据屏蔽，因为屏蔽规则是应用于查询结果。 许多应用程序可以屏蔽敏感数据，而无需修改现有查询。
<ul>
 	<li>一个中央数据屏蔽策略直接对数据库中的敏感字段起作用。</li>
 	<li>指定有权访问敏感数据的特权用户或角色。</li>
 	<li>DDM 采用完全屏蔽和部分屏蔽功能，以及用于数值数据的随机屏蔽。</li>
 	<li>简单 Transact-SQL 命令定义和管理掩码。</li>
</ul>
例如，呼叫中心支持人员通过身份证号或信用卡号的几个数字就可以辨识呼叫者，但系统不会将这些数据内容完全公开给该支持人员。 可以通过定义屏蔽规则来屏蔽查询结果集中身份证号或信用卡号最后四位数字以外的所有数字。 另一个例子就是，在需要进行故障排除时，开发人员可以通过对数据进行适当的数据屏蔽来保护个人身份信息 (PII) 数据，因此可以在不违反遵从性法规的情况下，对生产环境进行查询。

动态数据屏蔽旨在限制敏感数据的公开，防止没有访问权限的用户查看敏感数据。 动态数据屏蔽并不是要防止数据库用户直接连接到数据库并运行可以公开敏感数据的详尽查询。 动态数据屏蔽是对其他 SQL Server 安全功能（审核、加密、行级别安全性…）的补充，因此，建议你将此功能与上述功能一起使用，以便更好地保护数据库中的敏感数据。]]></content:encoded>
    </item>
    <item>
      <title>Azure SQL 数据库中的DTU和eDTU是什么</title>
      <link>https://docs.microsoft.com/archive/blogs/azchina/azure-sql-%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%AD%E7%9A%84dtu%E5%92%8Cedtu%E6%98%AF%E4%BB%80%E4%B9%88</link>
      <pubDate>Tue, 07 Mar 2017 07:39:08 GMT</pubDate>
      <dc:creator><![CDATA[China Windows Azure Blog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/azchina/?p=13785</guid>
      <description><![CDATA[Max Shen 沈云
技术解决方案专家

Azure SQL 使用了数据库事务单位 (DTU) 和弹性数据库事务单位 (eDTU) 来作为一个计量单位。

但是DTU和eDTU...]]></description>
      <content:encoded><![CDATA[Max Shen 沈云
技术解决方案专家

Azure SQL 使用了数据库事务单位 (DTU) 和弹性数据库事务单位 (eDTU) 来作为一个计量单位。

但是DTU和eDTU 究竟是什么？

在官方文档中是这样解释的：

DTU 是一个资源度量单位，表示保证可用于<a href="https://docs.microsoft.com/zh-cn/azure/sql-database/sql-database-service-tiers#single-database-service-tiers-and-performance-levels">单一数据库服务层</a>内特定性能级别的单个 Azure SQL 数据库的资源。 DTU 是一定比例的 CPU、内存和数据 I/O 以及事务日志 I/O 的混合度量值，该比例由 OLTP 基准工作负荷决定（OLTP 基准工作负荷代表真实的 OLTP 工作负荷）。

这段话说起来有些难以理解，所谓一定比例的CPU、内存和数据库I/O这个就摸不着头了。 然后这些资源的比例又是按照OLTP的基准工作负荷来决定。OLTP基准工作负荷这个又是一个新东西，参见：<a href="https://www.azure.cn/documentation/articles/sql-database-benchmark-overview/">https://www.azure.cn/documentation/articles/sql-database-benchmark-overview/</a>

其实DTU简单理解就是衡量Azure提供的SQL 服务计算能力的一个指标。这个指标越大，SQL 的计算能力越强。如100个DTU比5个DTU就应该是强20倍。

<a href="https://msdnshared.blob.core.windows.net/media/2017/02/135.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/02/135.png" alt="1" width="685" height="388" class="alignnone size-full wp-image-13795" /></a>

而DTU的性能评估，可以参看下表：

<a href="https://msdnshared.blob.core.windows.net/media/2017/02/table.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/02/table.png" alt="table" width="694" height="356" class="alignnone wp-image-13805" /></a>

可以从上表上对应于本地数据库的性能采集的指标，可以估算出应该使用什么样级别的AZURE SQL。 当然服务层选择后仍然可以进行更改。

对于自己的应用应该用多大规模的DTU，可以进行详细的评估，可以使用下面工具

<a href="https://dtucalculator.azurewebsites.net/">Azure SQL Database DTU Calculator  </a>

所以，DTU就理解为Azure数据库的性能评估单位 。

那么什么是eDTU呢，DTU虽然不太好理解，但是从构架来说，不外乎就是为应用提供数据库服务，也即是我们常用的模型，使用起来也简单。我们称之为单一数据库。要理解eDTU我们先要讲讲什么是Azure 弹性数据库。

但是在云的时代就有一个典型的问题存在：所有应用几乎都会有峰值和低谷。而单一数据库一旦分配，资源就已经提供，没有高峰和低谷的区别。那么如何解决这样的问题呢。通常有两个选项：(1) 基于高峰使用情况过度设置资源，因此需要支付额外的费用，或者 (2) 为了节省成本而采用低配，但在高峰期间会出现性能下降而导致客户满意度降低。

弹性数据库就是为了解决这样的问题而诞生。弹性池通过确保数据库在需要时获得所需的性能资源来解决此问题。它们在可预测的预算内提供简单的资源分配机制。

其实这样理解，我们可以创建一个弹性的数据库池，而多个数据库使用这个池，充分利用池的资源。池很适合具有特定使用模式的大量数据库。对于给定的数据库，此模式的特征是低平均使用量与相对不频繁的使用高峰。可以加入池的数据库越多，就可以节省更多的成本。具体取决于应用程序使用模式，你可能会看到与使用两个 S3 数据库相同的成本节约。

下图显示了一个数据库示例，该数据库有大量的闲置时间，但也会定期出现活动高峰。这是适合池的使用模式：

<a href="https://msdnshared.blob.core.windows.net/media/2017/02/214.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/02/214.png" alt="2" width="680" height="397" class="alignnone size-full wp-image-13797" /></a>

在所示的五分钟时间段内，DB1 高峰最高达到 90 个 DTU，但其整体平均使用量低于五个 DTU。在单一数据库中，运行此工作负荷需要 S3 性能级别，但在低活动期间，大多数资源都处在未使用的状态。

池可让这些未使用的 DTU 跨多个数据库共享，因此减少了所需的 DTU 数和总体成本。

以上一个示例为基础，假设有其他数据库具有与 DB1 类似的使用模式。在接下来的两个图形中，4 个数据库和 20 个数据库的使用量分层放在相同的图形上，以说明随时间推移，它们的使用率非重叠的性质：

<a href="https://msdnshared.blob.core.windows.net/media/2017/02/313.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/02/313.png" alt="3" width="680" height="397" class="alignnone size-full wp-image-13815" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2017/02/411.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/02/411.png" alt="4" width="680" height="397" class="alignnone size-full wp-image-13816" /></a>

在上图中，黑线表示跨所有 20 个数据库的聚合 DTU 使用量。其中表明聚合 DTU 使用量永远不会超过 100 个 DTU，并指出 20 个数据库可以在此时间段内共享 100 个 eDTU。相比于将每个数据库放在单一数据库的 S3 性能级别，这会导致 DTU 减少 20 倍，价格降低 13 倍。

由于以下原因，此示例很理想：
<ul>
 	<li>每一数据库之间的高峰使用量和平均使用量有相当大的差异。</li>
 	<li>每个数据库的高峰使用量在不同时间点发生。</li>
 	<li>eDTU 将在多个数据库之间共享。</li>
</ul>
池的价格取决于池的 eDTU。尽管池的 eDTU 单位价格比单一数据库的 DTU 单位价格多 1.5 倍，但池 eDTU 可由多个数据库共享，因而所需的 eDTU 总数更少。定价方面和 eDTU 共享的这些差异是池可以提供成本节省可能性的基础。

所以eDTU一个池化DTU的概念，单一数据库性能可以动态的进行调节，而池中的数据库也可以进行添加删除。

更多相关信息和详细信息可以参考 <a href="https://www.azure.cn/documentation/services/sql-databases/">SQL 数据库文档</a>

<a href="https://www.azure.cn/blog/2017/02/28/AzureDtuAndEdtu">https://www.azure.cn/blog/2017/02/28/AzureDtuAndEdtu </a>]]></content:encoded>
    </item>
    <item>
      <title>用Azure物联网网关SDK连接设备</title>
      <link>https://docs.microsoft.com/archive/blogs/azchina/%E7%94%A8azure%E7%89%A9%E8%81%94%E7%BD%91%E7%BD%91%E5%85%B3sdk%E8%BF%9E%E6%8E%A5%E8%AE%BE%E5%A4%87</link>
      <pubDate>Mon, 26 Dec 2016 01:55:33 GMT</pubDate>
      <dc:creator><![CDATA[China Windows Azure Blog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/azchina/?p=13665</guid>
      <description><![CDATA[2016年11月21日发布



Sam...]]></description>
      <content:encoded><![CDATA[2016年11月21日发布

<a href="https://msdnshared.blob.core.windows.net/media/2016/12/p1.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2016/12/p1.jpg" alt="p1" width="62" height="62" class="alignnone size-full wp-image-13675" /></a>

<a href="https://azure.microsoft.com/en-us/blog/author/samgeo/">Sam George</a>，合伙人总监，Azure物联网

物联网（IoT）有潜力改变公司运营的方方面面。但是，如果物联网平台无法与企业现有资产轻松对接，或要求员工拥有全新的技能， 则其机遇会受到影响，吸引力会降低。

微软Azure物联网平台可以按需运作。它可以轻易地整合现有设备和服务，开发人员可以利用熟悉的编程语言进行扩展，与企业已经部署的后端平台无缝整合 。解决方案可以在本地运行，可以在托管云或私有云中运行，也可以在混合云和本地结合的场景中运行。因此，我们称之为“您的物联网”。

现在，随着<a href="https://azure.microsoft.com/en-us/services/iot-hub/iot-gateway-sdk/">Azure物联网网关SDK</a>的进一步优化，我们在原有承诺的基础上，允许用户将Azure数据中心外的物联网和高级分析延展到客户的网络边缘，触及连接在网络边缘的企业资产和设备。SDK的模块结构让开发人员能够把各个逻辑片段串联起来，创建解决方案，转换网络边缘的数据。无论是通过加密、过滤、注释还是定制化分析，数据都可以在创建该数据的设备周边进行处理，而只把真正需要的数据片段发送到云端，进行进一步处理。

这一点在石油天然气和零售等行业以及智能城市中尤其重要。在这些行业，公司需要在区域内进行实时计算，很多时候地域完全不同。有些情况下，网络边缘的设备可能没有足够的带宽，无法充分利用云中的数据分析。因此，这些设备需要使用网关上的边缘计算功能，在本地进行分析。

<a href="https://github.com/azure/azure-iot-gateway-sdk">开源的Azure物联网网关SDK</a>生态系统为开发人员和独立软件供应商提供了更多的选择，以不同的方式开发解决方案，缩短上市时间，减少维护成本。开发人员可以利用其他人的现有方案，或者选择他们熟悉的语言来扩展SDK，用Node.js、Java、C#或C等语言编写各个逻辑片段和模块。甚至还可以采用不同的语言编写模块构建端对端网关解决方案。用户无需精通某种编程语言，就可以利用生态系统中的代码。

寻找硬件加快开发基于SDK的网关解决方案，也是一个无缝过程。我们已经与英特尔合作，生产<a href="https://www.seeedstudio.com/Grove-IoT-Commercial-Gateway-Kit-p-2724.html">商用网关套件</a>，我们合作伙伴的生态系统已经包括了很多<a href="https://catalog.azureiotsuite.com/?q=gateway">Azure物联网认证网关硬件</a>。由于支持多种操作系统，包括风河Linux、Ubuntu、Windows 10和Windows Server 2012，用户可以完全按需选择符合自己的网关设备。

Azure物联网是最全面的物联网生态系统。凭借Azure物联网网关SDK，我们可以提供更好的灵活性，帮助您灵活地设计和部署物联网。

如果想更多地了解Azure物联网网关SDK，开发自己的网关解决方案，请访问这里。如果想更多地了解微软物联网如何改变您的企业，请访问<a href="https://internetofyourthings.com">internetofyourthings.com</a>。

声明 开发人员 更新 物联网 Azure物联网网关SDK 发布

<a href="https://www.azure.cn/blog/2016/12/20/AzureIOTSDK">https://www.azure.cn/blog/2016/12/20/AzureIOTSDK</a>]]></content:encoded>
    </item>
    <item>
      <title>随着产品正式发布上市，Azure物联网中心的设备管理能力将得到极大的提升</title>
      <link>https://docs.microsoft.com/archive/blogs/azchina/%E9%9A%8F%E7%9D%80%E4%BA%A7%E5%93%81%E6%AD%A3%E5%BC%8F%E5%8F%91%E5%B8%83%E4%B8%8A%E5%B8%82%EF%BC%8Cazure%E7%89%A9%E8%81%94%E7%BD%91%E4%B8%AD%E5%BF%83%E7%9A%84%E8%AE%BE%E5%A4%87%E7%AE%A1%E7%90%86</link>
      <pubDate>Mon, 26 Dec 2016 01:47:04 GMT</pubDate>
      <dc:creator><![CDATA[China Windows Azure Blog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/azchina/?p=13685</guid>
      <description><![CDATA[2016年11月21日发布



Sam George，Azure物联网合伙人总监

随着物联网设备管理的不断发展，对设备在生命周期中进行不间断的有效管理...]]></description>
      <content:encoded><![CDATA[2016年11月21日发布

<a href="https://msdnshared.blob.core.windows.net/media/2016/12/p1.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2016/12/p1.jpg" alt="p1" width="62" height="62" class="alignnone size-full wp-image-13675" /></a>

<a href="https://azure.microsoft.com/en-us/blog/author/samgeo/">Sam George</a>，Azure物联网合伙人总监

随着物联网设备管理的不断发展，对设备在生命周期中进行不间断的有效管理 是物联网解决方案成功的最关键要素之一。前段时间发布了“<a href="https://azure.microsoft.com/en-us/blog/microsoft-announces-two-new-offerings-to-streamline-iot-management/">物联网中心设备管理预览</a>”后，开发人员和合作伙伴提出了反馈意见。我们基于这些反馈意见，新增了一些功能，现在向所有客户正式发布。

借助Azure物联网中心设备管理能力，物联网开发人员和运营人员可以运用Azure超大规模云的强大能力，组织、监控、查询和管理数以亿计的设备变更。物联网运营人员可以充分利用Azure物联网中心设备管理工具和应用，处理很多常见的业务需求，包括：
<ul>
 	<li>规模化和自动化 — 将日常任务自动化后，运营方只需要相对较少的工作人员就可以管理数以百万计的设备</li>
 	<li>开放性和兼容性 — 为多种多样的设备等级、平台类型、操作系统和协议标准提供量身定制的管理</li>
 	<li>情景感知 — 采用灵活、智能的设计，适应动态变化的生产和工业环境，保证服务可靠、机械健康以及操作和使用人员的安全</li>
 	<li> 多角色服务 — 支持物联网运营者的工作流程，同时促进与执行其他关键任务的技术和业务角色之间的合作</li>
</ul>
随着Azure物联网中心设备管理功能的正式发布，无论新客户还是老客户均能使用该服务的新特性和功能：

<strong>设备孪生</strong>— 以数字方式呈现物理设备，在云和端之间保持设备状态和运营者配置的同步。
<strong>直接方法</strong> — 对云连接的设备采取直接高效的行动。
<strong>作业</strong> — 公布和安排设备对应项 变更，对数以百万计的设备进行规模管理。
<strong>查询</strong> — 为设备对应项 和作业创建实时、动态的报告，无论设备是否在线，都可验证整个设备集的状态。

作为“<a href="https://github.com/Azure/azure-iot-sdks">Azure物联网设备SDK</a>”的一部分，这些功能已经可以使用。目前已经可以为C和Node.js提供设备支持，很快也将为使用C#的Python和Java提供支持。除了这些基本的构建模块以外, <a href="https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-node-node-device-management-get-started">我们为以下设备管理行动提供支持</a>。

<strong>软件 更新</strong> — 在单一设备或设备集上使用固件映像
<strong>重启</strong> — 重启一个或多个设备
<strong>恢复出厂设置</strong> — 把一个设备或设备集恢复到最初的出厂映像 和配置
<strong>配置</strong> — 无论设备在线与否，采用设备镜像的合适性质 配置一个或多个设备。

对于“<a href="https://github.com/Azure/azure-iot-sdks/tree/master/c/iothub_client/samples/iothub_client_sample_mqtt_dm/pi_device">Raspberry Pi 2 &amp; 3</a>”，也可以执行这些行动 。另外，我们正在与“<a href="https://azure.microsoft.com/en-us/blog/microsoft-expands-azure-certified-for-iot-to-help-customers-choose-the-right-iot-device/">很多物联网和工业互联网设备生产商</a>”合作，为更多种类的设备提供第一方支持。

要了解更多有关Azure物联网中心设备管理能力提升的信息，请查看“<a href="https://docs.microsoft.com/zh-cn/azure/iot-hub/iot-hub-device-management-overview">概况</a>”和“<a href="https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-node-node-device-management-get-started">初学指导</a>”。我们非常重视客户的反馈意见。请通过“<a href="https://feedback.azure.com/forums/321918-azure-iot/">Azure物联网用户论坛</a>”或者加入“<a href="https://www.yammer.com/azureadvisors/">Azure物联网顾问Yammer群</a>”提供建议。

<a href="https://www.azure.cn/blog/2016/12/20/AzureIOTManagement">https://www.azure.cn/blog/2016/12/20/AzureIOTManagement </a>]]></content:encoded>
    </item>
    <item>
      <title>Azure CDN Smart Routing 功能正式上线</title>
      <link>https://docs.microsoft.com/archive/blogs/azchina/azure-cdn-smart-routing-%E5%8A%9F%E8%83%BD%E6%AD%A3%E5%BC%8F%E4%B8%8A%E7%BA%BF</link>
      <pubDate>Mon, 28 Nov 2016 12:38:03 GMT</pubDate>
      <dc:creator><![CDATA[China Windows Azure Blog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/azchina/?p=13645</guid>
      <description><![CDATA[经过Azure中国CDN产品团队的不懈努力，融合CDN服务的一个重要功能 Smart Routing目前已经正式上线。在接下来的一段时间该功能将逐步开放给所有客户。本文主要对Smart...]]></description>
      <content:encoded><![CDATA[经过Azure中国CDN产品团队的不懈努力，融合CDN服务的一个重要功能 Smart Routing目前已经正式上线。在接下来的一段时间该功能将逐步开放给所有客户。本文主要对Smart Routing做一个基本的介绍。

<strong>问题 </strong>

在具体介绍Smart Routing是什么之前，我们先来聊一聊它所主要解决的问题。
目前客户在使用CDN服务时，从所选择的服务厂商的数量可以分为以下两种：

<strong>只使用一家CDN厂商 </strong>

这是一种比较普遍的使用情况，尤其是对那些IT部门资源相对比较紧张的公司，没有专门的CDN管理人员。但随之而来的问题就是，因为被绑定在一家CDN服务商，客户所能获得的CDN服务的性能、可用性、节点覆盖以及加速类型都会被绑定在一家CDN服务商。而且这也非常容易造成“单点故障”，如果这一家CDN服务商的服务出现全面的（或者在某些地区，某些网络运营商）故障，为了不让服务中断，在单一CDN服务商恢复服务之前，客户所能做的就只有临时将访问都切回源站。但这样，就会对源站造成比较大的影响，也就失去了使用CDN服务的意义。

下面我们通过一个实际的数据来验证一下前面提到的性能问题：没有一家CDN厂商在全国所有地区、所有运营商的组合下，性能都是最优。

这组数据是我们通过使用第三方专业的性能测试平台，对相同的三家CDN服务商、相同的测试文件、相同的测试时间段，不同的两个地区（北京和上海）所做的测试，结果如下：
<ul>
 	<li>200KB 文件下载，3 家 CDN厂商，11/8 – 11/15，北京</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2016/11/s11.png"><img src="https://msdnshared.blob.core.windows.net/media/2016/11/s11.png" alt="s1" width="731" height="178" class="alignnone size-full wp-image-13655" /></a>
<ul>
 	<li>200KB 文件下载，3 家 CDN厂商，11/8 – 11/15，上海</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2016/11/s21.png"><img src="https://msdnshared.blob.core.windows.net/media/2016/11/s21.png" alt="s2" width="725" height="176" class="alignnone size-full wp-image-13636" /></a>

从上面的数据中可以明显看出，蓝色所对应的CDN厂商在北京地区性能相对差一些，但是在上海地区相对性能是最好的。

<strong>使用多家CDN厂商 </strong>

鉴于上面所述的只使用一家CDN厂商所遇到的问题，第二种情况就是客户自己使用多家CDN厂商服务，来尽可能的规避这些问题。但随之而来的会引入一些新的问题。
<ul>
 	<li><span class="Apple-tab-span"> </span>需要自己的IT管理团队具有相对更加专业的CDN知识才能真正把多家CDN服务商的资源用好</li>
 	<li>随之而来的运维成本的上升</li>
 	<li>从CDN售后服务角度来说，使用多家CDN服务商之后，客户会从之前的只需联系一家CDN服务商变为直接面对多家不同的CDN售后服务</li>
 	<li>从合同签订来说，会变成需要同时维护和多家CDN服务商的合约、账单，同时因为CDN用量分散，会带来议价能力的降低</li>
</ul>
下面我们就来看看Azure China CDN服务是如何来解决前面所述问题的。
Azure China CDN服务是一种融合CDN服务，后台整合多家国内优质CDN服务，对外提供统一的管理、计费和支持接口：
<ol>
 	<li><span class="Apple-tab-span"> </span>统一管理：提供统一的管理、监控和运维管理门户，客户无需使用不同CDN厂商的自有界面</li>
 	<li><span class="Apple-tab-span"> </span>统一计费：提供统一计费模型、费率，用多少付多少</li>
 	<li>统一支持：提供统一的技术支持接口，统一协调多家CDN服务商</li>
</ol>
<strong>什么是Smart Routing </strong>

作为一个融合CDN服务，Azure China CDN服务最根本的价值主张就是整合国内多家优质CDN服务商的资源，为客户提供最优节点。要做到这一点，就不能只是简单的把某一家CDN资源直接提供给Azure的客户来使用。而是需要有一套智能的监控调度机制来为每个客户选出最适合的CDN服务节点。Smart Routing就是这一核心功能的总称。

<strong>访问方式 </strong>

启用了Smart Routing功能之后，CDN资源的访问方式如下图所示：

<a href="https://msdnshared.blob.core.windows.net/media/2016/11/s31.png"><img src="https://msdnshared.blob.core.windows.net/media/2016/11/s31.png" alt="s3" width="856" height="472" class="alignnone size-full wp-image-13646" /></a>

简单来说，因为启用了Smart Routing功能，同一个CDN加速域名在Azure China CDN平台上，后端是同时配置了（多CNAME机制）多家CDN服务厂商。当访问者具体访问某个文件时，Azure China CDN平台会根据Smart Routing所配置的调度策略来动态选择一家CDN服务商的资源，最终响应访问者的访问请求。

<strong>调度策略 </strong>

Azure China CDN的Smart Routing功能目前可以支持如下四种调度方式：
<ul>
 	<li>基本的Failover模式，用以解决高可用问题</li>
 	<li>加权轮询调度 （Weighted Round Robin），用以解决基本的负载均衡问题</li>
 	<li>基于地理位置的负载均衡调度</li>
 	<li>基于访问性能的负责均衡调度</li>
</ul>
<strong>后续更新 </strong>

如本文开头所讲，目前Smart Routing采用的是渐进上线方式，逐步分批开放给所有Azure China CDN用户。这个过程对客户来说是完全透明的，客户不需要做任何的设置改动。同时，目前上线的Smart Routing功能默认配置为 “基本的Failover + 基于访问性能的负载均衡”这种调度策略，后续会逐渐开放所有的调度策略供客户选择。敬请期待Azure China CDN产品组的后续更新！

<a href="https://www.azure.cn/blog/2016/11/28/AzureCDNSmartRouting">https://www.azure.cn/blog/2016/11/28/AzureCDNSmartRouting </a>]]></content:encoded>
    </item>
    <item>
      <title>BSD和云 – 不可错过的BSD聚会</title>
      <link>https://docs.microsoft.com/archive/blogs/azchina/bsd%E5%92%8C%E4%BA%91-%E4%B8%8D%E5%8F%AF%E9%94%99%E8%BF%87%E7%9A%84bsd%E8%81%9A%E4%BC%9A</link>
      <pubDate>Tue, 22 Nov 2016 03:22:21 GMT</pubDate>
      <dc:creator><![CDATA[China Windows Azure Blog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/azchina/?p=13635</guid>
      <description><![CDATA[自2012年开始，微软云计算与企业事业部和Citrix思杰，NetApp达成合作，共同开发出第一版针对Hyper-V虚拟设备驱动以及相关的用户态程序，并将此称之为集成服务...]]></description>
      <content:encoded><![CDATA[<div class="entry-content single">

自2012年开始，微软云计算与企业事业部和Citrix思杰，NetApp达成合作，共同开发出第一版针对Hyper-V虚拟设备驱动以及相关的用户态程序，并将此称之为集成服务 (Integration Service) 。微软也紧密地和FreeBSD社区合作，所有集成服务的代码都是第一时间上传到FreeBSD内核。在过去这几年，微软开源技术中心的上海研发团队让FreeBSD在网络&amp;存储性能以及功能上都有了重大提升。

Hyper-V 是 Azure 的虚拟化平台。而微软投资于FreeBSD运行于Hyper-V的主要原因之一是使 FreeBSD 可以运行于在 Azure。可能您会想，为什么FreeBSD运行于Azure 是如此重要呢？BSD和云计算的碰撞又有什么新的火花呢？ 赶快来参加微软和FreeBSD基金会联手举办的BSD聚会吧，在这您不仅能学习到如何<a href="https://www.azure.cn/documentation/articles/virtual-machines-freebsd-intro-on-azure/">在Azure上运行FreeBSD</a>，了解到哪些Azure镜像市场上有哪些优秀的基于BSD的产品，比如<a href="https://market.azure.cn/Vhd/Show?vhdId=11887&amp;version=12959">Array负载均衡控制器（vAPV）</a>和<a href="https://market.azure.cn/Vhd/Show?vhdId=11903&amp;version=13978">Citrix-Netscaler-VPX-11.0</a>，并且您可以见到《FreeBSD操作系统设计与实现》的作者并聆听大牛们的分享。

免费票有限，赶快来报名哦!
<a href="https://www.huodongxing.com/go/bsd_sh">上海 </a> <a href="https://www.huodongxing.com/go/bsd_bj">北京</a>

<a href="https://msdnshared.blob.core.windows.net/media/2016/11/BSD.png"><img src="https://msdnshared.blob.core.windows.net/media/2016/11/BSD.png" alt="bsd" width="862" height="539" class="alignnone wp-image-13605" /></a>
<ul>
 	<li>特邀嘉宾简介：</li>
 	<li>Robert Watson（2016.11.21 上海）</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2016/11/BSD1.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2016/11/BSD1.jpg" alt="bsd1" width="193" height="195" class="alignnone size-full wp-image-13615" /></a>

Watson博士是英国剑桥大学系统，安全，和计算机体系结构的副教授。在英国剑桥大学的计算机实验室，他领导一支科验团队进行操作系统，网络，安全，程序分析和转换及计算机体系结构的研究。Watson博士与业界的FreeBSD用户有着广泛的合作，帮助他们更好的融入FreeBSD社区。他开发的MAC（强制访问控制）软件框架被广泛应用于各种基于FreeBSD的产品，比如，iOS，Mac OS X和JunOS的沙箱。Watson博士之前也在McAfee研究中心担任资深科学家。他是新版的《FreeBSD操作系统设计与实现》作者之一。在90年代后期他就是一个活跃的FreeBSD开发者主要，主要的兴趣领域在安全，网络和FreeBSD的发行版本制作。他作为FreeBSD的核心成员和FreeBSD基金会的董事已经超过了10年。
<ul>
 	<li>George Neville-Neil（2016.12.5 北京）</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2016/11/BSD2.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2016/11/BSD2.jpg" alt="bsd2" width="194" height="211" class="alignnone wp-image-13586" /></a>

George在80年代中期就开始使用BSD。他在2004年得到FreeBSD代码上传权限（即committer）。在2006到2010年期间，两度担任FreeBSD核心成员。从2011年起，他开始组办FreeBSD厂商峰会，让FreeBSD社区成员和使用FreeBSD的厂商聚在一起，以进一步加强技术的交流和互动。Georges是《FreeBSD操作系统设计与实现》的作者之一。他主要从事FreeBSD网络栈的开发，以及系统的其他组件。

</div>]]></content:encoded>
    </item>
    <item>
      <title>Azure媒体服务的Apple FairPlay流功能正式上线</title>
      <link>https://docs.microsoft.com/archive/blogs/azchina/azure%E5%AA%92%E4%BD%93%E6%9C%8D%E5%8A%A1%E7%9A%84apple-fairplay%E6%B5%81%E5%8A%9F%E8%83%BD%E6%AD%A3%E5%BC%8F%E4%B8%8A%E7%BA%BF</link>
      <pubDate>Tue, 08 Nov 2016 07:56:17 GMT</pubDate>
      <dc:creator><![CDATA[China Windows Azure Blog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/azchina/?p=13475</guid>
      <description><![CDATA[在此我们高兴地宣布，Azure FairPlay Streaming服务已正式商用。 FairPlay允许用户轻松构建解决方案，并可扩展到最新版本的Apple...]]></description>
      <content:encoded><![CDATA[在此我们高兴地宣布，Azure FairPlay Streaming服务已正式商用。 FairPlay允许用户轻松构建解决方案，并可扩展到最新版本的Apple TV。Azure媒体服务可以结合现有的PlayReady和Widevine DRM支持，为用户提供单点控制，快速构建多DRM解决方案。

操作指南

在Azure中使用FairPlay服务之前，需要通过Apple开发计划执行以下步骤：
<ul>
 	<li>注册<a href="https://developer.apple.com/">Apple Development Program</a>；</li>
 	<li>由于Apple需要内容所有者获取<a href="https://idmsa.apple.com/IDMSWebAuth/login.html?path=%2F%2Fcontact%2Ffps%2F&amp;appIdKey=891bd3417a7776362562d2197f89480a8547b108fd934911bcbea0110d07f757">部署包</a>，因此用户需说明已使用Azure媒体服务执行密钥安全模块（KSM），向Apple提出需要最终FPS包的请求；</li>
 	<li>获得最终的FPS包后，请按照说明生成认证和ASK（应用程序密钥），保存配置FairPlay服务时需使用的部分。 如果在证书转换为.pfx格式时遇到问题，请查看<a href="https://www.azure.cn/documentation/articles/media-services-protect-hls-with-fairplay/">此文</a>。</li>
</ul>
选项1：通过新的Azure门户预览配置FairPlay
<ul>
 	<li><span class="Apple-tab-span"> </span>通过“设置边栏选项卡”中的“内容保护”上传认证、密码和ASK，即可在资产上应用FairPlay加密；</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2016/11/17.png"><img src="https://msdnshared.blob.core.windows.net/media/2016/11/17.png" alt="1" width="705" height="455" class="alignnone size-full wp-image-13495" /></a>
<ul>
 	<li>上传视频文件，将其编码为H.264多个码率MP4；</li>
 	<li>对资产加密，选择FairPlay 和HLS。 可以同时启用PlayReady和Widevine；</li>
 	<li>通过创建流定位器发布素材资源；</li>
</ul>
<a href="https://msdnshared.blob.core.windows.net/media/2016/11/26.png"><img src="https://msdnshared.blob.core.windows.net/media/2016/11/26.png" alt="2" width="886" height="374" class="alignnone size-full wp-image-13505" /></a>
<ul>
 	<li>目前，Azure媒体播放器（Azure Media Player）尚未上线，不支持FairPlay播放。 但是Apple提供示例播放器代码和IOS SDK，可以播放FairPlay加密的内容。 我们在<a href="https://ivshapo.blob.core.windows.net/public/Safari.html">这里</a>托管了相同的播放器代码，用户只需要更改以下内容：</li>
</ul>
<ol>
 	<li>var ismPath = '&lt;your manifest url .ism/manifest(format=m3u8-aapl) &gt;’</li>
 	<li>var serverCertificatePath = '&lt;your cert url .der&gt;’</li>
</ol>
选项2：通过 .NET SDK或REST API配置FairPlay
<ul>
 	<li><a href="https://www.nuget.org/packages/windowsazure.mediaservices/">SDK</a></li>
 	<li><a href="https://www.azure.cn/documentation/articles/media-services-protect-hls-with-fairplay/">文档</a></li>
 	<li>配置FairPlay的Github样例</li>
</ul>
选项3：通过Azure 媒体服务Explorer工具配置FairPlay

Azure媒体服务Explorer工具是一个<a href="https://github.com/Azure/Azure-Media-Services-Explorer">免费安装</a>的桌面工具。右键单击“媒体服务” ，然后依次选择“安全”、“添加动态加密”和“密钥交付策略”，找到FairPlay配置。

<a href="https://msdnshared.blob.core.windows.net/media/2016/11/34.png"><img src="https://msdnshared.blob.core.windows.net/media/2016/11/34.png" alt="3" width="660" height="406" class="alignnone size-full wp-image-13515" /></a>

可用性和价格

FairPlay交付许可证服务已正式上线，我们为该服务提供99.9％的服务级别协议保证有关价格请参考 <a href="https://www.azure.cn/pricing/details/media-services/">Azure 媒体服务价格页面</a>。]]></content:encoded>
    </item>
    <item>
      <title>Azure 媒体服务可将优质内容传输至 Apple TV</title>
      <link>https://docs.microsoft.com/archive/blogs/azchina/azure-%E5%AA%92%E4%BD%93%E6%9C%8D%E5%8A%A1%E5%8F%AF%E5%B0%86%E4%BC%98%E8%B4%A8%E5%86%85%E5%AE%B9%E4%BC%A0%E8%BE%93%E8%87%B3-apple-tv</link>
      <pubDate>Tue, 08 Nov 2016 07:48:20 GMT</pubDate>
      <dc:creator><![CDATA[China Windows Azure Blog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/azchina/?p=13535</guid>
      <description><![CDATA[作为内容提供商，如果想要将优质内容传输到Apple TV，需要使用Apple FairPlay Streaming (FPS) 技术。...]]></description>
      <content:encoded><![CDATA[作为内容提供商，如果想要将优质内容传输到Apple TV，需要使用<a href="https://developer.apple.com/streaming/fps/">Apple FairPlay Streaming (FPS) </a>技术。 但是这个技术的构建比较繁琐，基于此，Azure提供了FairPlay 流服务，规避了所有复杂的部分，用户通过API，可以以编程的方式轻松构建FPS解决方案。 此外，Azure媒体服务支持FairPlay，PlayReady和Widevine，可以为流式视频点播（VOD）和直播（Live）内容提供真正的多DRM解决方案，使得用户可以轻松、快速地在各种设备上触及超大规模观众。

FPS 在 Azure媒体服务中的工作原理

多DRM在Azure媒体服务中的工作原理请参考下图。用户可以使用MPEG-DASH流，轻松对PlayReady和Widevine DRM进行配置；或者使用FairPlay流，轻松对HLS + 样品AES进行配置。

<a href="https://msdnshared.blob.core.windows.net/media/2016/11/112.png"><img src="https://msdnshared.blob.core.windows.net/media/2016/11/112.png" alt="11" width="610" height="291" class="alignnone size-full wp-image-13545" /></a>

以下加密格式可用来保护HLS流：
<ul>
 	<li>AES-128信封清除键：使用AES-128 CBC模式加密整个组块。 iOS和OSX播放器本地支持流的解密。 该服务已发布一年，更多信息请参考<a href="https://www.azure.cn/documentation/articles/media-services-protect-with-aes128/">使用 AES-128 动态加密和密钥传送服务</a>。</li>
 	<li>&lt;NEW&gt; SAMPLE-AES FairPlay：使用AES-128 CBC模式加密单个视频和音频样本。 FPS集成到设备操作系统中，在iOS和Apple TV上提供本机支持。 OS X上的Safari使用EME接口支持，启动FPS。</li>
</ul>
价格和可用性

FairPlay 交 付 许可证已正式上线，有关价格请参考 <a href="https://www.azure.cn/pricing/details/media-services/">Azure 媒体服务价格页面</a>。

使用FairPlay的步骤：
<ol>
 	<li>注册Azure.cn，创建<a href="https://www.azure.cn/documentation/articles/media-services-portal-create-account/">Azure媒体服务帐户</a>。</li>
 	<li>注册<a href="https://developer.apple.com/">Apple开发计划</a>。</li>
 	<li>由于Apple需要内容所有者获取<a href="https://idmsa.apple.com/IDMSWebAuth/login.html?path=%2F%2Fcontact%2Ffps%2F&amp;appIdKey=891bd3417a7776362562d2197f89480a8547b108fd934911bcbea0110d07f757">部署包</a>，因此用户需说明已使用Azure媒体服务执行密钥安全模块（KSM），向Apple提出需要最终FPS包的请求。</li>
 	<li>获得最终的FPS包后，请按照说明生成认证和应用程序密钥（ASK），保存配置FairPlay服务时需使用的部分。</li>
 	<li>使用REST API或 .NET SDK配置服务。Azure门户和Azure Explorer工具以后也会提供支持。
SDK：<a href="https://www.nuget.org/packages/windowsazure.mediaservices/3.6.0">https://www.nuget.org/packages/windowsazure.mediaservices/3.6.0</a>
文档：<a href="https://www.azure.cn/documentation/articles/media-services-protect-hls-with-fairplay/">https://www.azure.cn/documentation/articles/media-services-protect-hls-with-fairplay/</a>
配置FairPlay的Github示例项目：<a href="https://github.com/Azure-Samples/media-services-dotnet-dynamic-encryption-with-fairplayhttps://github.com/Azure-Samples/media-services-dotnet-dynamic-encryption-with-fairplay">https://github.com/Azure-Samples/media-services-dotnet-dynamic-encryption-with-fairplayhttps://github.com/Azure-Samples/media-services-dotnet-dynamic-encryption-with-fairplay</a></li>
 	<li>FairPlay播放器怎么样？
目前没有支持FairPlay的Azure媒体播放器（Azure Media Player），但是用户可以在Apple的FairPlay部署软件包中获得HTML5。此播放器支持FairPlay，保护其在Mac OSX上通过Safari进行播放。对于IOS或Apple TV，需要使用IOS SDK，为流式传输构建本机应用程序。</li>
</ol>]]></content:encoded>
    </item>
    <item>
      <title>新的理念、 新的解决方案、 新的Azure Stack技术预览</title>
      <link>https://docs.microsoft.com/archive/blogs/azchina/%E6%96%B0%E7%9A%84%E7%90%86%E5%BF%B5%E3%80%81-%E6%96%B0%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E3%80%81-%E6%96%B0%E7%9A%84azure-stack%E6%8A%80%E6%9C%AF%E9%A2%84%E8%A7%88</link>
      <pubDate>Tue, 25 Oct 2016 09:49:03 GMT</pubDate>
      <dc:creator><![CDATA[China Windows Azure Blog]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/azchina/?p=13465</guid>
      <description><![CDATA[Jeffrey Snover

我们很高兴地宣布︰ Azure Stack Technical Preview...]]></description>
      <content:encoded><![CDATA[Jeffrey Snover

我们很高兴地宣布︰ <a href="https://azure.microsoft.com/en-us/overview/azure-stack/">Azure Stack Technical Preview 2（TP2）</a>已发布！我们朝着向您的数据中心提供Azure服务能力的目标又更近一步。自发布第一个技术预览版（TP1）以来，我们访问了很多用户，惊讶于他们描述的希望通过Azure Stack所建立的各种解决方案以及由此期望解决的问题。他们把 Azure Stack看作是Azure公有云服务的自然延伸，这使得他们能够实施新的解决方案以面对业务挑战并处理产生那些Shadow IT问题的根源。因为 Azure Stack真正地和微软 Azure 公有云服务保持一致，所以可以用于处理由于企业的实际情况无法满足商业增长而产生的问题，例如监管限制、 数据敏感性，网路延迟以及自定义功能需求。一致的云计算平台意味着在公有和私有云环境之间无需转换就可以部署使用同样的应用、流程和技能— — 这同样为在企业防火墙背后发生的云计算革命铺平了道路。

许多我们听到的用户想法来自于那些并非传统使用公共云服务的行业。比如受到严密监管的金融机构，拥有多个分散在各地的工厂的制造企业，或者那些需要在汪洋大海的轮船上运行数据密集型应用程序的邮轮公司。这些不同种类用户的共同点都是渴望利用公有云快速的创新并扩展这些能力到一些公有云无法企及的场所以使他们开启新的商业机会。

Azure Stack支持许多种应用程序模式，但最令开发者和业务领导激动的是新的混合应用程序模式。这种模式提供了一种从一开始就为跨 Azure 和 Azure Stack来提供最佳的两全其美的解决方案。使用这种模式，开发者能够实时地、低风险地使用资源，而IT业务规划者则能够利用这种混合成本模式来尽可能满足客户的期望同时有效地满足成本底线和商业规则。这里与众不同的点就是一个可用在公有云计算和客户自己的数据中心一致的应用平台。我们考虑一个全球性应用程序的部署，因为拥有一致性，应用程序可以设计成拥有多个能够通过不同方式部署的组件，并同时保持一致的行为和管理而无需任何额外的工作。 比如一个程序的美国组件部署在公有云Azure中，当同一款应用部署到德国时，由于两国在隐私法规的不同，相关组件就能够部署在私有数据中心或者本地服务提供商的数据中心，诸如此类，而这只有 Azure 和 Azure Stack两者的结合才能实现。

添加新的 Azure 服务

微软通过运营一个全球性的超大规模公有云服务Azure学到了很多。正如我的朋友Mark Russinovich（译者注：Microsoft Azure CTO）说的，在云计算领域唯一不变的就是变化。Azure 本身建立的基础就是通过提供源源不断的创新和敏捷开发快速推出新技术以驱动面向客户的价值创新。能够很容易添加新服务的能力和扩展您的云计算环境是 Azure Stack的重要价值之一。在TP2 版本中，我们添加了新的基础服务 ，包括用于应用消息传递的<a href="https://azure.microsoft.com/en-us/services/storage/queues/">Azure 队列存储</a>和用于应用程序加密的<a href="https://www.azure.cn/home/features/key-vault/">Azure 密钥保管库</a>。我们也将在未来几周分享包含新服务的更新，如<a href="https://azure.microsoft.com/en-us/services/app-service/">App服务</a>。在任何情况下，我们的设计目标都是无缝的添加和升级这些服务。

源自Azure的云架构管理

对于Azure Stack，我们的目标就是使得企业和服务提供商都能够利用与公有云服务Azure同样的灵活性来管理和运营Azure Stack。因此，TP2包含许多面向服务提供商的功能和体验。
公有云Azure通过更新和新的服务而不断变化，并能够善于介绍这些变化且不会引发严重的问题或者宕机。我们已经开始在平台中建立与Azure一致的操作流程让部署这些更新以直观的方式进行。我们认为最重要的是让现有的 IT 人员能够使用他们的技能和专长去创建下一代云解决方案。在 TP2，我们添加了用于管理 Azure Stack的架构管理技术。此版本包含一个限定为单服务器部署的管理技术，这样私有云的所有者/管理者能够现在就开始观察系统是如何工作。我们将继续在后续的技术预览版本以及最终GA版本发布后不断提升此功能。

强大的单服务器

用于PoC的单节点部署仍然是可用于生产环境的多节点一体机前最迅速体验Azure Stack的途径。你能够在单个服务器上安装TP2，并开始探索，学习和做好准备，准备好在你的数据中心部署强大的Azure服务。即使在多节点的一体机最终版本发布之后，我们仍将保留单一服务器部署这一选项。我们坚信单一节点POC是整个Azure Stack体验中重要的一部分，这种功能将继续在一些诸如系统原型设计，学习和演示的场景中扮演重要角色。

发布TP2对于我们团队是一个令人激动的时刻，我们希望这对于你们来说也同样兴奋！这个版本的发布强调了这样一个事实，那就是Azure和它的伙伴Azure Stack都在随着时间推移而不断成长。我们期盼着在即将在北京召开的Microsoft Ignite会议上能够跟大家分享进展并倾听你的反馈，告诉我们哪些令你感到兴奋的，哪些是你希望在Azure Stack上看到的。

谢谢
Jeffrey Snover
Technical Fellow

<a href="https://blogs.technet.microsoft.com/hybridcloud/2015/12/21/microsoft-azure-stack-hardware-requirements/">如果你尚未配置一些服务器用来运行技术预览，请在这里找相关硬件规格</a>
<a href="https://azure.microsoft.com/overview/azure-stack/try/">下载新的技术预览并安装在你的服务器上</a>
<a href="https://download.microsoft.com/download/E/A/4/EA4017B5-F2ED-449A-897E-BD92E42479CE/Getting_Started_With_Azure_Resource_Manager_white_paper_EN_US.pdf">阅读Azure Resource Manager的技术白皮书</a>
<a href="https://aka.ms/AzureStackGitHub">查阅所有存于GitHub 的相关模板</a>
<a href="https://feedback.azure.com/forums/344565-azure-stack">加入社区讨论</a>]]></content:encoded>
    </item>
  </channel>
</rss>