Fenêtres de maintenance : Des maintenances transparentes au moment qui vous convient le mieux

14 mai 2024 - 5 min de lecture
Fenêtres de maintenance : Des maintenances transparentes au moment qui vous convient le mieux

En tant que premier fournisseur français et européen de Platform-as-a-Service certifié ISO 27001, nous nous engageons à vous offrir une plateforme fiable et sécurisée, évoluant au rythme des menaces potentielles et de votre croissance.

C’est comme cela que nous est venue l’image du jardinier. Pour maintenir l’harmonie globale de son jardin et le voir prospérer, il doit régulièrement arroser ses plantes, tailler ses arbustes et désherber ses parcelles. De la même manière, nous assurons une maintenance régulière et proactive de notre système pour le garder résilient et florissant.

Scalingo intègre désormais des fenêtres de maintenance pour toutes vos bases de données. Cette nouvelle fonctionnalité nous permettra d’opérer des changements réguliers à tous les niveaux de notre architecture, tout en assurant une communication adaptée et en minimisant les perturbations pour vos applications. Chaque opération de maintenance sera exécutée au moment qui vous convient le mieux : celui où l’impact pour votre activité est le plus faible.

If it ain’t broke, don’t fix it ?

Ce vieil adage n’est plus à l’ordre du jour chez Scalingo ! La complexité des systèmes et des infrastructures s’accroît de jour en jour et il pourrait être aisé de se laisser dépasser par la myriade de dépendances qui constituent les architectures logicielles modernes.

La backdoor introduite dans XZ Utils est la parfaite illustration qu'un petit composant logiciel anodin peut représenter un risque de sécurité important !

Pour maintenir et faire évoluer un système complexe, de nombreuses opérations (de tailles très variables) sont nécessaires pour mettre à jour et optimiser le fonctionnement des briques techniques qui supportent vos applications. Cela peut concerner le système d’exploitation hôte (pour combler failles et vulnérabilités), des composants réseaux (pour mieux isoler vos ressources) ou encore l’équilibrage global de la charge entre nos serveurs (pour une performance prévisible et constante).

Une autre logique

Jusqu'à présent chez Scalingo, les maintenances des bases de données étaient gérées comme de l'infrastructure en tant que code (IaC). Cela impliquait l’exécution de processus manuels, qui s'étendaient de la définition technique de la maintenance, jusqu’à sa communication avec les clients concernés.

Les maintenances étaient notifiées à l'avance, mais imposées, et cela sans aucune flexibilité pour nos clients. Ce manque de flexibilité se faisait également ressentir de notre côté. Sans pouvoir effectuer un traitement différencié et spécifique pour chacune de vos applications et bases de données, nous avons dû limiter l’impact pour le plus grand nombre et demander à nos équipes de les exécuter de nuit.

À l’image de notre ami jardinier, nous avons souhaité changer de paradigme et mettre en place une nouvelle approche que l’on pourrait qualifier par “Embracing Continuous Change” !

Nous avons souhaité une approche qui pourrait nous permettre d’opérer des changements réguliers à tous les niveaux de notre architecture, tout en assurant une communication adaptée et en limitant au maximum les perturbations pour vos applications.

Pour relever ce défi, nous avons choisi de déployer une solution automatisée de gestion des opérations de maintenance de bases de données.

Utilisant les Fenêtres de Maintenance de Base de Données, ce système prend en charge l’exécution des opérations de maintenance au moment que vous avez choisi ! L'impact sur votre application est ainsi minimisé et maîtrisé, tout en facilitant la conduite du changement et l'amélioration continue de notre plateforme.

Choisir la bonne période de maintenance

Dès à présent, toute opération impliquant une base de donnée, qu’elle concerne un changement d’architecture ou de logiciel, se déroulera lors de la fenêtre de maintenance que vous aurez définie.

Chacune de vos bases de données dispose désormais d'une Fenêtre de Maintenance par défaut, définie sur un jour de la semaine, entre 21 h 00 et 05 h 00 UTC. Si cette plage horaire ne correspond pas aux spécificités de votre activité, vous avez la flexibilité de l'ajuster à loisir.

À l'aide de notre interface en ligne de commande (version 1.31.0 et ultérieure) et bientôt directement dans notre dashboard, vous pouvez sélectionner la fenêtre de 8 heures la plus adaptée à votre activité.

Ma base de données sera t-elle indisponible pendant 8 heures ?

Bien que la Fenêtre de Maintenance définie s'étende sur 8 heures, il est important de noter que le temps d'indisponibilité réel de votre base de données sera certainement plus court. La durée réelle d’une maintenance dépend de nombreux facteurs tels que la nature de l'opération, la taille de votre base de données et le plan sélectionné.

Notre équipe travaille activement à minimiser les périodes d’indisponibilité et à garantir le bon fonctionnement de vos applications.

Anatomie d’une maintenance

Lorsqu’une opération de maintenance est planifiée, les opérateurs de Scalingo notifient le propriétaire de l’application concernée, ainsi que ses éventuels collaborateurs.

Voici les différentes étapes qui composent une fenêtre de maintenance :

  1. Définition : un opérateur de Scalingo définit une nouvelle maintenance. Cet entité nous permet d’y rattacher tous les éléments importants à son bon déroulement (procédure, rollback, test d’intégrité, etc).
  2. Sélection : en fonction des critères spécifiques à chaque maintenance, les bases de données éligibles lui seront assignées.
  3. Planification : toutes les heures, notre système va planifier les opérations qui seront exécutées 24 heures plus tard. Si cela correspond à la fenêtre de maintenance d’une ressource éligible, alors une notification vous sera envoyée pour vous confirmer sa planification. À partir de ce moment-là, il ne sera plus possible de modifier ou d’annuler cette opération sans prendre contact avec notre équipe support.
  4. Exécution : lorsque l’opération débute, vous recevrez une nouvelle notification. Il sera alors important de limiter toute manipulation sur votre base de données.
  5. Opération terminée : une dernière notification vous signifiera cette fois ci la fin de l’opération ! Le service nominal a été rétabli, votre base est à nouveau pleinement opérationnelle.

Si le temps restant dans la fenêtre de maintenance sélectionnée est insuffisant, il est possible que nous jugions que l'opération ne puisse pas avoir lieu. Dans ce cas, elle sera automatiquement replanifiée pour la prochaine fenêtre de maintenance, généralement la semaine suivante.

Partager l’information avec votre équipe

Par défaut, le propriétaire de l’application et ses éventuels collaborateurs recevront des notifications par e-mail, avant l'exécution d’une opération de maintenance.

Pour cela, nous avons ajouté trois nouveaux déclencheurs à notre système de notifiers. Nous les avons également automatiquement activées pour le notifier par défaut qui est crée avec chacune de vos application. Nous vous invitons à vérifier son activation ou à en créer un spécifique aux opérations de maintenance.

Trois nouveaux déclencheurs sont désormais dédiés aux maintenances :

  • database_maintenance_planned : Une maintenance de base de données a été planifiée
  • database_maintenance_started: La maintenance de base de données a commencé.
  • database_maintenance_completed: La maintenance de base de données est terminée.

Les premières maintenances

De nombreuses maintenances relatives à vos bases de données sont en cours de préparation :

  • À brève échéance, nous allons vous proposer de mettre à jour la méthode d’authentification utilisée par vos bases de données PostgreSQL (de MD5 vers SCRAM) pour en augmenter la sécurité et préparer une prochaine migration vers PostgreSQL 15 !
  • Suivra un peu plus tard, l’automatisation des mises à jour de vos bases afin de garantir l’application des derniers correctifs et de gérer les fins de vie des versions obsolètes. Ainsi, conformément au plan annoncé, débuteront au début de l’été les opérations de mises à jour automatiques de vos instances MySQL 5.7 vers MySQL 8 LTS.
  • En outre, des opérations de maintenance seront effectuées pour migrer les composants de la base de données entre nos serveurs afin de libérer les ressources sous-jacentes et de garantir que vos bases de données fonctionnent sur les systèmes les plus récents et optimisés.

Et pour les urgences ?

Dans de rares cas, des opérations urgentes et imprévues peuvent survenir. Nous avons tous en mémoire les failles d’OpenSSL, Log4Shell ou Heartbleed. Ces incidents ont demandé une réponse rapide et coordonnée de la part de toute l’industrie.

Lors de tels évènements, mais aussi lors d’incidents d’infrastructure, des opérations pourront être effectuées en dehors des fenêtres de maintenances planifiées. Soyez assuré que la disponibilité et l’intégrité des vos données sont au cœur de nos attentions. Nous ferons toujours notre maximum pour vous informer de la manière la plus transparente et efficace qu’il soit.

Construire l’avenir pas à pas

Nous allons opérer des changements majeurs afin de renforcer et d'élargir les fonctionnalités de la plateforme Scalingo. En Embrassant le Changement et en vous offrant la possibilité de mieux maîtriser son impact sur vos applications, nous espérons conserver votre confiance tout en construisant avec vous le futur de Scalingo !

Partager l'article
Benjamin Ach
Benjamin Ach
Benjamin est Product Manager chez Scalingo : un pied dans la technique, un pied dans le business et un autre dans l’experience utilisateur. Son objectif ? Que votre expérience du PaaS Scalingo impacte positivement vos habitudes de développement logiciel !

Essayez gratuitement Scalingo

30 jours d'essai gratuit / Pas de CB nécessaire / Hébergé en France