• 2014索契(Sochi)冬奥会NBC赛事直播和点播,背后是Windows Azure的鼎力支持

    2014索契(Sochi)冬奥会圆满落幕,难忘吉祥物北极熊闭幕式上留下的那颗蓝色的眼泪。

    此次冬奥会NBC赛事直播和点播,根据相关报道,背后是Windows Azure云服务的鼎力支持。

    http://www.eweek.com/cloud/nbc-streams-2014-olympics-on-windows-azure-media-services.html

    http://www.microsoft.com/en-us/news/press/2014/feb14/02-06nbcsochipr.aspx

     

    微软在俄罗斯的负责人普里亚尼什尼科夫(NikolayPryanishnikov)表示:“能够成为索契奥运会的供应商,这是微软俄罗斯莫大的荣幸。微软的各项技术让主办方能以最高水平来组织这场颇具创意的奥运会。我们认为,它为俄罗斯以及全球的大型体育赛事设立了新的技术标准。WindowsAzuresochi2014.com提供的支持将能给下一届奥运会主办方带来新的契机,充分利用微软和主办方的其他科技合作伙伴的经验以及架构解决方案。

    普里亚尼什尼科夫列举了一些数据,很好地说明了巨大成功。具体可见:

                    http://roll.sohu.com/20140227/n395769860.shtml

     

    除此之外,有一些数字更让人印象深刻:在18天的赛事里,总共超6,000小时的高清晰流媒体,通过5个电视公司,向四大洲的22个国家进行了直播。

    在这背后,是Windows Azure的媒体服务(Media Services, WAMS),一个崭露头角的云服务。

    下面就是Windows Azure Media Service的架构图:

    WAMS Architecture.tif

    其中,提供了很多非常适合媒体制作、发布、管理等方面的组件和工具,例如多制式支持、转码、内容保护、广告伴随等。

    目前也看到一些媒体厂商在提供直播、实时互动等业务,对于类似冬奥会电视直播业务的支持,显然需要更多、更严格的技术支持。

    一个基于Windows AzureWAMS的直播的典型架构如下所示:

    WAMS-1i.tif

    对于流媒体,特别是高清晰的支持,以及对于不同设备端,特别是越来越多的移动手持设备(例如平板、智能手机等)上不同播放软件的支持,对技术开发提出了更高技术要求。

    相信Windows AzureWAMS一定会做得更好。

    请参考WAMS: http://www.windowsazure.com/en-us/solutions/media/

     

  • 将SQL Server数据库备份到Windows Azure存储(Blob Storage)

    在探讨基于Windows Azure虚拟机的SQL Server的容灾设计的时候,可以考虑将SQL Server数据库在本地(On-promise)和Windows Azure虚拟机之间通过AlwaysOnDatabase MirroringLog Shipping等方式进行备份。

    但这种方式都要受限于Windows Azure虚拟机的限制,例如,目前最大尺寸的Windows Azure虚拟机的限制可附加的最多的数据盘(Data Disk)是16个,每个数据盘最大容量为1TB,即总共为16TB

    对于一些本地数据库比较大,或者历史数据不断膨胀超规模等场景,如何更好地支持容灾备份,需要做进一步的考虑。

     

    另一方面,Windows Azure Blob Storage有更大的存储容量;同时,可以充分利用Windows Azure数据中心的地理分布,实现跨地域的容灾备份。此外,不必考虑容灾备份所需要的额外的房屋/数据中心租赁费、硬件、网络、人工等成本,而是用更为灵活、便宜的Windows Azure存储,是一个非常值得考虑的解决方案。

     

    好消息是在SQL Server 2012 Service Pack 1CU2补丁包(Cumulative update package 2)中,提供了将SQL Server数据库备份到Windows Azure存储(Blob Storage)中,及从存储中恢复。

    具体备份命令也是非常简单,可以使用TSQLC#PowerShell等命令,提供Blob StorageUrl、证书(Credential)等即可。此外,建议使用压缩(WITH COMPRESSION)选项,来降低备份空间及时间。

     

    Cumulative update package 2 for SQL Server 2012 Service Pack 1的下载地址:

    http://support.microsoft.com/kb/2790947

     

    此外,还可以参考CodePlex上的一个项目:Microsoft SQL Server To Windows Azure helper library,这个项目探讨如何跨接SQL Server Transact-SQLWindows Azure平台。

    https://sqlservertoazure.codeplex.com/

     

    当然,还有就是更加期待SQL Server 2014,将提供的相关工具。可参考:

    http://blogs.msdn.com/b/igorpag/archive/2013/10/23/create-a-sql-server-2014-database-directly-on-azure-blob-storage-with-sqlxi.aspx

     

  • Windows Azure设计模式(Design Patterns)及使用

     

    2月初,微软patterns & practicesP&P)组发布了面向Windows Azure的设计模式(Design Patterns),提供了丰富的设计模式、指导和样例代码等资源。

    具体请见:http://msdn.microsoft.com/en-us/library/dn568099.aspx

     

    目前,网站中提供了24个设计模式,即:

    • Cache-Aside Pattern

    • Circuit Breaker Pattern

    • Compensating Transaction Pattern

    • Competing Consumers Pattern

    • Compute Resource Consolidation Pattern

    • Command and Query Responsibility Segregation (CQRS) Pattern

    • Event Sourcing Pattern

    • External Configuration Store Pattern

    • Federated Identity Pattern

    • Gatekeeper Pattern

    • Health Endpoint Monitoring Pattern

    • Index Table Pattern

    • Leader Election Pattern

    • Materialized View Pattern

    • Pipes and Filters Pattern

    • Priority Queue Pattern

    • Queue-Based Load Leveling Pattern

    • Retry Pattern

    • Runtime Reconfiguration Pattern

    • Scheduler Agent Supervisor Pattern

    • Sharding Pattern

    • Static Content Hosting Pattern

    • Throttling Pattern

    • Valet Key Pattern

     

    这些模式分别对不同的设计目标进行了支持,包括:

    • 可用性(availability)

    • 数据管理(data management)

    • 设计与实现(design and implementation)

    • 消息(messaging)

    • 管理与监控(management and monitoring)

    • 性能与伸缩性(performance and scalability)

    • 稳定性(resiliency)

    • 安全性(security)

     

    我们可以针对不同的设计目标,可以发现相关的设计模式。例如,在进行高可用性设计的时候,我们可以看到,可以根据应用场景选择下面的三个设计模式:

    • Health Endpoint Monitoring Pattern

    • Queue-Based Load Leveling Pattern

    • Throttling Pattern

    Throttling Pattern不仅仅可以支持高可用性设计,实际上对于性能与伸缩性(performance and scalability),也是一个关键的、可选择的设计和实现方式。

    对于Throttling Pattern,在实现中,可以使用Enterprise Library 5.0 Integration Pack for Windows Azure中的Autoscaling Application Blockhttp://msdn.microsoft.com/library/hh680892(v=pandp.50).aspx

    其中,包括了对限流行为的实现(Implementing Throttling Behavior),具体可见:http://msdn.microsoft.com/en-us/library/hh680896(v=pandp.50).aspx