Mise à niveau vers une nouvelle version majeure

IBM Cloud® Databases for Elasticsearch offre deux voies de mise à niveau différentes :

  • Mise à niveau en place vers une nouvelle version majeure (prise en charge pour Elasticsearch Enterprise Plan et Elasticsearch Platinum Plan).
  • Restauration à partir d'une sauvegarde (prise en charge pour Elasticsearch Enterprise Plan et Elasticsearch Platinum Plan).

Mises à jour de versions majeures en cours d'exécution

La mise à niveau de la version majeure en place vous permet de mettre à niveau votre déploiement vers la nouvelle version majeure suivante, éliminant ainsi la nécessité de restaurer une sauvegarde dans un nouveau déploiement. Cette approche permet de conserver les mêmes chaînes de connexion, sans qu'il soit nécessaire de reconfigurer le déploiement. Toutefois, si la nouvelle version majeure nécessite des ajustements de l'application, ceux-ci doivent être pris en compte.

Pendant la fenêtre de mise à niveau de la version majeure sur place (y compris une sauvegarde), le déploiement est configuré en mode LECTURE SEULE, qui n'autorise que les opérations de lecture, mais aucune opération d'écriture sur le déploiement, afin d'assurer une mise à niveau sûre. Un court intervalle d'indisponibilité de votre base de données est prévu dans le cadre normal d'une mise à niveau en place pour ce service géré. Dès que la mise à jour de la version majeure du déploiement est terminée, le mode READ-ONLY est supprimé.

Il existe deux options pour effectuer une mise à jour de version majeure sur place :

  • Mise à niveau de version majeure sur place avec sauvegarde : Ce chemin crée une sauvegarde avant d'effectuer la mise à niveau proprement dite, ce qui offre un niveau de sécurité supplémentaire (seule option pour le plan Platinum de Elasticsearch ).

  • Mise à niveau de la version majeure sur place sans sauvegarde : Cette option permet de procéder à la mise à niveau sans créer de sauvegarde au préalable. Si la mise à niveau sur place échoue, vous devrez restaurer votre déploiement à partir de la dernière sauvegarde dans un nouveau déploiement.

    Il n'est pas recommandé de procéder à une mise à niveau sur place sans sauvegarde. Il peut en résulter une perte de données si la mise à niveau échoue à un moment ou à un autre, car il n'y aura pas de sauvegarde immédiate à partir de laquelle restaurer les données.

Avant de commencer

Avant d'entamer la procédure de mise à niveau, il convient de tenir compte des aspects suivants.

  • Votre déploiement doit être en bon état avant la mise à niveau.
  • Votre déploiement doit disposer d'au moins 2 Go d'espace disque libre.
  • Vous ne pouvez passer qu'à la version majeure suivante, au lieu de spécifier la version de votre choix.
  • Chaque version majeure contient des fonctionnalités qui peuvent ne pas être rétrocompatibles avec les versions précédentes. Consultez les notes de mise à jour du fournisseur de la base de données pour connaître les modifications susceptibles d'affecter vos applications.
  • La rétrogradation d'un déploiement vers une version antérieure n'est pas prise en charge.
  • La mise à jour de la version majeure en place ne peut pas être annulée une fois qu'elle a commencé.
  • Pour Elasticsearch Platinum Edition, il doit y avoir au moins une sauvegarde disponible avant la mise à niveau pour s'assurer qu'une sauvegarde peut être prise après la mise à niveau.

Mise à niveau via l'interface utilisateur

  1. Créez un nouveau site Databases for Elasticsearch pour tester le processus de mise à niveau.
    Créez le déploiement en restaurant une sauvegarde de votre déploiement existant avec la même version.

  2. Pointez votre application staging vers le déploiement test.
    Mettez à jour votre application staging pour qu'elle pointe vers le déploiement test. Confirmez que votre application de test peut se connecter avec succès au déploiement par étapes et que l'application fonctionne comme prévu. Effectuer tous les tests de performance et de fonctionnement requis pour l'environnement de transition.

  3. Mettez à jour la version majeure de votre déploiement de test en cliquant sur le bouton Mettre à jour la version majeure sur la page de présentation.
    Cela mettra votre base de données en mode LECTURE SEULE pendant que le processus de mise à niveau se termine. Notez la durée de la mise à niveau afin de pouvoir utiliser le paramètre d'expiration de la mise à niveau pour contenir les mises à niveau dans votre fenêtre de maintenance.

  4. Confirmez que votre application de démonstration fonctionne avec la nouvelle version de la base de données.
    Si votre application fonctionne, cette étape confirme que vous pouvez mettre à jour votre base de données de production en toute sécurité.

  5. Mettez à jour le déploiement de votre base de données de production vers la nouvelle version.
    Une fois que vous avez confirmé que votre application fonctionne correctement en utilisant la nouvelle version de la base de données, vous pouvez retourner à la console de gestion et commencer le processus de mise à niveau de votre déploiement de production. Dans la section Détails du déploiement de la page Aperçu, cliquez sur le bouton Mettre à niveau la version majeure et suivez les étapes.

    Une fois que le processus de mise à niveau sur place a commencé, il ne peut pas être arrêté ou annulé. Ainsi, dans le cas improbable d'une erreur, le déploiement de votre base de données pourrait devenir irrécupérable. Par conséquent, créez une sauvegarde que vous pourrez ensuite utiliser pour restaurer un nouveau déploiement. Si vous sélectionnez "Mise à niveau de version majeure en place avec sauvegarde", la sauvegarde créée peut être utilisée pour restaurer un nouveau déploiement.

Le site expiration for starting upgrade vous permet de configurer un délai d'attente dans lequel la tâche de mise à niveau doit être lancée avant d'être automatiquement annulée. En outre, testez la mise à niveau en amont pour vous assurer qu'elle s'effectue dans les délais souhaités. Si, par exemple, vous souhaitez terminer la mise à niveau dans un délai d'une heure et que vous avez testé la mise à niveau et savez qu'elle prend 30 minutes, votre tâche de mise à niveau doit démarrer dans les 30 minutes qui suivent votre confirmation de la mise à niveau. Par conséquent, fixez l'expiration à 30 minutes, de sorte que si le programme ne démarre pas dans ce délai, il ne débordera pas de votre fenêtre.

Mise à niveau via l'API

Utilisez la commande suivante pour effectuer une mise à niveau sur place :

curl -X PATCH https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/version -H 'Authorization: Bearer <>' -H 'Content-Type: application/json' -d '{"version": "8.0"}'

Le site expiration for starting upgrade vous permet de configurer un délai d'attente dans lequel la tâche de mise à niveau doit être lancée avant d'être automatiquement annulée. En outre, testez la mise à niveau en amont pour vous assurer qu'elle s'effectue dans les délais souhaités. Si, par exemple, vous souhaitez terminer la mise à niveau dans un délai d'une heure et que vous avez testé la mise à niveau et savez qu'elle prend 30 minutes, votre tâche de mise à niveau doit démarrer dans les 30 minutes qui suivent votre confirmation de la mise à niveau. Par conséquent, fixez l'expiration à 30 minutes à partir de maintenant, de sorte que si elle ne démarre pas dans ce délai, elle ne dépassera pas votre fenêtre. L'expiration doit être comprise entre 5 minutes (par défaut) et 24 heures. Pour plus d'informations, voir l'API Cloud Databases.

Mise à niveau via l'interface de ligne de commande

Disponible dans la version du plugin CDB >= 0.20.0

Pour afficher la liste des transitions de mise à niveau et de restauration autorisées pour le déploiement :

ibmcloud cdb deployment-capability-show <NAME|CRN> versions

Pour mettre à jour la commande avec les paramètres requis :

ibmcloud cdb deployment-version-upgrade <NAME|CRN> <TARGET_VERSION>

Pour afficher tous les détails des paramètres de la commande :

ibmcloud cdb deployment-version-upgrade --help

Le site expiration for starting upgrade vous permet de configurer un délai d'attente dans lequel la tâche de mise à niveau doit être lancée avant d'être automatiquement annulée. En outre, testez la mise à niveau en amont pour vous assurer qu'elle s'effectue dans les délais souhaités. Si, par exemple, vous souhaitez terminer la mise à niveau dans un délai d'une heure et que vous avez testé la mise à niveau et savez qu'elle prend 30 minutes, votre tâche de mise à niveau doit démarrer dans les 30 minutes qui suivent votre confirmation de la mise à niveau. Par conséquent, fixez l'expiration à 30 minutes, de sorte que si le programme ne démarre pas dans ce délai, il ne débordera pas de votre fenêtre. L'expiration doit être comprise entre 5 minutes (par défaut) et 24 heures. Il y a deux façons de définir l'expiration en utilisant le CLI --expire-in ou --expire-at. Pour plus d'informations, consultez l'aide de la commande.

Mise à jour via Terraform

Disponible dans la version du fournisseur Terraform >= 1.79.2

Pour effectuer une mise à niveau, il suffit d'ajouter ou de modifier la valeur version dans votre configuration. Il existe également une option bool, version_upgrade_skip_backup, qui permet d'ignorer la sauvegarde.

Il n'est pas recommandé d'omettre une sauvegarde. L'omission d'une sauvegarde avant une mise à niveau de version est dangereuse et peut entraîner une perte de données. Si la mise à niveau échoue à un stade quelconque, il n'y aura pas de sauvegarde immédiate à partir de laquelle restaurer.

La base de données sera mise en mode LECTURE SEULE pendant la mise à jour. Il est fortement recommandé de faire un essai avant de procéder à la mise à niveau.

La mise à jour peut prendre plus de temps que le délai par défaut. Un délai plus long peut être défini à l'aide de l'attribut timeouts.

Terraform utilise des délais d'attente au lieu de timestamps d'expiration. Par conséquent, augmentez votre délai d'attente, car votre valeur de mise à jour du délai d'attente est utilisée comme expiration. Par exemple, si vous définissez un délai de 20 minutes, l'expiration sera fixée à 20 minutes et si la mise à niveau ne démarre pas dans ce délai, elle expirera et la mise à niveau ne démarrera pas. Notez que l'expiration maximale est de 24 heures. Ainsi, même si vous définissez un délai de 36 heures, la mise à niveau expirera si elle n'a pas commencé dans les 24 premières heures.

Si une mise à niveau est en cours, certaines tâches peuvent être mises en attente et ne seront pas exécutées tant que la mise à niveau de la version n'est pas terminée.

Traitement des incidents

Bilans de santé

Si une instance de service manque de ressources, la tâche échoue car une mise à niveau sûre ne peut être garantie dans ces circonstances. La consommation de ressources peut être évaluée à l'aide de l'intégration de la surveillance. Si tous les composants de la base de données ne sont pas disponibles pour être mis à niveau, la tâche de mise à niveau échoue.

Avant de commencer une mise à niveau de Elasticsearch, il est essentiel de vérifier que le cluster dispose de ressources suffisantes et qu'il est en bon état. S'assurer que l'état de santé de la grappe est VERT. Confirmez que l'utilisation du disque est inférieure à 85 % afin d'éviter les échecs de mise à niveau dus à un manque d'espace. Effectuer une vérification préalable secondaire pour détecter les dépréciations dans le cluster. Si des dépréciations sont constatées, le processus de mise à niveau s'interrompt et ne doit être relancé qu'une fois tous les problèmes résolus.

Ce problème peut être dû à la maintenance ou à l'utilisation de la base de données. Les tâches qui ont échoué en raison de l'échec des contrôles de santé peuvent être relancées ultérieurement. Si la tâche échoue continuellement, ouvrez un ticket d'assistance à l'adresse IBM Cloud.

Restauration depuis une sauvegarde

Avant qu'une version majeure d'une base de données n'atteigne sa fin de vie, mettez-la à niveau vers la version majeure suivante en restaurant une nouvelle instance de base de données à partir d'une sauvegarde.

Préparez-vous à utiliser la dernière version avant la date de fin de validité et à migrer vers celle-ci. Pour plus d'informations, voir Politique de versionnement.

Le retour en arrière n'est pas possible.

Passez à la dernière version d' Elasticsearch, disponible à l'adresse Databases for Elasticsearch. Trouvez la dernière version à partir de la page du catalogue, de la commande du plug-in CLI Cloud Databases ibmcloud cdb deployables-showou à partir du point de terminaison de l'API Cloud Databases /deployables de.

La mise à niveau s'effectue en restaurant une sauvegarde de vos données dans un nouveau déploiement. La restauration à partir d'une sauvegarde présente plusieurs avantages :

  • La base de données d'origine reste opérationnelle et le travail de production n'est pas interrompu.
  • Vous pouvez tester la nouvelle base de données hors production et prendre des mesures concernant les incompatibilités liées aux applications.
  • L'ensemble du processus peut être réexécuté à tout moment.
  • Une nouvelle restauration réduit la probabilité que les artefacts non nécessaires de l'ancienne version de la base de données soient reportés sur la nouvelle base de données.

Chemins de mise à niveau

Chemins de mise à niveau des versions majeures
Version en cours Chemin de mise à niveau de version principale
Elasticsearch 8.10 Elasticsearch 8.19
Elasticsearch 8.12 Elasticsearch 8.19
Elasticsearch 8.15 Elasticsearch 8.19
Elasticsearch 8.19 Elasticsearch 9.1

Mise à niveau via l'interface utilisateur

Pour les nouveaux modèles d'hébergement (calcul isolé et calcul partagé), la mise à niveau vers une nouvelle version majeure est disponible via le CLI et l'API.

Vous pouvez passer à une nouvelle version en restaurant une sauvegarde à partir de la page Sauvegardes et restaurations de votre déploiement sur la console IBM Cloud. Cliquez sur Restaurer la sauvegarde sur une sauvegarde pour ouvrir une page dans un nouvel onglet où vous pouvez modifier certaines options pour le nouveau déploiement. L'une d'entre elles est la version de base de données, indiquée automatiquement à partir des versions cible disponibles pour la mise à niveau. Sélectionnez une version, puis cliquez sur « Restaurer la sauvegarde » pour lancer le processus de provisionnement et de restauration.

Mise à niveau via l'interface de ligne de commande

Lorsque vous effectuez une mise à niveau et une restauration de la sauvegarde via l'interface de ligne de commande IBM Cloud, utilisez la commande de mise à disposition à partir du contrôleur de ressources.

ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE_ID> <SERVICE_PLAN_ID> <REGION>

Les paramètres instance_name, service_id, service_plan_id et region sont tous obligatoires. Vous fournissez également l'option -p avec les paramètres de version et d'ID de sauvegarde dans un objet JSON. Le nouveau déploiement est automatiquement dimensionné avec la même taille de disque et de mémoire que le déploiement source au moment de la sauvegarde.

ibmcloud resource service-instance-create example-upgrade databases-for-elasticsearch enterprise us-south \
-p \ '{
  "backup_id": "crn:v1:bluemix:public:databases-for-elasticsearch:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
  "version":"8.0"
}'

Mise à niveau via l'API

Tout comme pour le provisionnement via l'API, vous devez effectuer les étapes nécessaires à la mise en place de l'API du contrôleur de ressources avant de pouvoir l'utiliser pour effectuer une mise à niveau à partir d'une sauvegarde. Ensuite, envoyez à l'API une demande POST. Les paramètres name, target, resource_group et resource_plan_id sont tous obligatoires. Veuillez également indiquer la version et l'identifiant de la sauvegarde. Le nouveau déploiement possède la même allocation de mémoire et de disque que le déploiement source au moment de la sauvegarde.

curl -X POST   https://resource-controller.cloud.ibm.com/v2/resource_instances   -H 'Authorization: Bearer <>'   -H 'Content-Type: application/json'     -d '{
    "name": "my-instance",
    "target": "us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-elasticsearch-enterprise",
    "backup_id": "crn:v1:bluemix:public:databases-for-elasticsearch:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
    "version":"8.0"
  }'

Mise à jour via Terraform

Utilisez Terraform pour restaurer une sauvegarde d'une ancienne version vers une nouvelle version.

  1. Réglez votre backup_id. Pour plus d'informations, voir backup_id.
  2. Définissez votre version dans l'attribut de version. Pour plus d'informations, voir version.

Le code se présente comme suit :

resource "ibm_database" "<your-instance>" {
  name                                 = "<your_database_name>"
  service                              = "databases-for-elasticsearch"
  plan                                 = "enterprise"
  location                             = "<region>"
  version                              = "<version>"
  backup_id                            = "<backup_id>"
}

Pour plus d'informations, voir Cloud Databases Terraform Registry. Vous pouvez également utiliser Terraform IBM Modules(TIM) pour créer une nouvelle instance de base de données à partir d'une instance de sauvegarde. Pour plus d'informations, voir l'exemple de restauration à partir d'une sauvegarde.