因此,在当前情况下,我们正在使用Cloud Services为两个网站提供服务,以及一些工作人员角色(此问题范围之外的工作人员角色)。我们的用户来自同一国家/地区,因此我们在同一地区有很多环境(5个云服务环境)。
我们正在朝着应用程序服务的方向发展,我们还希望将停机时间降至最低。我们设计的策略是在每个环境上配置两个应用程序服务(每个网站一个),并使用两个流量管理器(每个网站一个)与两个端点(优先级1:现有的云服务,优先级2:新的应用程序服务)
现有的DNS / CNAME配置类似于以下内容
dev-env.example.com指向网站1 dev-envapi.example.com指向网站2
和现在的新配置中,我添加了两个流量管理器,其中一个如下 dev-env.trafficmanager.net端点1指向云服务 dev-env.trafficmanager.net endpoint2指向应用程序服务(网站)
但是如何使用trafficmanager配置第二个网站?
请在下面找到我们现有的云服务webrole和网站配置
<WebRole name="App.WebRole" vmsize="Medium" enableNativeCodeExecution="true">
<Sites>
<Site name="Web">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="dev-env.example.com" />
<Binding name="Endpoint2" endpointName="Endpoint2" hostHeader="dev-env.example.com" />
</Bindings>
</Site>
<Site name="WebApi" physicalDirectory="WebRole.Api\azure.publish">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="dev-envapi.example.com" />
<Binding name="Endpoint2" endpointName="Endpoint2" hostHeader="dev-envapi.example.com" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
<InputEndpoint name="Endpoint2" protocol="https" port="443" certificate="https" />
</Endpoints>
<ConfigurationSettings>
<Setting name="AzureSubscriptionId" />
<Setting name="AzureWebSchedulerCloudServiceName" />
<Setting name="AzureWebSchedulerJobCollectionMaxQuota" />
<Setting name="AzureWebSchedulerCertNameConvention" />
<Setting name="ExternalUrl" />
</ConfigurationSettings>
<LocalResources>
</LocalResources>
<Certificates>
<Certificate name="Windows Azure Tools" storeLocation="LocalMachine" storeName="My" />
<Certificate name="https" storeLocation="LocalMachine" storeName="My" />
</Certificates>
<Imports>
</Imports>
<Startup>
<Task commandLine="Role_Start\Bootstrap.bat" executionContext="elevated" taskType="simple">
<Environment>
<Variable name="EMULATED">
<RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
</Variable>
</Environment>
</Task>
</Startup>
答案 0 :(得分:1)
因此,它开箱即用,我们只需要在webrole中为每个网站添加一个流量管理器配置文件。 使用Webrole网站中定义的URL端点作为目标流量管理器配置文件的目标,我们很高兴。
具有两个Azure终结点(一个云服务和一个应用程序服务)的流量管理器配置文件,假设 dev-env ,dev-env.example.com以dev-env.trafficmanager.net为目标。 流量管理器配置文件的端点1的优先级1以 dev-env.cloudapp.net(云服务Azure端点)为目标,端点2的优先级2以dev-env.azurewebsites.net为目标。 / p>
另一个具有两个Azure终结点(一个云服务和一个应用程序服务)的流量管理器配置文件,以 dev-envapi 为目标,将dev-envapi.example.com定位为dev-envapi.trafficmanager.net。 流量管理器配置文件的端点1的优先级1以 dev-env.cloudapp.net(云服务Azure端点)为目标,端点2的优先级2以dev-envapi.azurewebsites.net为目标。 / p>
请注意,两个流量管理器配置文件的云服务端点相同。
因此,当我们想要实际切换时,我们只是关闭了云服务。从而减少停机时间。另外,我们没有更改数据库,存储帐户或任何其他资源,这是我们能够将停机时间保持在最低限度的方法。