你可能已经注意到在Windows Azure开发人员门户网站中,我们最近发布了Windows Azure Traffic Manager的一个新的管理API。该API通过使得开发人员和IT专业人员与服务的脚本交互并以编程的方式实现与服务的接口来改善Traffic Manager。
对于那些不熟悉使用Windows Azure Traffic Manager的人来说,它使得你能够控制在不同的数据中心的托管服务之间流量的分配方式。Traffic Manager通过将流量发送到最近的数据中心中来改善应用程序的性能,它不会将流量发送到已关闭的托管服务,这样提高了服务的可靠性。
随着新版本API的发布,开发人员现在拥有管理与创建Traffic Manager策略的全部权限,包括从零开始创建一个配置文件。在这篇文章中,我们将介绍如何使用新的API创建、更新和管理配置文件。可以在这里找到新的Traffic Manager REST APIs的相关文档。
我们先看看网站上的一个典型的配置,看一看怎样使用新的API来完成相同的配置。在开始之前,如果你还不了解Windows Azure Traffic Manager,强烈建议您先阅读服务工作方式的概述。
我设立了一个配置,是使用性能的负载平衡方法在应用程序节点(该节点设立在美国中北部的数据中心和北欧的数据中心中)之间分配流量,下面是相关截图,供参考。
图1:Traffic Manager Policy页面
你可以在Edit Traffic Manager Policy对话框里配置Windows Azure Traffic Manager策略。作为一个程序开发人员你需要了解,幕后它使用了许多API调用来为你创建许多用来表示策略配置的实体。
那么,如何以编程的方式完成相同的配置呢?
了解实体是第一步。上面提到的策略包括指定了域名称的配置文件、至少一个definition,依次包括以下配置:负载平衡方法、DNS TTL、终结点和其它的监视配置。
图2:Traffic Manager实体
每个配置文件可以拥有与其关联的多个definition。但是,每次只能有一个Definition处于活动状态。在portal中暂时还不能创建多个Definition。它拥有定义多个不同的Definition并且无需重建就能在这些Definition之间切换的能力。
帖子 | https://management.core.windows.net/<subscription-id>/services/WATM/profiles |
图3:创建Profile Request参数
Create Profile API要求指定一个配置文件名称和Traffic Manager域名称。域名由一个DNS前缀(主机名)和.trafficmanager.net组成。在管理门户里没有地方可以设置profile名称;当你使用该门户时,它将自动生成。以编程的方式创建profile将会有所不同。作为一名开发人员,理解profile 名称是如何生成的这一点很重要。当你从该门户里创建一个profile,你所指定域名中的主机名加上-trafficmanager-net就生成了该名称。例如,如果你所指定的域名是woodgrove.trafficmanager.net,profile的内部名称将是woodgrove-trafficmanager-net。当以编程的方式创建profile时,profile名称是你传送给Create Profile API的。
帖子 |
图4:创建Definition Request参数
一旦创建了一个profile,你可以使用Create Definition API创建一个definition来指定Windows Azure Traffic Manager的其他配置。
该definition配置并不像看上去那样复杂。定义监视器包含指定到HTTP/HTTPS资源的相对路径,它通过返回的状态码来告知Traffic Manager应用程序是否正常。你可以更改端口号、协议和相对路径,但其余的设置必须设为默认值。
每个端点由指向需要托管在Windows Azure Traffic Manager 的所有Windows Azure应用程序的其中一个应用的URL和标明该Manager当前是启用或是禁用的一个flag。
该URL指定了何时创建Traffic Manager profile (<dnsprefix>.trafficmanager.net),当DNS名称被解析时它将被映射到指定的终结点之一。哪个端点被解析决定于负载平衡方法所指定的(性能、故障转移或RoundRobin)。
例如:
WoodGroveUS.cloudapp.net应该属于美国中北数据中心。
WoodGroveEU.cloudapp.net应该属于北欧数据中心。
WoodGrove.trafficmanager.net应当是父域名,当被解析时它将被映射到数据中心的一个端点。
帖子 | https://management.core.windows.net/<subscription-id>/services/WATM/profiles/<profile-name> |
图5:Update Profile Request参数
可以有多个definition与profile相关联,但是一次最多只有一个处于活动状态。为了激活一个Traffic Manager profile,你必须启用与该profile相关联的一个definition。你可以通过调用当你调用Create Definition API 时所返回的Update Profile API。
管理现有的Profile和Definition
除了创建一个profile和与其相关联的definition之外,Traffic Manager REST API还支持List Profiles、Get Profile、 List Definitions、 Get Definition 和 Delete Profile。这些API提供了构建应用程序来管理Windows Azure Traffic Manager配置的完整功能。
如果你想自动管理你的Windows Azure Traffic Manager profiles但不想为REST API写任何代码,我们也有你想要的答案。我们更新了Windows Azure PowerShell Cmdlets (现在是 2.2版) ,该版本完全支持Windows Azure Traffic Manager。
Windows Azure Traffic Manager Cmdlets
- New-TrafficManagerProfile
- Get-TrafficManagerProfile
- Remove-TrafficManagerProfile
- Set-TrafficManagerProfile
- Get-TrafficManagerDefinition
- New-TrafficManagerDefinition
- Add-TrafficManagerEndpoint
- New-TrafficManagerEndpoint
- Set-TrafficManagerEndpoint
- Remove-TrafficManagerEndpoint
- New-TrafficManagerMonitor
下面是关于怎样使用PowerShell创建一个新的profile和definition的一个示例:
Windows Azure Traffic Manager是启用全球和高度可用应用程序的关键技术。新的REST APIs将允许应用程序开发人员构建应用程序,使得Traffic Manager的管理成为他们的应用程序的一部分。我们也在新发布Windows Azure PowerShell Cmdlets 2.2版本中启用了这个新功能,为Windows Azure客户自动化部署开启了大门。