Upgrade de um aplicativo

Este tópico fornece informações sobre o upgrade de um Snowflake Native App.

Sobre upgrades

O Snowflake Native App Framework permite que os provedores atualizem um aplicativo para uma nova versão ou patch. Para ver como as atualizações se encaixam no fluxo de trabalho geral para o desenvolvimento de uma nova versão ou patch de um aplicativo, consulte Fluxo de trabalho para atualizar um aplicativo.

Os provedores podem iniciar uma atualização de um aplicativo para uma nova versão ou patch definindo uma diretriz de versão no pacote do aplicativo. Quando a diretriz de versão é modificada, o Snowflake atualiza automaticamente todas as instâncias instaladas da versão atual do aplicativo para a versão especificada pela diretriz de versão.

Quando o provedor inicia uma atualização, o Snowflake adiciona cada aplicativo a ser atualizado a uma fila. Cada aplicativo é atualizado à medida que os recursos estão disponíveis. O processo de atualização pode demorar um pouco para ser concluído em todas as versões instaladas do aplicativo. Para agilizar o processo de atualização, os consumidores também podem iniciar manualmente uma atualização de um aplicativo quando uma nova versão ou patch estiver disponível.

Nota

Após o início do processo de atualização do aplicativo, os consumidores não poderão mais atualizar o aplicativo manualmente.

Fluxo de trabalho de atualização

Um provedor faz o upgrade de um aplicativo instalado usando o seguinte fluxo de trabalho:

  1. Atualize o aplicativo para incluir novos recursos.

  2. Se você estiver criando uma nova versão do aplicativo e houver duas versões atualmente definidas para o aplicativo:

    1. Certifique-se de que nenhum consumidor esteja executando a versão no momento.

    2. Descarte a versão do aplicativo que você está substituindo.

  3. Crie uma nova versão ou patch para as alterações no pacote de aplicativo.

    Se a propriedade DISTRIBUTION do pacote do aplicativo estiver definida como EXTERNAL, a verificação de segurança automatizada será iniciada. A verificação de segurança deve passar antes que o upgrade possa ocorrer.

  4. Teste a nova versão criando a instalação do aplicativo em sua conta de teste.

  5. Atualize a diretriz de versão da versão ou patch.

    Isso inicia um upgrade automatizado que atualizará todas as instâncias instaladas da versão anterior. Um provedor pode notificar o consumidor de que uma atualização está disponível e solicitar que ele faça a atualização manual do aplicativo.

Início da atualização

O processo de atualização é iniciado automaticamente quando um provedor atualiza a diretriz de versão (padrão ou personalizada) do pacote do aplicativo para apontar para uma nova versão ou patch. Use o comando ALTER APPLICATION PACKAGE … RELEASE DIRECTIVE para definir a diretriz de versão, conforme mostrado nos exemplos a seguir:

ALTER APPLICATION PACKAGE my_application_package SET DEFAULT RELEASE DIRECTIVE
  VERSION = v2
  PATCH = 0;
Copy

Esse comando define a diretriz de versão padrão para a versão v2 e o patch 0.

ALTER APPLICATION PACKAGE my_application_package
  SET RELEASE DIRECTIVE my_custom_release_directive
  ACCOUNTS = ( USER_ACCOUNT.snowflakecomputing.com )
  VERSION = v2
  PATCH = 0;
Copy

Esse comando define a diretriz de versão personalizada chamada my_custom_release_directive para a versão v2 e o patch 0 para a conta USER_ACCOUNT.snowflakecomputing.com.

Consulte Configuração da diretriz de lançamento para um aplicativo para obter mais informações.

Atualização manual de um aplicativo

As atualizações manuais permitem que um consumidor atualize seu aplicativo instalado mais rapidamente do que as atualizações automatizadas. Quando uma nova versão ou patch estiver disponível, o provedor poderá solicitar ao consumidor que faça uma atualização manual.

O consumidor realiza uma atualização manual executando o ALTER APPLICATION. Esse comando inicia a atualização de uma versão instalada ou de um patch de um aplicativo usando a diretriz de versão especificada no pacote do aplicativo.

Para fazer o upgrade de um Snowflake Native App instalado para a versão mais recente disponível, um consumidor pode usar a cláusula UPGRADE do comando ALTER APPLICATION para modificar o objeto do aplicativo:

ALTER APPLICATION <name> UPGRADE
Copy

Atualização de um aplicativo em todas as regiões

Depois de atualizar o aplicativo, as alterações no Snowflake Native App instalado na conta do consumidor podem não ficar visíveis até que a atualização para regiões remotas seja executada.

Você pode usar o Exibição APPLICATION_STATE no esquema Uso de Data Sharing para monitorar o estado. Se o upgrade não for concluído mais de um dia após a primeira atualização depois do upgrade, pode haver um problema com o processo de atualização. Entre em contato com o suporte Snowflake.

Se um provedor publicar um Snowflake Native App usando o Preenchimento automático entre nuvens, as atualizações automatizadas poderão demorar um pouco para serem atualizadas, dependendo de vários fatores, inclusive:

  • O valor do agendamento de atualização.

  • O número de instâncias instaladas do aplicativo.

  • O número de regiões onde o aplicativo está implantado.

Se a atualização contiver uma correção urgente que precise ser atualizada em uma região remota, o provedor poderá reduzir a frequência de atualização da listagem para um valor menor. Consulte Monitoramento e gerenciamento de configurações de preenchimento automático para obter informações sobre como definir a frequência de atualização no nível da conta.

Cuidado

A redução da frequência de atualização pode aumentar os custos associados à replicação.

Atualização de estados

Durante o processo de atualização, o aplicativo passa por diferentes estados. O diagrama a seguir mostra os possíveis estados ao fazer upgrade da versão anterior, v1, para uma nova versão, v2.

Nota

Embora esse diagrama mostre uma atualização para uma versão, ele também se aplica a atualizações de patches.

../../_images/na-upgrade-statuses.png

A tabela a seguir mostra cada estágio do processo de upgrade de um aplicativo na mesma região em que o pacote do aplicativo está localizado:

Estágio

Descrição

1

O aplicativo está desativado?

Se o aplicativo estiver desativado, não será possível fazer upgrade.

2

Definir a diretriz de versão como v2.0

O provedor define a diretriz de versão como v2.0.

3

Elegível para upgrade

O Snowflake realiza verificações para confirmar se o aplicativo é elegível para upgrade. Essas verificações incluem verificar se o aplicativo não está desativado, se o pacote do aplicativo está disponível, se a versão e o patch são válidos para atualização, se a conta do consumidor é válida etc.

4

Obter slot de upgrade?

Dependendo do número de aplicativos que estão sendo atualizados, do número de contas de consumidores etc., eles podem ter que esperar para iniciar o processo de atualização.

5

O script de configuração foi executado com êxito?

Quando a atualização começa, o Snowflake executa o script de configuração. Se ocorrer algum erro não detectado, a execução do script de configuração será interrompida. O Snowflake coloca o aplicativo na fila para atualização novamente com base no número de tentativas configuradas.

6

A versão está atualizada?

O Snowflake verifica se a atualização é para uma versão ou patch. Se a atualização for para uma versão, o Snowflake realizará verificações adicionais e aguardará até que todos os trabalhos da versão anterior do aplicativo tenham sido concluídos.

A tabela a seguir mostra o processo de upgrade para aplicativos que são implementados em regiões remotas:

Estágio

Descrição

7

Diretriz de versão v2.0 replicada na região remota

Quando um provedor define a diretriz de versão para um aplicativo implantado em uma região remota, a diretriz de versão é propagada para o pacote do aplicativo implantado na região remota.

8

Região ativa para a v2.0?

Quando a maioria dos aplicativos na região primária tiver sido atualizada, o Snowflake envia mensagens para a região remota para iniciar a atualização do aplicativo.

9

Iniciar o processo de upgrade

Inicie o processo de upgrade do aplicativo conforme descrito na tabela anterior.

A tabela a seguir descreve cada um dos possíveis estados do processo de upgrade:

Estado

Descrição

DISABLED

O aplicativo está desativado e não é elegível para atualização.

QUEUED

O aplicativo está na fila de espera para ser atualizado com base no número de aplicativos e contas de consumidores.

UPGRADING

O aplicativo está em processo de atualização.

COMPLETED

A atualização do aplicativo foi bem-sucedida.

QUEUED_RETRY

O script de configuração ou outra verificação falhou e o aplicativo é devolvido à fila de atualização.

FAILED

A atualização do aplicativo falhou. As atualizações podem falhar no lado do provedor, por exemplo, devido a um erro no script de configuração. As atualizações também podem falhar no lado do consumidor se o aplicativo estiver desativado, a conta do consumidor estiver inativa etc.

Monitoramento do estado de uma atualização

Para visualizar o estado de atualização de um aplicativo, use o Exibição APPLICATION_STATE.

Por exemplo, em uma situação em que você atualizou a diretriz de versão padrão e deseja verificar se todos os aplicativos atingiram a versão de destino. Para localizar instâncias de aplicativos que ainda não concluíram o upgrade, use a consulta do exemplo a seguir:

SELECT * FROM snowflake.data_sharing_usage.APPLICATION_STATE
Copy

Essa exibição inclui colunas específicas para upgrades, incluindo o estado do upgrade e a região onde o aplicativo está implantado. Para obter informações sobre os estados de upgrade, consulte Atualização de estados.

Solução de problemas durante a atualização

O Snowflake Native App Framework oferece várias maneiras de solucionar problemas de upgrade:

Como identificar erros de upgrade

Os consumidores podem usar o comando DESCRIBE APPLICATION para visualizar mensagens de erro relacionadas a upgrades com falha. Esse comando fornece informações sobre os erros que ocorreram durante o processo de upgrade.

Os provedores podem usar o Exibição APPLICATION_STATE para visualizar mensagens de erro de upgrades com falha. Usando essa visualização, os provedores podem diagnosticar problemas com aplicativos específicos. Consulte Monitoramento do estado de uma atualização para obter mais informações.

Como usar o registro em log e o rastreamento de eventos

Se o registro em log e o rastreamento de eventos estiverem configurados para o aplicativo, os provedores poderão consultar a tabela de eventos para diagnosticar problemas com a atualização do aplicativo.

Consulte Exibição dos logs e eventos na tabela de eventos para obter mais informações.

Monitoramento do estado de um serviço do aplicativo

Para visualizar informações sobre o status de um pool de computação ou serviço em um aplicativo, os consumidores podem usar as seguintes funções do sistema:

Os consumidores podem compartilhar essas informações com os provedores. Os provedores também podem configurar o compartilhamento de eventos para retornar essas informações.

Aplicativos desativados

Quando um aplicativo instalado na conta do consumidor é desativado, ele não pode mais ser usado. Um aplicativo instalado em uma conta de consumidor pode ser desativado por vários motivos, inclusive:

  • Problemas com o pacote do aplicativo

  • Problemas com o aplicativo instalado

  • Problemas com a conta do consumidor

Tanto os provedores quanto os consumidores devem evitar situações em que um aplicativo permaneça desativado por um longo período. Os aplicativos desativados podem se tornar inutilizáveis e precisam ser reinstalados

Atualização de um aplicativo desativado

Os aplicativos desativados não fazem parte do processo normal de atualização e não podem ser atualizados. Se um aplicativo desativado for reativado, ele será automaticamente atualizado para a versão e o patch da diretriz de versão. No entanto, se a versão ou o patch não estiver mais disponível, o aplicativo não poderá ser atualizado e deverá ser reinstalado.

Por exemplo, se um aplicativo desativado estiver na versão v1, mas as versões atual e anterior no pacote de aplicativos forem v2 e v3, o aplicativo não poderá ser atualizado e ficará inutilizável.

Motivos pelos quais um aplicativo pode ser desativado

Você pode visualizar a coluna DISABLEMENT_REASONS do Exibição APPLICATION_STATE para ver os motivos pelos quais um aplicativo está desativado. A tabela a seguir lista os valores possíveis para a coluna DISABLEMENT_REASONS:

Valor

Descrição do status

É recuperável?

MANUALLY_DISABLED

O aplicativo foi desabilitado pelo Snowflake

Sim. Para reativar o aplicativo, entre em contato com o suporte Snowflake.

ACCOUNT_INACTIVE

A conta fica inativa ao ser bloqueada ou suspensa, fazendo com que o aplicativo fique indisponível. Nesse estado, o consumidor não pode executar nenhuma consulta SQL em sua conta e o aplicativo não pode ser atualizado.

Sim. O aplicativo é reativado automaticamente se o bloqueio ou suspensão da conta for removido

PACKAGE_VERSION_IS_MISSING

A versão do pacote de aplicativo para o aplicativo foi descartada pelo provedor.

Não. O aplicativo não pode mais ser usado e deve ser descartado e reinstalado a partir de uma listagem válida ou pacote de aplicativo.

CMK_ACCESS_DENIED

O consumidor gerencia a chave de criptografia (ENCRYPT_USE_CMK_KMS está habilitado) e o Snowflake não tem acesso a essa chave.

Sim. Para reativar o aplicativo, certifique-se de que a configuração do provedor de nuvem para recuperar a CMK esteja correta e que o Snowflake tenha acesso à chave.

LISTING_ACCESS_REVOKED

A listagem usada para criar o aplicativo não está mais disponível. Possíveis razões para esse status incluem:

  • O provedor excluiu a listagem

  • O provedor removeu manualmente o acesso à listagem privada da conta do consumidor

Possivelmente. A recuperabilidade depende do motivo pelo qual o acesso foi revogado.

Por exemplo, se o listagem foi excluída, ela não poderá ser recuperada. Se uma conta de consumidor foi removida manualmente da listagem privada, o acesso à listagem e ao aplicativo pode ser restaurado.

LISTING_TRIAL_USAGE_EXCEEDED

O aplicativo excedeu o limite de uso para uma listagem de teste baseada no uso.

Não

LISTING_PAYMENT_REQUIRED

A listagem usada para instalar o aplicativo é uma listagem paga e exige pagamento para uso posterior.

Sim. O consumidor deve definir corretamente o pagamento do aplicativo.

LISTING_TRIAL_TIME_EXCEEDED

O aplicativo excedeu o período de teste.

Não

APPLICATION_PACKAGE_NOT_AVAILABLE

O pacote de aplicativo usado para criar o aplicativo não existe mais. O provedor pode ter descartado o pacote de aplicativo correspondente.

Não

APPLICATION_PACKAGE_DISABLED

O pacote de aplicativo usado para criar o aplicativo é desabilitado pelo Snowflake.

Sim. O aplicativo será reativado se o Snowflake reativar o pacote do aplicativo.

APPLICATION_SUSPENDED

Os recursos do aplicativo, por exemplo, tarefas, serviços e pools de computação, são suspensos porque o aplicativo está desabilitado.

Os objetos suspensos permanecem suspensos até que o aplicativo seja reativado e não haja outros motivos para a desativação do aplicativo.

Sim

APPLICATION_SUSPEND_RESUME_IN_PROGRESS

Os recursos do aplicativo, por exemplo, tarefas, serviços e pools de computação, estão sendo retomados no momento.

Sim