您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 利用AzureTrafficManager保证业务的可用性
利用AzureTrafficManager保证业务的可用性本文出自51CTO博客博主挥墨的书童,如有任何问题,欢迎进入博主页面互动讨论。博文地址:最近携程事件导致携程网站和APP停止服务长达将近9个小时。支付宝因为光缆被挖断导致部分用户服务不可用,艺龙遭到攻击导致网站崩溃,等等。企业中的业务安全和可用性又浮现了出来,回过头来看,有哪些现有的技术能够避免此类状况,这篇文档我们先聊一聊如何利用MicrosoftAzureTrafficManager让你的应用保持高可用状态先来看下MicrosoftAzureTrafficManager到底是什么东东使用MicrosoftAzureTrafficManager可以控制向指定的终结点(可能包括Azure云服务、网站和其他终结点)分配用户流量。TrafficManager的工作原理是将智能策略引擎应用到对Internet资源域名执行的域名系统(DNS)查询。Azure云服务或网站可以在世界各地不同的数据中心内运行。说的简单易懂点TrafficManager就是一个智能的DNS解析。能帮助我们做什么?提高关键应用程序的可用性,当你的应用程序的某个节点出问题的时候,TrafficManager可以通过智能的监视你的终结点(云服务、网站和其他角色)的服务状态,然后把流量迁移到正常的终结点。提高应用程序的响应性,当你的应用程序客户遍布全国甚至是世界各地时,如何能够把流量引到离他们最近的数据中心,已达到最快的响应速度。这就是TrafficManager需要做的事情。大型复杂的流量分配,如果你有像淘宝、京东等这类网站时,你需要复杂的流量分配规则来满足用户的快速访问需求,使用嵌套的TrafficManager配置文件(在其中的一个TrafficManager配置文件可以将另一个TrafficManager配置文件作为终结点),可以创建配置来优化更大、更复杂部署的性能和分布。工作原理是啥?我来根据这张图来解释下:1.首先客户端需要知道IP地址才能去访问应用,然后就发送域名解析请求到公网域名(就是在公网域名服务商注册的域名)。2.请求发到公网DNS上进行解析,然后公网DNS根据你的配置的CNAME记录把请求发给TrafficManager。3.TrafficManager会根据自己的配置文件(性能、循环法、故障转移),确定最佳终结点,选择好终结点后,把终结点的IP信息返回给客户端。4.客户端根据解析到的IP地址信息,直接发送请求道终结点。怎么配置TrafficManager?TrafficManager包含三种负载平衡方法:故障转移:如果终结点位于相同或不同的Azure数据中心(在管理门户中称为区域)内,并且你希望对所有流量使用一个主终结点,但是希望在主终结点或备用终结点不可用时提供备份,请选择“故障转移”。循环:如果要将负载分配到同一数据中心内的一组终结点或者分配到不同的数据中心,请选择“循环”。性能:如果终结点位于不同的地理位置,并且你希望请求客户端使用“最靠近的”终结点(因为延迟最低),请选择“性能”。三个不同的负载平衡方法,三个不同的选择,下面我主要就故障转移场景来演练,如何通过Powershell创建TrafficManager,并进行基本的配置。创建故障转移的负载平衡器New-AzureTrafficManagerProfile-Namecloudvip-DomainNamecloudvip.trafficmanager.net-LoadBalancingMethodFailover-Ttl30-MonitorProtocolHttp-MonitorPort80-MonitorRelativePath/表示我要创建一个cloudvip的Profile,域名为cloudvip.trafficmanager.net,负载平衡方法是故障转移,监视内容:协议http端口80默认路径。我们进入门户可以看到已经创建好该TrafficManager。加入终结点这时我们的TrafficManager并没有包含任何终结点,下面我开始通过Powershell把终结点加进来。$TrafficManagerProfile=Get-AzureTrafficManagerProfile-NamecloudvipAdd-AzureTrafficManagerEndpoint-TrafficManagerProfile$TrafficManagerProfile-DomainNameblog01.cloudapp.net-StatusEnabled-TypeCloudService|Set-AzureTrafficManagerProfile第一个命令是使用Get-AzureTrafficManagerProfile得到cloudvip的参数然后存放在TrafficManagerProfile变量中。第二个命令是添加域名为blog01.cloudapp.net的云服务,然后通过Set-AzureTrafficManagerProfile变更到azure中。带有权重参数加入终结点使用同样方法添加另外一个终结点,这次加上权重的参数。Add-AzureTrafficManagerEndpoint-TrafficManagerProfile$TrafficManagerProfile-DomainNameblog02.cloudapp.net-StatusEnabled-TypeCloudService-Weight2|Set-AzureTrafficManagerProfile查看终结点详细信息$TrafficManagerProfile.Endpoints|Format-List使用PowerShell修改权重可以使用Set-AzureTrafficManagerEndpoint重新设置终结点,我来演示把blog01节点的权重改成3.Set-AzureTrafficManagerEndpoint-TrafficManagerProfile$TrafficManagerProfile-DomainNameblog01.cloudapp.net-StatusEnabled-TypeCloudService-Weight3|Set-AzureTrafficManagerProfile查看结果最后我们在客户端进行测试这时我们可以看到TrafficManager把流量引入到blog01上了,这时我如果想把节点2(blog02)作为主节点,要怎么设置呢?你可以运行一下命令$Profile=Get-AzureTrafficManagerProfile-NameMyProfile$Profile.Endpoints[0],$Profile.Endpoints[1]=$Profile.Endpoints[1],$Profile.Endpoints[0]Set-AzureTrafficManagerProfile-TrafficManagerProfile$PROFILE从结果中我们可以看到,节点2变成了主节点,我们再来ping一下试试。现在是节点2在提供服务。总结:从上面的示例中,我们可以看到,一个网站设计成一个高可用架构,如果一个站点遭到毁灭性的攻击和破坏,我们可以快速的切换到备用站点,以提供服务。从而避免类似携程的事件发生。【编辑推荐】Ruby开发者福利:可通过Fog管理微软Azure云服务服务器管理员必须知道的微软Azure事项抢先评测:微软AzureAppServices让云开发更轻松PaaS:微软Azure云的踏脚石和绊脚石高可用可伸缩架构实用经验谈
本文标题:利用AzureTrafficManager保证业务的可用性
链接地址:https://www.777doc.com/doc-2608705 .html