Múltipla estratégia de site em função (s) web e serviço (s) em nuvem
Temos três aplicativos da Web públicos que estamos migrando para o Azure. Todos os sites usam a porta 80.
OPÇÕES
Tanto quanto eu entendo, existem três opções diferentes ao usar as funções da Web:
1. Todos os 3 sites hospedados em uma função da Web em um único serviço de nuvem:
O acesso HTTP pode ser configurado pelo hostHeader emServiceDefinition.csdef
Este é o mais baratoRequer que todos os projetos precisem ser publicados ao mesmo tempoOs sites não podem ser escalonados separadamente, apenas como um todo1 projeto do Cloud Service no Visual Studio2. Cada site hospedado em uma função da Web SEPARADA em um único serviço de nuvem:
O acesso HTTP pode ser configurado pelo hostHeader emServiceDefinition.csdef
Cada site terá sua própria instânciaRequer que todos os projetos precisem ser publicados ao mesmo tempoOs sites podem ser escalados separadamente1 projeto do Cloud Service no Visual Studio3. Cada site hospedado em uma função da Web em serviços em nuvem SEPARADOS:
Cada site terá seu próprio DNS e IP do cloudapp.netCada site terá sua própria instânciaOs sites podem ser publicados separadamenteOs sites podem ser escalados separadamenteVários projetos de serviço de nuvem no Visual StudioHá algo mais significativo que eu esteja sentindo falta?
POSSÍVEL SOLUÇÃO
Uma combinação das opções 1 e 2.
Hospedando tudo em um serviço de nuvem: Publicá-los todos juntos é bom, pois todos eles fazem referência a um projeto de biblioteca comum que precisa ser atualizado de forma consistente em todos os projetos.
Hospedando dois sites em uma função da web: Eles podem ser escalados juntos bem.
Hospedando o terceiro site em sua própria função web Will precisa de seu próprio dimensionamento por causa das demandas de pico em massa.
ServiceDefinition.csdef
:
<ServiceDefinition name="WebTestCloudService.Test" xmlns="..." schemaVersion="2012-10.1.8">
<WebRole name="AzureWebTest1" vmsize="Small">
<Sites>
<Site name="AzureWebTest1">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="test1.mydomain.com" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>
</WebRole>
<WebRole name="AzureWebTest2" vmsize="Small">
<Sites>
<Site name="AzureWebTest2">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="test2.mydomain.com" />
</Bindings>
</Site>
<Site name="AzureWebTest3" physicalDirectory="..AzureWebTest4">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="test3.mydomain.com" />
</Bindings>
</Site>
</Sites>
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>
</WebRole>
</ServiceDefinition>
Por favor confirme que estou no caminho certo? Qualquer entrada seria apreciada.