Mettre à jour une application

Cette rubrique fournit des informations sur la mise à niveau d’une Snowflake Native App.

À propos des mises à niveau

Le Snowflake Native App Framework permet aux fournisseurs de mettre à niveau une application vers une nouvelle version ou un nouveau correctif. Pour savoir comment les mises à niveau s’intègrent dans le processus global de développement d’une nouvelle version ou d’un correctif d’une application, consultez le Processus de mise à jour d’une application.

Les fournisseurs peuvent lancer la mise à niveau d’une application vers une nouvelle version ou un nouveau paquet d’application en paramétrant une directive de version sur le paquet d’application. Lorsque la directive de version est modifiée, Snowflake met automatiquement à niveau toutes les instances installées de la version actuelle de l’application vers la version spécifiée par la directive de version.

Lorsque le fournisseur lance une mise à niveau, Snowflake ajoute chaque application à mettre à niveau à une file d’attente. Chaque application est mise à jour au fur et à mesure de la disponibilité des ressources. Le processus de mise à niveau peut prendre un certain temps pour s’achever sur l’ensemble des versions installées de l’application. Pour accélérer le processus de mise à niveau, les consommateurs peuvent également lancer manuellement la mise à niveau d’une application lorsqu’une nouvelle version ou un correctif est disponible.

Note

Après le début du processus de mise à niveau de leur application, les consommateurs ne peuvent plus mettre à jour manuellement l’application.

Mise à niveau du flux de travail

Un fournisseur met à niveau une application installée via le workflow suivant :

  1. Mettez à jour l’application pour y inclure toute nouvelle fonction.

  2. Si vous créez une nouvelle version de l’application et que deux versions sont actuellement définies pour l’application :

    1. Assurez-vous qu’aucun consommateur n’utilise actuellement cette version.

    2. Déposez la version de l’application que vous remplacez.

  3. Créer une nouvelle version ou un nouveau correctif pour les modifications apportées au paquet d’application.

    Si la propriété DISTRIBUTION du paquet d’application est définie sur EXTERNAL, l”analyse de sécurité automatisée est lancée. L’analyse de sécurité doit s’effectuer correctement avant que la mise à niveau puisse avoir lieu.

  4. Testez la nouvelle version en créant l’installation de l’application dans votre compte de test.

  5. Mettez à jour la directive de version pour la version ou le correctif.

    Cette opération lance une mise à niveau automatisée qui mettra à jour toutes les instances installées de la version précédente. Un fournisseur peut avertir le consommateur qu’une mise à niveau est disponible et lui demander de mettre à niveau manuellement l’application.

Démarrer une mise à niveau

Le processus de mise à niveau démarre automatiquement lorsqu’un fournisseur met à jour la directive de version (par défaut ou personnalisée) du paquet d’application pour qu’elle pointe vers une nouvelle version ou un nouveau correctif. Utilisez la commande ALTER APPLICATION PACKAGE … RELEASE DIRECTIVE pour paramétrer la directive de version comme indiqué dans les exemples suivants :

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

Cette commande définit la directive de version par défaut sur la version v2 et le correctif 0.

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

Cette commande définit la directive de version personnalisée nommée my_custom_release_directive sur la version v2 et le correctif 0 pour le compte USER_ACCOUNT. snowflakecomputing.com.

Pour plus d’informations, voir Définir la directive de version d’une application.

Mise à niveau manuelle d’une application

Les mises à niveau manuelles permettent à un consommateur de mettre à jour son programme d’installation plus rapidement que les mises à niveau automatisées. Lorsqu’une nouvelle version ou un nouveau correctif est disponible, un fournisseur peut demander au consommateur d’effectuer une mise à niveau manuelle.

Le consommateur effectue une mise à niveau manuelle en exécutant le programme ALTER APPLICATION. Cette commande lance la mise à niveau d’une version installée ou d’un correctif d’une application en utilisant la directive de version spécifiée dans le paquet d’application.

Pour mettre à niveau une Snowflake Native App installée à la dernière version disponible, un consommateur peut utiliser la clause UPGRADE de la commande ALTER APPLICATION pour modifier l’objet de l’application :

ALTER APPLICATION <name> UPGRADE
Copy

Mise à niveau d’une application dans plusieurs régions

Après la mise à niveau d’une application, les modifications apportées à l”Snowflake Native App dans le compte du consommateur peuvent ne pas être visibles tant que l’actualisation des régions distantes n’est pas effectuée.

Vous pouvez utiliser le Vue APPLICATION_STATE dans le schéma Utilisation de Data Sharing pour contrôler le statut. Si la mise à niveau n’est pas terminée plus d’un jour après la première actualisation suivant la mise à niveau, il se peut qu’il y ait un problème avec le processus d’actualisation. Contactez l’assistance Snowflake.

Si un fournisseur publie une Snowflake Native App via Exécution automatique inter-Cloud, les mises à niveau automatisées peuvent prendre un certain temps en fonction de plusieurs facteurs, notamment :

  • La valeur de la planification d’actualisation.

  • Le nombre d’instances installées de l’application.

  • Le nombre de régions dans lesquelles l’application est déployée.

Si la mise à niveau contient une correction urgente qui doit être mise à jour dans une région distante, le fournisseur peut réduire la fréquence d’actualisation de l’annonce à une valeur plus petite. Voir CContrôle et gestion des paramètres de l’exécution automatique pour des informations sur le paramétrage de la fréquence d’actualisation au niveau du compte.

Prudence

La réduction de la fréquence d’actualisation peut augmenter les coûts associés à la réplication.

États de mise à niveau

Au cours du processus de mise à niveau, l’application passe par différents états. Le diagramme suivant montre les états possibles lors de la mise à niveau de la version précédente, v1, vers une nouvelle version, v2.

Note

Bien que ce diagramme montre une mise à niveau pour une version, il s’applique également aux mises à niveau de correctifs.

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

Le tableau suivant présente chaque zone de préparation de la procédure de mise à niveau pour une application dans la même région que celle où se trouve le paquet d’application :

Zone de préparation

Description

1

L’application est désactivée ?

Si l’application est désactivée, aucune mise à niveau n’est possible.

2

Définir les directives de version sur v2.0

Le fournisseur définit la directive de version sur v2.0.

3

Éligible à la mise à niveau

Snowflake effectue des contrôles pour vérifier que l’application est éligible à la mise à niveau. Ces contrôles consistent notamment à vérifier que l’application n’est pas désactivée, que le paquet d’application est disponible, que la version et le correctif sont valables pour la mise à niveau, que le compte du consommateur est valide, etc.

4

Obtenir un emplacement de mise à niveau ?

En fonction du nombre d’applications en cours de mise à niveau, du nombre de comptes de consommateurs, etc. il se peut qu’ils doivent attendre avant de commencer le processus de mise à niveau.

5

Le script d’installation s’est-il déroulé correctement ?

Lorsque la mise à niveau commence, Snowflake exécute le script d’installation. En cas d’erreur non détectée, l’exécution du script d’installation s’arrête. Snowflake remet l’application en file d’attente pour une nouvelle mise à niveau en fonction du nombre de tentatives configurées.

6

La version est-elle mise à jour ?

Snowflake vérifie si la mise à niveau concerne une version ou un correctif. Si la mise à niveau concerne une version, Snowflake effectue des contrôles supplémentaires et attend que tous les travaux de l’ancienne version de l’appli soient terminés.

Le tableau suivant présente le processus de mise à niveau pour les applications déployées dans des régions distantes :

Zone de préparation

Description

7

Directive de version v2.0 répliquée dans une région distante

Lorsqu’un fournisseur définit la directive de version pour une application déployée dans une région distante, la directive de version est propagée au paquet d’application déployé dans la région distante.

8

Région active pour la version v2.0 ?

Lorsque la plupart des applications de la région principale ont été mises à niveau, Snowflake envoie des messages à la région distante pour commencer la mise à niveau des applications.

9

Commencer le processus de mise à niveau

Commencez le processus de mise à niveau de l’application comme décrit dans le tableau précédent.

La tableau suivant décrit chacun des états possibles du processus de mise à niveau :

État

Description

DISABLED

L’application est désactivée et ne peut pas être mise à niveau.

QUEUED

L’application est dans la file d’attente pour être mise à niveau en fonction du nombre d’applications et de comptes de consommateurs.

UPGRADING

L’application est en cours de mise à niveau.

COMPLETED

L’application a été mise à niveau avec succès.

QUEUED_RETRY

Le script de configuration ou un autre contrôle a échoué et l’application est renvoyée dans la file d’attente de mise à niveau.

FAILED

La mise à niveau de l’application a échoué. Les mises à niveau peuvent échouer du côté du fournisseur, par exemple en raison d’une erreur dans le script d’installation. Les mises à niveau peuvent également échouer du côté du consommateur si l’application est désactivée, si le compte du consommateur est inactif, etc.

Contrôler l’état d’une mise à niveau

Pour voir l’état de la mise à niveau d’une application, utilisez la rubrique Vue APPLICATION_STATE.

Par exemple, dans une situation où vous avez mis à niveau la directive de version par défaut et souhaitez voir si toutes les applications ont atteint la version cible. Pour trouver les instances d’application qui n’ont pas encore terminé la mise à niveau, utilisez la requête de l’exemple suivant :

SELECT * FROM snowflake.data_sharing_usage.APPLICATION_STATE
Copy

Cette vue comprend des colonnes spécifiques aux mises à niveau, notamment l’état de mise à niveau et la région dans laquelle l’application est déployée. Pour des informations sur les états de mise à niveau, voir États de mise à niveau.

Résoudre les problèmes de mise à niveau

Le Snowflake Native App Framework propose plusieurs moyens de résoudre les problèmes liés à la mise à niveau :

Identifier les erreurs de mise à niveau

Les consommateurs peuvent utiliser la commande DESCRIBE APPLICATION pour voir les messages d’erreur relatifs aux échecs de mise à niveau. Cette commande permet de connaître les erreurs qui se sont produites au cours du processus de mise à niveau.

Les fournisseurs peuvent utiliser le Vue APPLICATION_STATE pour voir les messages d’erreur concernant les échecs de mise à niveau. Grâce à cette vue, les fournisseurs peuvent diagnostiquer les problèmes liés à des applications spécifiques. Pour plus d’informations, voir Contrôler l’état d’une mise à niveau.

Utiliser la journalisation et le traçage des événements

Si la journalisation et le traçage des événements est configuré pour l’application, les fournisseurs peuvent interroger la table des événements pour diagnostiquer les problèmes liés à la mise à niveau de l’application.

Pour plus d’informations, voir Voir les journaux et les événements dans la table d’événements.

Contrôler l’état des services d’une application

Pour voir les informations sur le statut d’un pool de calcul ou d’un service dans une application, les consommateurs peuvent utiliser les fonctions système suivantes :

Les consommateurs peuvent transmettre ces informations aux fournisseurs. Les fournisseurs peuvent également configurer le partage d’événements pour qu’il renvoie ces informations.

Applications désactivées

Lorsqu’une application installée dans le compte du consommateur est désactivée, elle n’est plus utilisable. Une application installée sur le compte d’un consommateur peut être désactivée pour de multiples raisons, notamment :

  • Problèmes liés au paquet d’application

  • Problèmes liés à l’application installée

  • Problèmes avec le compte consommateur

Les fournisseurs comme les consommateurs doivent éviter les situations où une application reste désactivée pendant une période prolongée. Les applications désactivées peuvent devenir inutilisables et doivent être réinstallées

Mise à niveau d’une application désactivée

Les applications désactivées ne font pas partie du processus normal de mise à niveau et ne peuvent pas être mises à niveau. Si une application désactivée est réactivée, elle est automatiquement mise à niveau vers la version et le correctif de la directive de version. Toutefois, si la version ou le correctif n’est plus disponible, l’application ne peut pas être mise à niveau et doit être réinstallée.

Par exemple, si une application désactivée est de la version v1, mais que les versions actuelle et précédente du paquet d’application sont v2 et v3, l’application ne peut pas être mise à niveau et est inutilisable.

Raisons pour lesquelles une application peut être désactivée

Vous pouvez consulter la colonne DISABLEMENT_REASONS de Vue APPLICATION_STATE pour connaître les raisons pour lesquelles une application est désactivée. Le tableau suivant répertorie les valeurs possibles pour la colonne DISABLEMENT_REASONS :

Valeur

Description du statut

Est-ce récupérable ?

MANUALLY_DISABLED

L’application est désactivée par Snowflake

Oui. Pour réactiver l’application, contactez le support Snowflake.

ACCOUNT_INACTIVE

Le compte devient inactif en étant verrouillé ou suspendu, ce qui rend l’application indisponible. Dans cet état, un consommateur ne peut exécuter aucune requête SQL dans leur compte et l’application ne peut pas être mise à niveau.

Oui. L’application est automatiquement réactivée si le verrouillage ou la suspension du compte est supprimé

PACKAGE_VERSION_IS_MISSING

La version du paquet d’application pour l’application a été supprimée par le fournisseur.

Non. L’application ne peut plus être utilisée et doit être supprimée et réinstallée à partir d’une annonce ou d’un paquet d’application valide.

CMK_ACCESS_DENIED

Le consommateur gère lui-même la clé de chiffrement (ENCRYPT_USE_CMK_KMS est activé) et Snowflake n’a pas accès à cette clé.

Oui. Pour réactiver l’application, assurez-vous que la configuration du fournisseur Cloud permet de récupérer le CMK est correcte et que Snowflake a accès à la clé.

LISTING_ACCESS_REVOKED

L’annonce utilisée pour créer l’application n’est plus disponible. Les raisons possibles de ce statut incluent :

  • Le fournisseur a supprimé l’annonce

  • Le fournisseur a supprimé manuellement l’accès à l’annonce privée du compte du consommateur

Peut-être. La récupérabilité dépend de la raison pour laquelle l’accès a été révoqué.

Par exemple, si l’annonce a été supprimée, elle ne peut pas être récupérée. Si un compte consommateur a été supprimé manuellement de l’annonce privée, l’accès à l’annonce et à l’application peut être restauré.

LISTING_TRIAL_USAGE_EXCEEDED

L’application a dépassé la limite d’utilisation pour une annonce d’essai basée sur l’utilisation.

Non

LISTING_PAYMENT_REQUIRED

L’annonce utilisée pour installer l’application est une annonce payante et nécessite un paiement pour une utilisation ultérieure.

Oui. Le consommateur doit configurer correctement le paiement de l’application.

LISTING_TRIAL_TIME_EXCEEDED

L’application a dépassé la durée de l’essai.

Non

APPLICATION_PACKAGE_NOT_AVAILABLE

Le paquet d’application utilisé pour créer l’application n’existe plus. Il est possible que le fournisseur ait supprimé le paquet d’application correspondant.

Non

APPLICATION_PACKAGE_DISABLED

Le paquet d’application utilisé pour créer l’application est désactivé par Snowflake.

Oui. L’application est réactivée si Snowflake réactive le paquet d’application.

APPLICATION_SUSPENDED

Les ressources de l’application, par exemple les tâches, les services et les pools de calcul, sont suspendues en raison de la désactivation de l’application.

Les objets suspendus restent suspendus jusqu’à ce que l’application soit réactivée et qu’il n’y ait aucune autre raison pour laquelle l’application a été désactivée.

Oui

APPLICATION_SUSPEND_RESUME_IN_PROGRESS

Les ressources de l’application, par exemple les tâches, les services et les pools de calcul, reprennent actuellement.

Oui