Le 27/04/21 à 16h45, nos workers sont devenus indisponibles suite à une opération de maintenance sur la base de données gérant la configuration du moteur et les configurations client. Le dashboard et les API sont devenus très lents voir indisponibles, et ont généré des erreurs.
L’opération de maintenance de la base de donnée visait à mettre à jour son code de configuration.
Certaines pages des sites des clients ont été ralenti, notamment les pages HTML non cachées et les fragments de Smartcache. Les pages en SmartCache provoquaient des redirections vers les versions non cachées.
A partir de 16h35, suite à la migration de la base de données de configuration, le renommage des nouvelles machines avec le nom des anciennes a généré un conflit dans la service discovery, ce qui a éjecté les nouvelles machines.
Conséquence, les DNS internes de la service discovery pour le service de base de données de configuration ne répondaient plus d’adresse IP. Sur les nouveaux workers utilisant la découverte de ce service via la service discovery, le service worker était toujours en attente de la récupération des fichiers de configuration et ne démarrait pas.
Le redémarrage des agents de service discovery a suffi à rétablir la situation, ce redémarrage ayant eu lieu avec la mise à jour de tous les workers.
D’autre part, l’indisponibilité de la base de données de configuration a aussi impacté l’ancienne API encore utilisée par le Dashboard (récupération du statut de branchement). Cette ancienne API, directement connecté à la base de données de configuration, n’avait plus non plus accès aux configurations pour la même raison et a généré des temps de réponse très long du Dashboard.
Un redémarrage de cette API a suffi à la forcer à refaire une résolution DNS via la service discovery et à retrouver la connexion à la base de données de configuration.
Niveaux de sévérité de l'incident :
Temps de détection : 10 minutes (16h45 ⇢ 16h55)
Temps de résolution : 45 minutes (16h45 ⇢ 17h30)
Durée de l’incident : 45 minutes
⅔ des pages ne sont pas optimisées. ⅓ des pages est ralenti (timeout de 500ms)
Un ticket client au sujet de redirection suite à des erreurs de Smartcache
Court terme :
English version
On 04/27/21 at 4:45pm, our workers became unavailable following a maintenance operation on the database managing the engine configuration and the client configurations. The dashboard and the APIs became very slow or even unavailable, and generated errors.
The database maintenance operation aimed at updating its configuration code.
Some pages of the clients' sites were slowed down, especially the non-cached HTML pages and the Smartcache fragments. The SmartCache pages caused redirects to the non-cached versions.
From 16:35, following the migration of the configuration database, the renaming of the new machines with the name of the old ones generated a conflict in the service discovery, which ejected the new machines.
As a result, the internal DNS of the service discovery for the configuration database service was no longer responding with IP addresses. On the new workers using service discovery for this service, the service worker was still waiting for the configuration files to be retrieved and would not start.
Restarting the service discovery agents was enough to restore the situation, as this restart took place with the update of all workers.
On the other hand, the unavailability of the configuration database also impacted the old API still used by the Dashboard (connection status management). This old API, directly connected to the configuration database, did not have access to the configurations for the same reason and generated very long response times of the Dashboard.
A restart of this API was enough to force it to redo a DNS resolution via the service discovery and to recover the connection to the configuration database.
Incident severity levels:
Detection time: 10 minutes (16h45 ⇢ 16h55)
Resolution time: 45 minutes (16h45 ⇢ 17h30)
Duration of the incident: 45 minutes