Parâmetros da atualização da aplicação

Este artigo descreve os vários parâmetros que se aplicam durante a atualização de uma aplicação do Azure Service Fabric. Os parâmetros de atualização da aplicação controlam os tempos limite e as verificações de estado de funcionamento que são aplicadas durante a atualização e especificam as políticas que têm de ser aplicadas quando uma atualização falha. Os parâmetros da aplicação aplicam-se a atualizações com:

  • PowerShell
  • Visual Studio
  • SFCTL
  • REST

As atualizações de aplicações são iniciadas através de um dos três modos de atualização selecionáveis pelo utilizador. Cada modo tem o seu próprio conjunto de parâmetros de aplicação:

  • Monitorizado
  • Automático Não Monitorizado
  • Manual Não Monitorizado

Os parâmetros aplicáveis necessários e opcionais são descritos em cada secção da seguinte forma.

Parâmetros do Visual Studio e do PowerShell

As atualizações de aplicações do Service Fabric com o PowerShell utilizam o comando Start-ServiceFabricApplicationUpgrade . O modo de atualização é selecionado ao transmitir o parâmetro Monitored, UnmonitoredAuto ou UnmonitoredManual para Start-ServiceFabricApplicationUpgrade.

Os parâmetros de atualização da aplicação do Visual Studio Service Fabric são definidos através da caixa de diálogo Definições de Atualização do Visual Studio. O modo de atualização do Visual Studio é selecionado através da caixa pendente Modo de Atualização para Monitored, UnmonitoredAuto ou UnmonitoredManual. Para obter mais informações, veja Configurar a atualização de uma aplicação do Service Fabric no Visual Studio.

Parâmetros necessários

Parâmetro Aplica-se A Descrição
ApplicationName PowerShell Nome da aplicação que está a ser atualizada. Exemplos: recursos de infraestrutura:/VisualObjects, recursos de infraestrutura:/ClusterMonitor.
ApplicationTypeVersion PowerShell A versão do tipo de aplicação que a atualização visa.
FailureAction PowerShell, Visual Studio Os valores permitidos são Reversão, Manual e Inválido. A ação de compensação a executar quando uma Atualização monitorizada encontra violações da política de monitorização ou da política de estado de funcionamento.
A reversão especifica que a atualização será revertida automaticamente para a versão de pré-atualização.
Manual indica que a atualização mudará para o modo de atualização UnmonitoredManual .
Inválido indica que a ação de falha é inválida.
Monitorizado PowerShell Indica que o modo de atualização é monitorizado. Após o cmdlet concluir uma atualização para um domínio de atualização, se o estado de funcionamento do domínio de atualização e o cluster cumprirem as políticas de estado de funcionamento que definir, o Service Fabric atualiza o domínio de atualização seguinte. Se o domínio ou cluster de atualização não cumprir as políticas de estado de funcionamento, a atualização falhará e o Service Fabric reverterá a atualização para o domínio de atualização ou reverterá para o modo manual de acordo com a política especificada. Este é o modo recomendado para atualizações de aplicações num ambiente de produção.
UpgradeMode Visual Studio Os valores permitidos são Monitorizados (predefinição), UnmonitoredAuto ou UnmonitoredManual. Veja Parâmetros do PowerShell para cada modo neste artigo para obter detalhes.
UnmonitoredAuto PowerShell Indica que o modo de atualização não é monitorizado automaticamente. Depois de o Service Fabric atualizar um domínio de atualização, o Service Fabric atualiza o domínio de atualização seguinte, independentemente do estado de funcionamento da aplicação. Este modo não é recomendado para produção e só é útil durante o desenvolvimento de uma aplicação.
UnmonitoredManual PowerShell Indica que o modo de atualização não é monitorizado manualmente. Depois de o Service Fabric atualizar um domínio de atualização, aguarda que atualize o domínio de atualização seguinte com o cmdlet Resume-ServiceFabricApplicationUpgrade .

Parâmetros opcionais

Os parâmetros de avaliação do estado de funcionamento são opcionais. Se os critérios de avaliação do estado de funcionamento não forem especificados quando uma atualização é iniciada, o Service Fabric utiliza as políticas de estado de funcionamento da aplicação especificadas no ApplicationManifest.xml da instância da aplicação.

Parâmetro Aplica-se A Descrição
ApplicationParameter PowerShell, Visual Studio Especifica as substituições dos parâmetros da aplicação.
Os parâmetros da aplicação do PowerShell são especificados como pares hashtable name/value. Por exemplo, @{ "VotingData_MinReplicaSetSize" = "3"; "VotingData_PartitionCount" = "1" }.
Os parâmetros da aplicação Visual Studio podem ser especificados na caixa de diálogo Publicar Aplicação do Service Fabric no campo Ficheiro de Parâmetros da Aplicação .
Confirmar PowerShell Os valores permitidos são Verdadeiro e Falso. Pede confirmação antes de executar o cmdlet.
ConsiderarWarningAsError PowerShell, Visual Studio Os valores permitidos são Verdadeiro e Falso. O valor predefinido é Falso. Trate os eventos de estado de funcionamento do aviso para a aplicação como erros ao avaliar o estado de funcionamento da aplicação durante a atualização. Por predefinição, o Service Fabric não avalia os eventos de estado de funcionamento de aviso como falhas (erros), pelo que a atualização pode continuar mesmo que existam eventos de aviso.
DefaultServiceTypeHealthPolicy PowerShell, Visual Studio Especifica a política de estado de funcionamento do tipo de serviço predefinido a utilizar para a atualização monitorizada no formato MaxPercentUnhealthyPartitionsPerService, MaxPercentUnhealthyReplicasPerPartition, MaxPercentUnhealthyServices. Por exemplo, 5,10,15 indica os seguintes valores: MaxPercentUnhealthyPartitionsPerService = 5, MaxPercentUnhealthyReplicasPerPartition = 10, MaxPercentUnhealthyServices = 15.
Force PowerShell, Visual Studio Os valores permitidos são Verdadeiro e Falso. Indica que o processo de atualização ignora a mensagem de aviso e força a atualização mesmo quando o número da versão não foi alterado. Isto é útil para testes locais, mas não é recomendado para utilização num ambiente de produção, uma vez que requer a remoção da implementação existente que causa tempo de inatividade e potencial perda de dados.
ForceRestart PowerShell, Visual Studio Se atualizar uma configuração ou pacote de dados sem atualizar o código de serviço, o serviço só será reiniciado se a propriedade ForceRestart estiver definida como Verdadeiro. Quando a atualização estiver concluída, o Service Fabric notifica o serviço de que está disponível um novo pacote de configuração ou pacote de dados. O serviço é responsável pela aplicação das alterações. Se necessário, o serviço pode reiniciar-se sozinho.
HealthCheckRetryTimeoutSec PowerShell, Visual Studio A duração (em segundos) que o Service Fabric continua a realizar a avaliação do estado de funcionamento antes de declarar a atualização como falhada. A predefinição é 600 segundos. Esta duração começa depois de HealthCheckWaitDurationSec ser atingido. Neste HealthCheckRetryTimeout, o Service Fabric pode efetuar várias verificações de estado de funcionamento do estado de funcionamento da aplicação. O valor predefinido é de 10 minutos e deve ser personalizado adequadamente para a sua aplicação.
HealthCheckStableDurationSec PowerShell, Visual Studio A duração (em segundos) para verificar se a aplicação está estável antes de passar para o domínio de atualização seguinte ou concluir a atualização. Esta duração de espera é utilizada para evitar alterações de estado de funcionamento não detetadas logo após a verificação de estado de funcionamento ser efetuada. O valor predefinido é de 120 segundos e deve ser personalizado adequadamente para a sua aplicação.
HealthCheckWaitDurationSec PowerShell, Visual Studio O tempo de espera (em segundos) após a conclusão da atualização no domínio de atualização antes de o Service Fabric avaliar o estado de funcionamento da aplicação. Esta duração também pode ser considerada como o tempo em que uma aplicação deve estar em execução antes de poder ser considerada em bom estado de funcionamento. Se a verificação de estado de funcionamento for aprovada, o processo de atualização avança para o domínio de atualização seguinte. Se a verificação do estado de funcionamento falhar, o Service Fabric aguarda por UpgradeHealthCheckInterval antes de repetir a verificação de estado de funcionamento novamente até que o HealthCheckRetryTimeoutSec seja alcançado. O valor predefinido e recomendado é 0 segundos.
MaxPercentUnhealthyDeployedApplications PowerShell, Visual Studio O valor predefinido e recomendado é 0. Especifique o número máximo de aplicações implementadas (consulte a secção Estado de Funcionamento) que podem estar em mau estado de funcionamento antes de a aplicação ser considerada em mau estado de funcionamento e falhar a atualização. Este parâmetro define o estado de funcionamento da aplicação no nó e ajuda a detetar problemas durante a atualização. Normalmente, as réplicas da aplicação têm balanceamento de carga para o outro nó, o que permite que a aplicação pareça em bom estado de funcionamento, permitindo assim que a atualização prossiga. Ao especificar um estado de funcionamento maxPercentUnhealthyDeployedApplications rigoroso, o Service Fabric pode detetar rapidamente um problema com o pacote de aplicação e ajudar a produzir uma atualização rápida pós-falha.
MaxPercentUnhealthyServices PowerShell, Visual Studio Um parâmetro para DefaultServiceTypeHealthPolicy e ServiceTypeHealthPolicyMap. O valor predefinido e recomendado é 0. Especifique o número máximo de serviços na instância da aplicação que podem estar em mau estado de funcionamento antes de a aplicação ser considerada em mau estado de funcionamento e falhar a atualização.
MaxPercentUnhealthyPartitionsPerService PowerShell, Visual Studio Um parâmetro para DefaultServiceTypeHealthPolicy e ServiceTypeHealthPolicyMap. O valor predefinido e recomendado é 0. Especifique o número máximo de partições num serviço que pode estar em mau estado de funcionamento antes de o serviço ser considerado em mau estado de funcionamento.
MaxPercentUnhealthyReplicasPerPartition PowerShell, Visual Studio Um parâmetro para DefaultServiceTypeHealthPolicy e ServiceTypeHealthPolicyMap. O valor predefinido e recomendado é 0. Especifique o número máximo de réplicas na partição que podem estar em mau estado de funcionamento antes de a partição ser considerada em mau estado de funcionamento.
ServiceTypeHealthPolicyMap PowerShell, Visual Studio Representa a política de estado de funcionamento utilizada para avaliar o estado de funcionamento dos serviços pertencentes a um tipo de serviço. Utiliza uma entrada de tabela hash no seguinte formato: @ {"ServiceTypeName" : "MaxPercentUnhealthyPartitionsPerService,MaxPercentUnhealthyReplicasPerPartition,MaxPercentUnhealthyServices"} Por exemplo: @{ "ServiceTypeName01" = "5,10,5"; "ServiceTypeName02" = "5,5,5" }
Tempo LimiteSec PowerShell , Visual Studio Especifica o período de tempo limite em segundos para a operação.
UpgradeDomainTimeoutSec PowerShell, Visual Studio Tempo máximo (em segundos) para atualizar um único domínio de atualização. Se este tempo limite for atingido, a atualização para e continua com base na definição para FailureAction. O valor predefinido nunca é (Infinito) e deve ser personalizado adequadamente para a sua aplicação.
UpgradeReplicaSetCheckTimeoutSec PowerShell, Visual Studio Medido em segundos.
Serviço sem estado –- Num único domínio de atualização, o Service Fabric tenta garantir que estão disponíveis instâncias adicionais do serviço. Se a contagem de instâncias de destino for superior a uma, o Service Fabric aguarda que mais do que uma instância esteja disponível, até um valor máximo de tempo limite. Este tempo limite é especificado através da propriedade UpgradeReplicaSetCheckTimeoutSec . Se o tempo limite expirar, o Service Fabric prosseguirá com a atualização, independentemente do número de instâncias de serviço. Se a contagem de instâncias de destino for uma, o Service Fabric não aguarda e continua imediatamente com a atualização.

Serviço com estado – num único domínio de atualização, o Service Fabric tenta garantir que o conjunto de réplicas tem um quórum. O Service Fabric aguarda a disponibilidade de um quórum, até um valor máximo de tempo limite (especificado pela propriedade UpgradeReplicaSetCheckTimeoutSec ). Se o tempo limite expirar, o Service Fabric prosseguirá com a atualização, independentemente do quórum. Esta definição é definida como nunca (infinita) ao avançar e 1200 segundos ao reverter.
UpgradeTimeoutSec PowerShell, Visual Studio Um tempo limite (em segundos) que se aplica a toda a atualização. Se este tempo limite for atingido, a atualização para e FailureAction é acionada. O valor predefinido nunca é (Infinito) e deve ser personalizado adequadamente para a sua aplicação.
WhatIf PowerShell Os valores permitidos são Verdadeiro e Falso. Apresenta o que aconteceria mediante a execução do cmdlet. O cmdlet não é executado.

Os critérios MaxPercentUnhealthyServices, MaxPercentUnhealthyPartitionsPerService e MaxPercentUnhealthyReplicasPerPartition podem ser especificados por tipo de serviço para uma instância de aplicação. Definir estes parâmetros por serviço permite que uma aplicação contenha diferentes tipos de serviços com diferentes políticas de avaliação. Por exemplo, um tipo de serviço de gateway sem estado pode ter um MaxPercentUnhealthyPartitionsPerService diferente de um tipo de serviço de motor com estado para uma instância de aplicação específica.

Parâmetros SFCTL

As atualizações de aplicações do Service Fabric com a CLI do Service Fabric utilizam o comando de atualização da aplicação sfctl juntamente com os seguintes parâmetros obrigatórios e opcionais.

Parâmetros necessários

Parâmetro Descrição
application-id ID da aplicação que está a ser atualizada.
Normalmente, este é o nome completo da aplicação sem o esquema de URI "fabric:". A partir da versão 6.0, os nomes hierárquicos são delimitados com o caráter '~'. Por exemplo, se o nome da aplicação for "fabric:/myapp/app1", a identidade da aplicação será "myapp~app1" em 6.0+ e "myapp/app1" em versões anteriores.
versão da aplicação A versão do tipo de aplicação que a atualização visa.
parâmetros Uma lista codificada JSON de substituições de parâmetros de aplicação a aplicar ao atualizar a aplicação.

Parâmetros opcionais

Parâmetro Descrição
default-service-health-policy Especificação codificada JSON da política de estado de funcionamento utilizada por predefinição para avaliar o estado de funcionamento de um tipo de serviço. O mapa está vazio por predefinição.
falha-ação Os valores permitidos são Reversão, Manual e Inválido. A ação de compensação a executar quando uma Atualização monitorizada encontra violações da política de monitorização ou da política de estado de funcionamento.
A reversão especifica que a atualização será revertida automaticamente para a versão de pré-atualização.
Manual indica que a atualização mudará para o modo de atualização UnmonitoredManual .
Inválido indica que a ação de falha é inválida.
forçar o reinício Se atualizar uma configuração ou pacote de dados sem atualizar o código de serviço, o serviço só será reiniciado se a propriedade ForceRestart estiver definida como Verdadeiro. Quando a atualização estiver concluída, o Service Fabric notifica o serviço de que está disponível um novo pacote de configuração ou pacote de dados. O serviço é responsável pela aplicação das alterações. Se necessário, o serviço pode reiniciar-se sozinho.
health-check-retry-timeout A quantidade de tempo para repetir a avaliação do estado de funcionamento quando a aplicação ou o cluster está em mau estado de funcionamento antes da execução de FailureAction . É interpretado pela primeira vez como uma cadeia que representa uma duração ISO 8601. Se isso falhar, será interpretado como um número que representa o número total de milissegundos. Predefinição: PT0H10M0S.
health-check-stable-duration O período de tempo durante o qual a aplicação ou cluster tem de permanecer em bom estado de funcionamento antes de a atualização avançar para o domínio de atualização seguinte. É interpretado pela primeira vez como uma cadeia que representa uma duração ISO 8601. Se isso falhar, será interpretado como um número que representa o número total de milissegundos. Predefinição: PT0H2M0S.
health-check-wait-duration A quantidade de tempo a aguardar depois de concluir um domínio de atualização antes de aplicar políticas de estado de funcionamento. É interpretado pela primeira vez como uma cadeia que representa uma duração ISO 8601. Se isso falhar, será interpretado como um número que representa o número total de milissegundos. Predefinição: 0.
max-unhealthy-apps O valor predefinido e recomendado é 0. Especifique o número máximo de aplicações implementadas (consulte a secção Estado de Funcionamento) que podem estar em mau estado de funcionamento antes de a aplicação ser considerada em mau estado de funcionamento e falhar a atualização. Este parâmetro define o estado de funcionamento da aplicação no nó e ajuda a detetar problemas durante a atualização. Normalmente, as réplicas da aplicação têm balanceamento de carga para o outro nó, o que permite que a aplicação pareça em bom estado de funcionamento, permitindo assim que a atualização prossiga. Ao especificar um estado de funcionamento rigoroso das aplicações em mau estado de funcionamento máximo , o Service Fabric pode detetar rapidamente um problema com o pacote de aplicações e ajudar a produzir uma atualização rápida pós-falha. Representado como um número entre 0 e 100.
mode Os valores permitidos são Monitored, UpgradeMode, UnmonitoredAuto, UnmonitoredManual. A predefinição é UnmonitoredAuto. Veja a secção Parâmetros Obrigatórios do Visual Studio e do PowerShell para obter descrições destes valores.
replica-set-check-timeout Medido em segundos.
Serviço sem estado –- Num único domínio de atualização, o Service Fabric tenta garantir que estão disponíveis instâncias adicionais do serviço. Se a contagem de instâncias de destino for superior a uma, o Service Fabric aguarda que mais do que uma instância esteja disponível, até um valor máximo de tempo limite. Este tempo limite é especificado através da propriedade replica-set-check-timeout . Se o tempo limite expirar, o Service Fabric prosseguirá com a atualização, independentemente do número de instâncias de serviço. Se a contagem de instâncias de destino for uma, o Service Fabric não aguarda e continua imediatamente com a atualização.

Serviço com estado – num único domínio de atualização, o Service Fabric tenta garantir que o conjunto de réplicas tem um quórum. O Service Fabric aguarda a disponibilidade de um quórum, até um valor máximo de tempo limite (especificado pela propriedade replica-set-check-timeout ). Se o tempo limite expirar, o Service Fabric prosseguirá com a atualização, independentemente do quórum. Esta definição é definida como nunca (infinita) ao avançar e 1200 segundos ao reverter.
service-health-policy Mapa codificado JSON com política de estado de funcionamento do tipo de serviço por nome do tipo de serviço. O mapa está vazio por predefinição. Formato JSON do parâmetro. O JSON para a parte "Value" contém MaxPercentUnhealthyServices, MaxPercentUnhealthyPartitionsPerService e MaxPercentUnhealthyReplicasPerPartition. Veja a secção Parâmetros Opcionais do Visual Studio e do PowerShell para obter descrições destes parâmetros.
tempo limite Especifica o período de tempo limite em segundos para a operação. Predefinição: 60.
upgrade-domain-timeout A quantidade de tempo que cada domínio de atualização tem de concluir antes da execução de FailureAction . É interpretado pela primeira vez como uma cadeia que representa uma duração ISO 8601. Se isso falhar, será interpretado como um número que representa o número total de milissegundos. O valor predefinido nunca é (Infinito) e deve ser personalizado adequadamente para a sua aplicação. Predefinição: P10675199DT02H48M05.4775807S.
tempo limite da atualização A quantidade de tempo que cada domínio de atualização tem de concluir antes da execução de FailureAction . É interpretado pela primeira vez como uma cadeia que representa uma duração ISO 8601. Se isso falhar, será interpretado como um número que representa o número total de milissegundos. O valor predefinido nunca é (Infinito) e deve ser personalizado adequadamente para a sua aplicação. Predefinição: P10675199DT02H48M05.4775807S.
aviso como erro Os valores permitidos são Verdadeiro e Falso. O valor predefinido é Falso. Pode ser passado como um sinalizador. Trate os eventos de estado de funcionamento do aviso para a aplicação como erros ao avaliar o estado de funcionamento da aplicação durante a atualização. Por predefinição, o Service Fabric não avalia os eventos de estado de funcionamento de aviso como falhas (erros), pelo que a atualização pode continuar mesmo que existam eventos de aviso.

Passos seguintes

Atualizar a sua Aplicação Com o Visual Studio orienta-o através de uma atualização da aplicação com o Visual Studio.

Atualizar a sua Aplicação Com o PowerShell orienta-o através de uma atualização da aplicação com o PowerShell.

Atualizar a sua Aplicação com a CLI do Service Fabric no Linux orienta-o através de uma atualização da aplicação com a CLI do Service Fabric.

Atualizar a sua aplicação com o Plug-in eclipse do Service Fabric

Torne as atualizações da sua aplicação compatíveis ao aprender a utilizar a Serialização de Dados.

Saiba como utilizar funcionalidades avançadas ao atualizar a sua aplicação ao referir-se a Tópicos Avançados.

Corrija problemas comuns nas atualizações de aplicações ao consultar os passos em Resolução de Problemas de Atualizações de Aplicações.