Parâmetros de atualização de aplicativo
Este artigo descreve os vários parâmetros que se aplicam durante a atualização de um aplicativo do Service Fabric do Azure. Parâmetros de atualização de aplicativo controlam o tempo limite e as verificações de integridade que são aplicadas durante a atualização, e especificam as políticas que devem ser aplicadas quando uma atualização falha. Parâmetros de aplicativo aplicam-se a atualizações usando:
- PowerShell
- Visual Studio
- SFCTL
- REST
Atualizações de aplicativo são iniciadas por meio de um dos três modos de atualização selecionáveis pelo usuário. Cada modo tem o próprio conjunto de parâmetros do aplicativo:
- Monitorado
- Automático Não Monitorado
- Manual Não Monitorado
Os parâmetros obrigatórios e opcionais aplicáveis são descritos em cada seção da seguinte maneira.
Parâmetros do Visual Studio e PowerShell
Atualizações de aplicativo do Service Fabric usando o PowerShell usam o comando Start-ServiceFabricApplicationUpgrade. O modo de atualização é selecionado passando o parâmetro Monitored, UnmonitoredAuto ou UnmonitoredManual para Start-ServiceFabricApplicationUpgrade.
Parâmetros atualização de aplicativo do Visual Studio Service Fabric são definidos por meio da caixa de diálogo Configurações de Atualização do Visual Studio. O modo de atualização do Visual Studio é selecionado usando a caixa suspensa Modo de Atualização para Monitored, UnmonitoredAuto ou UnmonitoredManual. Para obter mais informações, veja Configurar a atualização de um aplicativo do Service Fabric no Visual Studio.
Parâmetros obrigatórios
Parâmetro | Aplica-se A | Descrição |
---|---|---|
ApplicationName | PowerShell | Nome do aplicativo que está sendo atualizado. Exemplos: fabric:/VisualObjects, fabric:/ClusterMonitor. |
ApplicationTypeVersion | PowerShell | Versão do tipo de aplicativo visado pela atualização. |
FailureAction | PowerShell, Visual Studio | Valores permitidos são Rollback, Manual e Invalid. A ação de compensação a ser executada quando uma atualização Monitorada encontra uma política de monitoramento ou violações da política de integridade. Reversão especifica que a atualização será automaticamente revertida para a versão pré-atualização. Manual indica que a atualização será mudada para o modo de atualização UnmonitoredManual. Inválido indica que a ação de falha é inválida. |
Monitorado | PowerShell | Indica que o modo de atualização é monitorado. Depois que o cmdlet terminar uma atualização para um domínio de atualização, se a integridade do domínio de atualização e o cluster atenderem às políticas de integridade que você definir, o Service Fabric atualizará o próximo domínio de atualização. Se o domínio ou o cluster de atualização falhar em cumprir as políticas de integridade, a atualização falhará e o Service Fabric reverterá a atualização para o domínio de atualização ou para o modo manual, conforme especificado pela política. Esse é o modo recomendado para atualizações de aplicativo em um ambiente de produção. |
UpgradeMode | Visual Studio | Os valores permitidos são Monitored (padrão), UnmonitoredAuto ou UnmonitoredManual. Consulte os parâmetros do PowerShell para cada modo neste artigo para obter detalhes. |
UnmonitoredAuto | PowerShell | Indica que o modo de atualização e não monitorado automático. Depois que o Service Fabric atualiza um domínio de atualização, o Service Fabric atualiza o próximo domínio de atualização, independentemente do estado de integridade do aplicativo. Esse modo não é recomendado para produção e só é útil durante o desenvolvimento de um aplicativo. |
UnmonitoredManual | PowerShell | Indica que o modo de atualização e não monitorado manual. Depois que o Service Fabric atualiza um domínio de atualização, ele aguarda você atualizar o próximo domínio de atualização usando o cmdlet Resume-ServiceFabricApplicationUpgrade. |
Parâmetros opcionais
Os parâmetros de avaliação de integridade são opcionais. Se os critérios de avaliação de integridade não forem especificados ao iniciar uma atualização, o Service Fabric usará as políticas de integridade do aplicativo especificadas no ApplicationManifest.xml da instância do aplicativo.
Parâmetro | Aplica-se A | Descrição |
---|---|---|
ApplicationParameter | PowerShell, Visual Studio | Especifica as substituições para os parâmetros do aplicativo. Parâmetros de aplicativo do PowerShell são especificados como pares de nome/valor da tabela de hash. Por exemplo, @{ "VotingData_MinReplicaSetSize" = "3"; "VotingData_PartitionCount" = "1" }. Os parâmetros de aplicativo do Visual Studio podem ser especificados na caixa de diálogo Publicar Aplicativo do Service Fabric no campo Arquivo de Parâmetros do Aplicativo. |
Confirmar | PowerShell | Os valores permitidos são True e False. Solicita sua confirmação antes de executar o cmdlet. |
ConsiderWarningAsError | PowerShell, Visual Studio | Os valores permitidos são True e False. O valor padrão é False. Trata os eventos de integridade de aviso do aplicativo como erros ao avaliar a integridade do aplicativo durante a atualização. Por padrão, o Service Fabric não avalia os eventos de integridade de aviso como falhas (erros); portanto, a atualização pode continuar mesmo se houver eventos de aviso. |
DefaultServiceTypeHealthPolicy | PowerShell, Visual Studio | Especifica a política de integridade para o tipo de serviço padrão a ser usado para a atualização monitorada 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 True e False. Indica que o processo de atualização ignorará a mensagem de aviso e forçará a atualização mesmo quando o número de versão não tiver mudado. Isso é útil para teste local, mas não é recomendado para uso em um ambiente de produção, pois exige remover a implantação existente, provocando tempo de inatividade e possível perda de dados. |
ForceRestart | PowerShell, Visual Studio | Se você atualizar uma configuração ou um pacote de dados sem atualizar o código de serviço, o serviço será reiniciado somente se a propriedade ForceRestart estiver definida como True. Quando a atualização é concluída, a Malha do Serviço notifica o serviço de que um novo pacote de configuração ou pacote de dados está disponível. O serviço é responsável pela aplicação das alterações. Se necessário, o serviço pode se reiniciar. |
HealthCheckRetryTimeoutSec | PowerShell, Visual Studio | A duração (em segundos) em que a Malha de Serviço continua a executar a avaliação de integridade antes de declarar a atualização com falha. O padrão é 600 segundos. Esta duração é iniciada depois que a HealthCheckWaitDurationSec for atingida. Nesse HealthCheckRetryTimeout, o Service Fabric pode executar várias verificações de integridade do aplicativo. O valor padrão é 10 minutos e deve ser adequadamente personalizado para o seu aplicativo. |
HealthCheckStableDurationSec | PowerShell, Visual Studio | A duração (em segundos) para verificar se o aplicativo é estável antes de passar para o próximo domínio de atualização ou concluir a atualização. Essa duração de espera é usada para impedir que alterações na integridade deixem de ser detectadas logo após a verificação de integridade. O valor padrão é 120 segundos e deve ser adequadamente personalizado para o seu aplicativo. |
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 que o Service Fabric avalie a integridade do aplicativo. Essa duração também pode ser considerada como o tempo pelo qual um aplicativo deve estar em execução antes que possa ser considerado íntegro. Se a verificação de integridade for aprovada, o processo de atualização passa para o próximo domínio de atualização. Se a verificação de integridade falhar, o Service Fabric aguardará UpgradeHealthCheckInterval antes de tentar novamente a verificação de integridade até que o HealthCheckRetryTimeoutSec seja atingido. O valor padrão recomendado é 0 segundos. |
MaxPercentUnhealthyDeployedApplications | PowerShell, Visual Studio | O valor padrão e recomendado é 0. Especifica o número máximo de aplicativos implantados (confira a seção Integridade) que podem comprometer a integridade antes que o aplicativo seja considerado não íntegro e sofra falha na atualização. Esse parâmetro define a integridade do aplicativo no nó e ajuda a detectar problemas durante a atualização. Tipicamente, as réplicas do aplicativo têm a carga balanceada para outro nó, o que permite que o aplicativo pareça íntegro, permitindo assim que a atualização continue. Ao especificar uma integridade MaxPercentUnhealthyDeployedApplications estrita, o Service Fabric pode detectar um problema com o pacote de aplicativos rapidamente e ajudar a produzir em uma atualização fail fast. |
MaxPercentUnhealthyServices | PowerShell, Visual Studio | Um parâmetro para DefaultServiceTypeHealthPolicy e ServiceTypeHealthPolicyMap. O valor padrão e recomendado é 0. Especifica o número máximo de serviços na instância do aplicativo que podem não estar íntegros antes que o aplicativo seja considerado não íntegro e tenha atualização com falha. |
MaxPercentUnhealthyPartitionsPerService | PowerShell, Visual Studio | Um parâmetro para DefaultServiceTypeHealthPolicy e ServiceTypeHealthPolicyMap. O valor padrão e recomendado é 0. Especifica o número máximo de partições em um serviço que podem não estar íntegras antes que o serviço seja considerado não íntegro. |
MaxPercentUnhealthyReplicasPerPartition | PowerShell, Visual Studio | Um parâmetro para DefaultServiceTypeHealthPolicy e ServiceTypeHealthPolicyMap. O valor padrão e recomendado é 0. Especifica o número máximo de réplicas em partição que podem não estar íntegras antes que a partição seja considerada não íntegra. |
ServiceTypeHealthPolicyMap | PowerShell, Visual Studio | Representa a política de integridade usada para avaliar a integridade dos serviços que pertencem a um tipo de serviço. Pega uma entrada de tabela de hash no seguinte formato: @ {"ServiceTypeName" : "MaxPercentUnhealthyPartitionsPerService,MaxPercentUnhealthyReplicasPerPartition,MaxPercentUnhealthyServices"} Por exemplo: @{ "ServiceTypeName01" = "5,10,5"; "ServiceTypeName02" = "5,5,5" } |
TimeoutSec | 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 esse tempo limite for atingido, a atualização será interrompida e continuará com base na configuração para FailureAction. O valor padrão nunca é (infinito) e deve ser personalizado adequadamente para o seu aplicativo. |
UpgradeReplicaSetCheckTimeoutSec | PowerShell, Visual Studio | Medido em segundos. Serviço sem monitoração de estado: em um único domínio de atualização, o Service Fabric tenta garantir que haja instâncias adicionais do serviço disponíveis. Se a contagem de instâncias de destino for mais de um, o Service Fabric esperará que mais de uma instância fique disponível, até um valor de tempo limite máximo. Esse tempo limite é especificado usando a propriedade UpgradeReplicaSetCheckTimeoutSec. Se o tempo limite expirar, o Service Fabric continua com a atualização, independentemente do número de instâncias de serviço. Se a contagem de instâncias de destino for um, a Malha do Serviço não espera e prossegue imediatamente com a atualização. Serviço com monitoração de estado: em um único domínio de atualização, o Service Fabric tenta garantir que o conjunto de réplicas tenha um quorum. O Service Fabric aguarda pela disponibilidade de um quorum até um valor de tempo limite máximo (especificado pela propriedade UpgradeReplicaSetCheckTimeoutSec). Se o tempo limite expirar, o Service Fabric continuará com a atualização, independentemente de quorum. Essa configuração está definida como nunca (infinito) durante o roll forward e 1200 segundos durante a reversão. |
UpgradeTimeoutSec | PowerShell, Visual Studio | Um tempo limite (em segundos) que se aplica a toda a atualização. Se esse tempo limite for atingido, a atualização será interrompida e a FailureAction será disparada. O valor padrão nunca é (infinito) e deve ser personalizado adequadamente para o seu aplicativo. |
WhatIf | PowerShell | Os valores permitidos são True e False. Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado. |
Os critérios MaxPercentUnhealthyServices, MaxPercentUnhealthyPartitionsPerService e MaxPercentUnhealthyReplicasPerPartition podem ser especificados por tipo de serviço para uma instância do aplicativo. Definir esses parâmetros por serviço permite que um aplicativo contenha tipos de serviços diferentes com políticas de avaliação diferentes. Por exemplo, um tipo de serviço de gateway sem monitoração de estado pode ter um MaxPercentUnhealthyPartitionsPerService diferente de um tipo de serviço de mecanismo com estado para uma determinada instância de aplicativo.
Parâmetros SFCTL
As atualizações de aplicativos do Service Fabric usando a CLI do Service Fabric usam o comando sfctl application upgrade junto com os seguintes parâmetros obrigatórios e opcionais.
Parâmetros obrigatórios
Parâmetro | Descrição |
---|---|
application-id | ID do aplicativo que está sendo atualizado. Normalmente, este é o nome completo do aplicativo sem o esquema de URI "fabric:". A partir da versão 6.0, nomes hierárquicos são delimitados pelo caractere "~". Por exemplo, se o nome do aplicativo for "fabric:/meuaplicativo/aplicativo1", a identidade do aplicativo será "meuaplicativo~aplicativo1" na versão 6.0 e superiores, e "meuaplicativo/aplicativo1" nas versões anteriores. |
application-version | Versão do tipo de aplicativo visado pela atualização. |
parameters | Uma lista codificada em JSON de substituições de parâmetro de aplicativo a serem aplicadas ao atualizar o aplicativo. |
Parâmetros opcionais
Parâmetro | Descrição |
---|---|
default-service-health-policy | Especificação JSON codificada da política de integridade usada por padrão para avaliar a integridade de um tipo de serviço. O mapa está vazio por padrão. |
failure-action | Valores permitidos são Rollback, Manual e Invalid. A ação de compensação a ser executada quando uma atualização Monitorada encontra uma política de monitoramento ou violações da política de integridade. Reversão especifica que a atualização será automaticamente revertida para a versão pré-atualização. Manual indica que a atualização será mudada para o modo de atualização UnmonitoredManual. Inválido indica que a ação de falha é inválida. |
force-restart | Se você atualizar uma configuração ou um pacote de dados sem atualizar o código de serviço, o serviço será reiniciado somente se a propriedade ForceRestart estiver definida como True. Quando a atualização é concluída, a Malha do Serviço notifica o serviço de que um novo pacote de configuração ou pacote de dados está disponível. O serviço é responsável pela aplicação das alterações. Se necessário, o serviço pode se reiniciar. |
health-check-retry-timeout | A quantidade de tempo para tentar novamente a avaliação de integridade quando o aplicativo ou cluster estiver não íntegro antes de FailureAction ser executado. Primeiro, é interpretado como uma cadeia de caracteres representando uma duração ISO 8601. Se isso falhar, será interpretado como um número que representa o número total de milissegundos. Padrão: PT0H10M0S. |
health-check-stable-duration | A quantidade de tempo que o aplicativo ou o cluster deve permanecer íntegro antes que a atualização passe para o próximo domínio de atualização. Primeiro, é interpretado como uma cadeia de caracteres representando uma duração ISO 8601. Se isso falhar, será interpretado como um número que representa o número total de milissegundos. Padrão: PT0H2M0S. |
health-check-wait-duration | A quantidade de tempo de espera após a conclusão de um domínio de atualização, antes de aplicar as políticas de integridade. Primeiro, é interpretado como uma cadeia de caracteres representando uma duração ISO 8601. Se isso falhar, será interpretado como um número que representa o número total de milissegundos. Padrão: 0. |
max-unhealthy-apps | O valor padrão e recomendado é 0. Especifica o número máximo de aplicativos implantados (confira a seção Integridade) que podem comprometer a integridade antes que o aplicativo seja considerado não íntegro e sofra falha na atualização. Esse parâmetro define a integridade do aplicativo no nó e ajuda a detectar problemas durante a atualização. Tipicamente, as réplicas do aplicativo têm a carga balanceada para outro nó, o que permite que o aplicativo pareça íntegro, permitindo assim que a atualização continue. Ao especificar um funcionamento max-unhealthy-apps estrito, o Service Fabric pode detectar um problema com o pacote de aplicativos rapidamente e ajudar a produzir uma atualização rápida com falha. Representado como um número entre 0 e 100. |
mode | Os valores permitidos são Monitored, UpgradeMode, UnmonitoredAuto, UnmonitoredManual. O padrão é UnmonitoredAuto. Consulte a seção Parâmetros Necessários do Visual Studio e PowerShell para obter as descrições desses valores. |
replica-set-check-timeout | Medido em segundos. Serviço sem monitoração de estado: em um único domínio de atualização, o Service Fabric tenta garantir que haja instâncias adicionais do serviço disponíveis. Se a contagem de instâncias de destino for mais de um, o Service Fabric esperará que mais de uma instância fique disponível, até um valor de tempo limite máximo. Esse tempo limite é especificado usando a propriedade replica-set-check-timeout. Se o tempo limite expirar, o Service Fabric continua com a atualização, independentemente do número de instâncias de serviço. Se a contagem de instâncias de destino for um, a Malha do Serviço não espera e prossegue imediatamente com a atualização. Serviço com monitoração de estado: em um único domínio de atualização, o Service Fabric tenta garantir que o conjunto de réplicas tenha um quorum. O Service Fabric aguarda a disponibilidade de um quórum, até um valor de tempo limite máximo (especificado pela propriedade replica-set-check-timeout). Se o tempo limite expirar, o Service Fabric continuará com a atualização, independentemente de quorum. Essa configuração está definida como nunca (infinito) durante o roll forward e 1200 segundos durante a reversão. |
service-health-policy | Mapa codificado em JSON com a política de integridade de tipo de serviço por nome de tipo de serviço. O mapa está vazio por padrão. Parâmetro de formato JSON.. O JSON da parte "Valor" contém MaxPercentUnhealthyServices, MaxPercentUnhealthyPartitionsPerService e MaxPercentUnhealthyReplicasPerPartition. Consulte a seção Parâmetros Opcionais do Visual Studio e PowerShell para obter as descrições desses parâmetros. |
tempo limite | Especifica o período de tempo limite em segundos para a operação. Padrão: 60. |
upgrade-domain-timeout | A quantidade de tempo que cada domínio de atualização deve concluir antes de FailureAction ser executado. Primeiro, é interpretado como uma cadeia de caracteres representando uma duração ISO 8601. Se isso falhar, será interpretado como um número que representa o número total de milissegundos. O valor padrão nunca é (infinito) e deve ser personalizado adequadamente para o seu aplicativo. Padrão: P10675199DT02H48M05.4775807S. |
upgrade-timeout | A quantidade de tempo que cada domínio de atualização deve concluir antes de FailureAction ser executado. Primeiro, é interpretado como uma cadeia de caracteres representando uma duração ISO 8601. Se isso falhar, será interpretado como um número que representa o número total de milissegundos. O valor padrão nunca é (infinito) e deve ser personalizado adequadamente para o seu aplicativo. Padrão: P10675199DT02H48M05.4775807S. |
warning-as-error | Os valores permitidos são True e False. O valor padrão é False. Pode ser passado como um sinalizador. Trata os eventos de integridade de aviso do aplicativo como erros ao avaliar a integridade do aplicativo durante a atualização. Por padrão, o Service Fabric não avalia os eventos de integridade de aviso como falhas (erros); portanto, a atualização pode continuar mesmo se houver eventos de aviso. |
Próximas etapas
Atualização do aplicativo usando o Visual Studio orienta você durante a atualização de aplicativo usando o Visual Studio.
A atualização do seu aplicativo usando o PowerShell orienta você na atualização de um aplicativo usando o PowerShell.
A Atualização do aplicativo usando a CLI do Service Fabric no Linux orienta você ao longo de uma atualização de aplicativo usando a CLI do Service Fabric.
Atualizar seu aplicativo usando o plug-in Eclipse do Service Fabric
Torne suas atualizações de aplicativo compatíveis aprendendo a usar a Serialização de Dados.
Saiba como usar a funcionalidade avançada ao atualizar seu aplicativo consultando os Tópicos Avançados.
Corrija problemas comuns em atualizações de aplicativo consultando as etapas em Solução de problemas de atualizações de aplicativo.