Visão geral das versões e atualizações do aplicativo¶
Este tópico fornece informações sobre como as versões, os patches e os upgrades funcionam no Snowflake Native App Framework.
Sobre versões e patches de aplicativos¶
O Snowflake Native App Framework permite que os provedores criem versões e patches de um aplicativo. As versões e os patches permitem que os provedores liberem novas funcionalidades e atualizações para os consumidores.
- Versão
Geralmente contém atualizações importantes para um Snowflake Native App. As versões geralmente introduzem novos recursos e alteram a funcionalidade de um aplicativo.
- Patch
Geralmente contém atualizações menores para Snowflake Native App. Ao contrário das versões, os patches devem conter apenas pequenas atualizações, como correções de segurança.
As versões e os patches de um aplicativo são especificados no pacote do aplicativo.
Cuidado
Um aplicativo só pode ter duas versões ativas ao mesmo tempo. Cada versão de um aplicativo pode ter até 130 patches.
Para adicionar uma nova versão a um pacote do aplicativo que atualmente tem duas versões definidas, os provedores devem remover uma das versões existentes. Para remover uma versão, o provedor deve:
Certificar-se de que todos os consumidores tenham feito o upgrade da versão a ser removida.
Remover a versão do pacote do aplicativo.
Criar uma nova versão.
Atualizar o aplicativo.
Cuidado
Embora um aplicativo possa ser atualizado na conta do consumidor, a versão anterior do aplicativo ainda pode ter um código em execução. Os provedores não podem remover a versão anterior do aplicativo do pacote de aplicativos até que todo o código em execução da versão anterior tenha sido concluído. Isso se aplica a todas as versões instaladas do aplicativo em todas as contas de consumidores. Se um único upgrade falhar, os provedores deverão corrigir o motivo da falha no upgrade antes de poder remover a versão.
Embora um pacote de aplicativo possa conter apenas duas versões ativas por vez, uma única versão pode ter vários patches. O Snowflake Native App Framework não oferece suporte à remoção de patches. Quando um provedor adiciona uma nova versão a um pacote do aplicativo, a nova versão recebe automaticamente o patch 0 por padrão. Isso não pode ser alterado.
Quando um provedor adiciona um novo patch a uma versão, ele pode especificar manualmente o identificador do patch. Se nenhum número de patch for fornecido, o Snowflake incrementará automaticamente a versão do patch em 1.
Nota
Cada versão e patch deve ter suas próprias versões de script de configuração e arquivos de aplicativos.
Atualização de versões e patches¶
Quando um provedor publica uma nova versão de um aplicativo, o Snowflake Native App Framework garante que apenas a versão anterior do aplicativo esteja ativa. Por exemplo, se um provedor tiver publicado as versões v1 e v2 de um aplicativo, o Snowflake Native App Framework garante que apenas a v2 esteja instalada no momento em uma conta de consumidor antes de fazer o upgrade para a v3. Isso requer que todos os aplicativos instalados que usam a versão v1 sejam migrados para a versão v2.
Isso garante que o script de configuração do aplicativo só tenha que levar em conta as diferenças entre a v2 e a v3. O script de configuração é compatível apenas com a versão mais recente do aplicativo. Se um provedor fizer uma alteração de estado no aplicativo, por exemplo, criar uma nova tabela ou adicionar colunas a uma tabela, os provedores só precisam garantir que não haja problemas de compatibilidade entre duas versões.
Por outro lado, quando um provedor cria um novo patch para uma versão de um aplicativo, o Snowflake Native App Framework não impõe nenhuma restrição ao número de patches ativos em execução. Os provedores devem evitar fazer alterações no estado de um aplicativo em um patch para evitar incompatibilidade entre vários patches.
Objetos com e sem estado¶
Ao desenvolver uma nova versão de um aplicativo, os provedores devem considerar se os componentes que estão modificando precisam preservar seu estado de uma versão ou patch para outra. Um aplicativo típico contém dois tipos de componentes:
- Objetos sem estado
Os objetos sem estado são recriados para cada nova versão ou patch do aplicativo. Os objetos sem estado só precisam estar disponíveis durante o tempo de vida da versão e podem ser recriados conforme necessário. Os objetos sem estado são normalmente o código do aplicativo, incluindo procedimentos armazenados, funções definidas pelo usuário, aplicativos Streamlit e conteúdo semelhante.
Os objetos sem estado devem ser criados em um esquema com versão.
- Objetos com estado
Os objetos com estado são compartilhados de uma versão ou patch do aplicativo para outra. Os componentes com estado devem ter um tempo de vida útil em várias versões do aplicativo. Por exemplo, se um aplicativo usar uma tabela para armazenar informações de configuração na conta do consumidor, o conteúdo dessa tabela precisará ser preservado durante a atualização.
Os objetos com estado devem ser criados usando um esquema regular.
Sobre esquemas com versões¶
Ao escrever o script de configuração para a nova versão do aplicativo, os provedores devem levar em conta os componentes com e sem estado. Para lidar com objetos sem estado, o Snowflake Native App Framework oferece um tipo especial de esquema de banco de dados chamado de esquemas com versão. Um esquema com controle de versão é semelhante a um esquema de banco de dados comum, com funcionalidade adicional para lidar com várias versões de objetos criados por diferentes versões de aplicativos.
Consulte Como usar o esquema com versão para gerenciar objetos de aplicativos entre versões para obter mais informações.
Sobre as atualizações de aplicativos¶
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.
Para obter mais informações, consulte Upgrade de um aplicativo.
Atualizações em todas as regiões¶
Consulte Atualização de um aplicativo em todas as regiões para obter informações sobre como atualizar um aplicativo instalado em várias regiões usando o Preenchimento automático entre nuvens.
Ciclo de vida da versão do aplicativo e dos patches¶
Para entender como as versões do aplicativo e os patches funcionam juntos, considere um cenário em que um provedor publicou uma versão inicial, v1, de um aplicativo e o consumidor A e o consumidor B instalaram essa versão do aplicativo em suas contas.
Esse cenário é mostrado nas seções a seguir.
A versão v1.0 está instalada na conta do consumidor¶
A figura 1 mostra a versão v1.0
de um aplicativo que um provedor publicou e dois consumidores instalaram o aplicativo em suas contas:

Figura 1 - versão v1.0
¶
Essa figura mostra o seguinte:
Os arquivos de aplicativos para
v1.0
são armazenados em um estágio.A diretriz de versão do pacote do aplicativo está definida como
v1.0
.Os consumidores instalaram o
v1.0
em suas contas.O provedor iniciou o desenvolvimento da versão v2.0 em sua conta.
Como adicionar a versão v2.0 ao pacote do aplicativo¶
A figura 2 mostra que o provedor fez o upload da versão v2.0
e criou uma nova versão no pacote do aplicativo:

Figura 2 - Carregar arquivos para o estágio¶
Essa figura mostra o seguinte:
Depois de testar a versão
v2.0
do aplicativo localmente, o provedor carrega o arquivov2.0
no estágioO provedor cria uma nova versão para o aplicativo no pacote do aplicativo.
A diretriz de versão continua a apontar para a versão
v1.0
do aplicativo.Os consumidores continuam a ter a versão
v1.0
instalada em suas contas.
Atualização do aplicativo da versão v1.0 para a versão v2.0¶
Para realizar uma atualização da versão v1.0
para a versão v2.0
do aplicativo, o provedor define a diretriz de versão do pacote do aplicativo para a versão v2.0
. Isso inicia o processo de atualização do aplicativo nas contas dos consumidores.
Após a conclusão da atualização, os consumidores A e B têm a versão v2.0 instalada em suas contas, conforme mostrado no diagrama Figura 3.

Figura 3 - atualização da versão v1.0
para v2.0
¶
Além disso, nesse cenário, o provedor começou a desenvolver e testar a versão v3.0 em seu ambiente de desenvolvimento local.
Como descartar a versão v1.0 para poder criar a v3.0¶
Quando o teste é concluído, o provedor faz o upload da versão v3.0
para o estágio. Quando o provedor deseja iniciar a atualização para a versão v3.0
, ele deve primeiro garantir que todos os consumidores tenham migrado da versão v1.0
.
No cenário mostrado na seção anterior, todos os consumidores estão atualmente em v2.0
.
O provedor deve remover a versão v1.0
do pacote do aplicativo, conforme mostrado na Figura 4:

Figura 4 - descarte da versão v1.0
do pacote do aplicativo¶
Como adicionar a versão v3.0
ao pacote do aplicativo¶
Depois de descartar a versão v1.0
, o provedor pode adicionar a versão v3.0
ao pacote do aplicativo. Nesse contexto, a diretriz de versão ainda aponta para v2.0
e os consumidores têm o v2.0
instalado em suas contas.

Figura 5 - adição da versão v3.0
ao pacote do aplicativo¶
Atualização para a versão v3.0
¶
Para fazer upgrade para v3.0
, o provedor atualiza a diretriz de versão para apontar para v3.0
. Isso inicia a atualização. Quando o upgrade é concluído, os consumidores são atualizados para a versão v3.0
, conforme mostrado na figura a seguir:

Figura 5 - atualização para a versão v3.0
¶