Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preparation upgrade elasticsearch 7.10 bsds #2423

Merged
merged 3 commits into from
Aug 18, 2023

Conversation

elishowk
Copy link
Contributor

@elishowk elishowk commented May 30, 2023

Préparer le passage à Elasticsearch 7.10 pour l'index bsds sur notre hébergement

Procédures

  • À faire en recette, puis staging & production (les 2 en même temps car le code sur master ne sera compatible qu'avedc une version d'ES)
  • Tout sauvegarder avant de démarrer, et afficher les bandeaux d'avertissement aux utilisateurs front
  • Après chaque mise )à jour d'un cluster d'un environnement, faire des tests des dashboards
  • Deux modalités de mise à jour sur Scalingo : soit on met à jour via Scalingo le cluster ES existant (A), soit on crée un nouveau cluster vierge (B), et on bascule l'application backend sur le nouveau cluster, un fois la réindexation terminée, via la variable d'env ELASTIC_SEARCH_URL

Mode A (une indexation complète, mais downtime ES à craindre)

  • Tout sauvegarder avant de démarrer
  • Mettre en place le bandeau d'avertissement
  • Désactiver l'allocation des shards. Cela empêche le cluster de créer des répliques pendant la mise à jour.
PUT _cluster/settings
{
    "persistent": {
        "cluster.routing.allocation.enable": "none"
    }
}
  • Arrêter les worker d'indexation et laisser la job queue se vider des indexation actives
  • Lancer la màj via Scalingo du cluster existant, en même temps que la release du code correspondant.
  • Une fois terminée, il ne devrait pas y avoir de trous dans la raquette de l'index bsds mais les erreurs 500 du back-end pourront avoir déclenché des alertes si ES n'est plus disponible à un moment
  • Réactiver l'allocation des shards
PUT _cluster/settings
{
    "persistent": {
        "cluster.routing.allocation.enable": "all"
    }
}
  • redémarrer les worker d'indexation

Mode B (double indexation complète, mais pas de downtime ES à craindre)

  • Tout sauvegarder avant de démarrer
  • Mettre en place le bandeau d'avertissement sur le front
  • Créer le nouveau cluster ES sur staging & production
  • Lancer un container sur dev et changer la variable d'env ELASTIC_SEARCH_URL avant de lancer une réindexation complète, tout en passant à 4 container 2XL les worker d'indexation
  • Mettre la nouvelle ELASTIC_SEARCH_URL dans l'env des api staging et production
  • Release du code correspondant sur master
  • Relancer une seconde fois la réindexation complète (prévue sans downtime) car il se peut qu'il y ait des trous dans l'indexation, mais il n'y aura pas eu de pics d'erreurs dû à une indisponibilité ES.
  • Vérifier les settings du nouveau cluster : replicas, refresh interval.

Changements dans le code

Extra : allègement des réponses bulkIndex


@elishowk elishowk self-assigned this May 30, 2023
back/package.json Outdated Show resolved Hide resolved
@elishowk elishowk changed the title upgrade elasticsearch for dev Upgrade elasticsearch docker & pkg May 31, 2023
@elishowk elishowk force-pushed the fix/upgrade-elasticsearch-dev branch 2 times, most recently from 6a72997 to 8cd96a0 Compare May 31, 2023 12:09
@elishowk elishowk changed the title Upgrade elasticsearch docker & pkg Preparation upgrade elasticsearch server 7.10 Jun 1, 2023
@elishowk elishowk changed the title Preparation upgrade elasticsearch server 7.10 Preparation upgrade 18/07/2023 elasticsearch 7.10 bsds Jun 14, 2023
@elishowk elishowk marked this pull request as draft June 14, 2023 15:33
@elishowk elishowk changed the title Preparation upgrade 18/07/2023 elasticsearch 7.10 bsds Preparation upgrade elasticsearch 7.10 bsds Jun 26, 2023
@elishowk elishowk force-pushed the fix/upgrade-elasticsearch-dev branch 2 times, most recently from 0663265 to 6ad3f18 Compare June 28, 2023 10:42
@elishowk elishowk marked this pull request as ready for review July 28, 2023 07:29
@elishowk elishowk force-pushed the fix/upgrade-elasticsearch-dev branch from 7477e0b to 5656a3e Compare July 28, 2023 07:37
Copy link
Collaborator

@Riron Riron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Il faut coordonner la montée de version de l'ES de prod ? Comment ca se passe ?

@elishowk elishowk force-pushed the fix/upgrade-elasticsearch-dev branch 2 times, most recently from 33aee21 to 4c82f09 Compare July 31, 2023 10:22
@elishowk elishowk force-pushed the fix/upgrade-elasticsearch-dev branch from 4c82f09 to 477cbc8 Compare August 4, 2023 12:23
@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.5% 0.5% Duplication

@elishowk elishowk merged commit 3883db0 into dev Aug 18, 2023
@elishowk elishowk deleted the fix/upgrade-elasticsearch-dev branch August 18, 2023 13:30
@elishowk elishowk restored the fix/upgrade-elasticsearch-dev branch August 18, 2023 14:01
elishowk added a commit that referenced this pull request Aug 18, 2023
@elishowk elishowk deleted the fix/upgrade-elasticsearch-dev branch August 18, 2023 15:33
elishowk added a commit that referenced this pull request Aug 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants