Este tópico ainda não foi avaliado como - Avalie este tópico

Visão geral da atualização de um serviço do Windows Azure

Atualizado: fevereiro de 2012

O Windows Azure organiza suas instâncias de função em agrupamentos lógicos chamados de domínios de atualização. O número padrão de domínios de atualização é 5. É possível especificar um número diferente de domínios e atualização incluindo o atributo upgradeDomainCount no arquivo de definição do serviço (.csdef). Para obter mais informações sobre o atributo upgradeDomainCount, consulte Esquema WebRole ou Esquema WorkerRole.

Quando você executa uma atualização in-loco de uma ou mais funções em seu serviço, o Windows Azure atualiza conjuntos de instâncias de função de acordo com o domínio de atualização ao qual pertencem. O Windows Azure atualiza todas as instâncias de um determinado domínio de atualização, interrompendo-as, atualizando-as, colocando-as online novamente e, em seguida, move para o próximo domínio. Ao parar somente as instâncias que são executadas dentro do domínio de atualização atual, o Windows Azure garante que uma atualização ocorra com o menor impacto possível no serviço em execução. Para obter mais informações, consulte How the update proceeds a seguir.

noteObservação:
Embora os termos atualização e upgrade tenham significados levemente diferentes no contexto do Windows Azure, os dois podem ser usados de maneira intercambiável para os processos e descrições dos recursos deste documento.

Seu serviço deve definir pelo menos duas instâncias de uma função para que a função seja atualizada in-loco sem tempo de inatividade. Se o serviço consistir em apenas uma instância de uma função, o serviço não estará disponível até que a atualização in-loco seja concluída.

Este tópico abrange as seguintes informações sobre atualizações do Windows Azure:

A tabela a seguir mostra as alterações permitidas para um serviço durante uma atualização:

 

Alterações permitidas para hospedagem, serviços e funções Atualização in-loco Preparada (permuta de VIP) Excluir e reimplantar

Versão do sistema operacional

Sim

Sim

Sim

Nível de confiança do .NET

Sim

Sim

Sim

Tamanho da máquina virtual

Sim

WarningAviso:
A alteração do tamanho da máquina virtual destruirá os dados locais.

noteObservação:
Exige o SDK do Windows Azure 1.5 ou posterior.

Sim

Sim

Configurações do armazenamento local

Sim

Apenas aumento.

noteObservação:
Exige o SDK do Windows Azure 1.5 ou posterior.

Sim

Sim

Adicionar ou remover funções em um serviço

Sim

Sim

Sim

Número de instâncias de uma função específica

Sim

Sim

Sim

Número ou tipo de pontos de extremidade para um serviço

Sim

noteObservação:
Exige o SDK do Windows Azure 1.5 ou posterior.

ImportantImportante:
A disponibilidade pode ser temporariamente perdida enquanto os pontos de extremidade são atualizados.

Não

Sim

Nomes e valores de parâmetros da configuração

Sim

Sim

Sim

Valores (mas não nomes) de parâmetros da configuração

Sim

Sim

Sim

Adicionar novos certificados

Sim

Sim

Sim

Alterar certificados existentes

Sim

Sim

Sim

Implantar novo código

Sim

Sim

Sim

Os seguintes itens não têm suporte durante uma atualização:

  • Alteração do nome de uma função. Remoção e alteração subsequente de uma função com o novo nome.

  • Alteração da contagem de domínios de atualização.

  • Redução do tamanho dos recursos locais.

Se você estiver fazendo outras atualizações à definição de seu serviço, como a redução do tamanho de um recurso local, deverá executar uma atualização de troca de VIP. Para obter mais informações, consulte Como implantar uma atualização de serviço em produção por permuta de VIPS no Windows Azure.

O Windows Azure fornece flexibilidade para gerenciar serviços durante uma atualização permitindo iniciar operações adicionais em um serviço, assim que a solicitação inicial de atualização foi aceita pelo Controlador de Malha do Windows Azure. Uma reversão pode ser executada apenas quando uma atualização (alteração da configuração) ou upgrade está em andamento na implantação. Uma atualização ou upgrade é considerada como estando em andamento quando há pelo menos uma instância do serviço que ainda não foi atualizada para a nova versão. Para testar se a reversão é permitida, verifique se o valor do sinalizador de RollbackAllowed, retornado pelas operações Get Deployment e Get Hosted Service Properties, está definido como true.

noteObservação:
Faz sentido chamar a Reversão apenas em uma atualização in-loco uma vez que as atualizações de permuta de VIP acarretam a substituição de uma instância em execução inteira de seu serviço por outra. Para obter mais informações sobre permuta de VIPs, consulte Como implantar uma atualização de serviço em produção por permuta de VIPS no Windows Azure.

A reversão de uma atualização em andamento tem os seguinte efeitos na implantação:

  • Quaisquer instâncias de função que ainda não tiverem sido atualizadas para a nova versão não serão atualizadas, uma vez que essas instancias já estão executando a versão de destino do serviço.

  • Quaisquer instâncias de função que já tiverem sido atualizadas para a nova versão do pacote de serviço (*.cspkg) e/ou arquivos de configuração de serviço (*.cscfg) serão revertidas de volta para a versão de pré-atualização desses arquivos.

Essa funcionalidade é fornecida pelos seguintes recursos:

  • A operação Rollback Update Or Upgrade, que pode ser chamada em uma atualização da configuração (disparada pela chamada de Change Deployment Configuration) ou um upgrade (disparado pela chamada de Upgrade Deployment) desde que haja pelo menos uma instância no serviço que ainda não tenha sido atualizada para a nova versão.

  • O elemento Locked e o elemento RollbackAllowed, que são retornados como parte do corpo da resposta das operações Get Deployment e Get Hosted Service Properties:

    1. O elemento Locked permite detectar quando uma operação mutante pode ser invocada em uma determinada implantação.

    2. O elemento RollbackAllowed permite detectar quando a operação Rollback Update Or Upgrade pode ser chamada em uma determinada implantação.

    Para executar uma reversão, não é necessário marcar os dois elementos Locked e RollbackAllowed. Basta confirmar se RollbackAllowed está definido como true. Esses elementos serão retornados apenas se esses métodos forem invocados com o cabeçalho da solicitação definido como a seguinte versão ou como uma versão superior: “x-ms-version: 2011-10-01”. Para obter mais informações sobre cabeçalhos de controle de versão, consulte Service Management Versioning.

Há algumas situações em que não há suporte para a reversão de uma atualização, são elas:

  • Redução em recursos locais - se a atualização aumentar os recursos locais de uma função, a plataforma Windows Azure não permitirá a reversão. Para obter mais informações sobre a configuração de recursos locais para uma função, consulte Como configurar recursos de armazenamento local.

  • Limitações de cota - se a atualização foi uma operação de redução, você talvez não tenha mais cota de computação suficiente para concluir a operação de reversão. Cada assinatura do Windows Azure tem uma cota associada que identifica o número máximo de núcleos que podem ser consumidos por todos os serviços hospedados que pertencem àquela assinatura. Se a execução de uma reversão de uma determinada atualização colocar sua assinatura acima da cota, a reversão não será permitida.

  • Condição de corrida - se a atualização inicial tiver sido concluída, a reversão não será possível.

Um exemplo de quando a reversão de uma atualização pode ser útil é quando você está usando a operação Upgrade Deployment em modo manual para controlar a corrida na qual uma atualização in-loco maior de seu serviço hospedado do Windows Azure está revertida.

Durante a reversão da atualização você chama Upgrade Deployment em modo manual e começa a percorrer os domínios de atualização. Se em algum ponto, conforme monitora a atualização, você observar que algumas instâncias de função nos primeiros domínios de atualização que examina se tornaram sem resposta, você poderá chamar a operação Rollback Update Or Upgrade na implantação, o que não alterará as instâncias que ainda não foram atualizadas e reverterá as instâncias que foram atualizadas para o pacote e a configuração do serviço anterior.

Em alguns casos, pode ser desejável iniciar várias operações de mutação simultâneas em uma implantação em andamento. Por exemplo, você pode executar uma atualização de serviço e, enquanto essa atualização está sendo revertida no serviço, desejar fazer uma alteração, por exemplo, reverter a atualização, aplicar outra atualização ou até excluir a implantação. Isso pode ser necessário quando uma atualização de serviço contiver um código com bug que faça com que a instância de função apresente falha repetidamente. Nesse caso, o Controlador de Malha do Windows Azure não poderá progredir com a aplicação dessa atualização porque um número insuficiente de instâncias no domínio atualizado estão íntegras. Esse estado é conhecido como uma implantação paralisada. Você pode resolver a paralisação com a reversão da atualização ou com a aplicação de uma nova atualização sobre a atualização com falha.

Assim que a solicitação inicial para atualizar o serviço for recebida pelo Controlador de Malha do Windows Azure, será possível invocar operações de mutação subsequentes. Isto é, não será necessário esperar que a operação inicial seja concluída para que seja possível invocar outra operação de mutação.

O início de uma segunda operação de atualização enquanto a primeira atualização está em andamento terá um desempenho semelhante à operação de reversão. Se a segunda atualização estiver em modo automático, o primeiro domínio de atualização serão atualizado imediatamente, possivelmente fazendo com que vários domínios de atualização fiquem offline no mesmo instante.

As operações de mutação são: Change Deployment Configuration, Upgrade Deployment, Update Deployment Status, Delete Deployment e Rollback Update Or Upgrade.

Duas operações, Get Deployment e Get Hosted Service Properties, retornam o sinalizador Locked, que pode ser examinado para determinar se uma operação de mutação pode ser invocada em uma determinada implantação.

Para chamar a versão desses métodos que retornam o sinalizador Locked, você deve definir o cabeçalho da solicitação como a seguinte versão ou superior: “x-ms-version: 2011-10-01”. Para obter mais informações sobre cabeçalhos de controle de versão, consulte Service Management Versioning.

O Windows Azure distribui instâncias de uma função uniformemente em um número definido de domínios de atualização, que pode ser configurado como parte do arquivo de definição (.csdef). O número máximo de domínios de atualização é 20 e o padrão é 5. Para obter mais informações sobre como modificar o arquivo de definição de serviço, consulte Esquema de definição de serviço do Windows Azure.

Por exemplo, se sua função tiver dez instâncias, por padrão cada domínio de atualização conterá duas instâncias. Se sua função tiver quatorze instâncias, quatro dos domínios de atualização conterão três instâncias e um quinto domínio conterá duas.

Domínios de atualização são identificados com um índice de base zero: o primeiro domínio de atualização tem uma ID de 0 e o segundo domínio de atualização tem uma ID de 1, e assim por diante.

O diagrama a seguir ilustra como duas funções que incluem um serviço são distribuídas quando o serviço define dois domínios de atualização. O serviço está executando oito instâncias da função web e nove instâncias da função de trabalho.

Distribuição de domínios de atualização

noteObservação:
Observe que o Windows Azure controla como as instâncias são alocadas nos domínios de atualização. Não é possível especificar quais instâncias são alocadas para qual domínio.

Você pode escolher se deseja atualizar todas ou uma única função dentro de seu serviço. Em qualquer caso, todas as instâncias de cada função que estão sendo atualizadas e que pertençam ao primeiro domínio de atualização são paradas, atualizadas e colocadas online. Quando eles forem colocados online, as instâncias no segundo domínio de atualização serão paradas, atualizadas e colocadas online.

O diagrama seguinte ilustra como a atualização será continuada se você estiver atualizando todas as funções no serviço:

Serviço de atualização

Este próximo diagrama ilustra como a atualização procederá se você estiver atualizando somente uma única função:

Função de atualização

Tópicos relacionados

 
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

© 2013 Microsoft. Todos os direitos reservados.
facebook page visit twitter rss feed newsletter