Introduction

Healthchecks.io a récemment migré vers un stockage d'objets autonome pour améliorer la performance et la fiabilité de son système. Cette décision a été prise après avoir rencontré des problèmes avec les fournisseurs de stockage d'objets gérés tels que OVHcloud et UpCloud.

Contexte Technique

Le système de Healthchecks.io utilise l'API S3 pour stocker les corps de requêtes des utilisateurs. Initialement, ils utilisaient OVHcloud, mais ont rencontré des problèmes de performance et de fiabilité. Ils ont ensuite migré vers UpCloud, mais ont encore rencontré des problèmes de performance. Pour résoudre ces problèmes, ils ont décidé de passer à un stockage d'objets autonome en utilisant Versity S3 Gateway et un système de fichiers Btrfs.

Le système actuel de Healthchecks.io utilise environ 119 Go de stockage pour 14 millions d'objets, avec des tailles d'objets allant de 100 octets à 100 000 octets. Le système doit supporter environ 30 opérations de téléchargement par seconde en moyenne, avec des pointes régulières à 150 téléchargements par seconde.

Analyse et Implications

La migration vers un stockage d'objets autonome a permis d'améliorer la performance et la fiabilité du système. Les latences des opérations S3 ont diminué, et la file d'attente des corps de requêtes en attente de téléchargement a diminué. Cependant, le coût du stockage a augmenté en raison de la location d'un serveur dédié supplémentaire.

Le système actuel utilise un serveur dédié pour l'API S3, qui écoute sur une adresse IP privée. Les objets sont stockés sur des disques locaux (deux disques NVMe en configuration RAID 1) et sont synchronisés avec un serveur de sauvegarde toutes les deux heures. Un processus de sauvegarde quotidien prend une sauvegarde complète, la crypte et la stocke hors site.

Perspective

La migration vers un stockage d'objets autonome a été une bonne décision pour Healthchecks.io, car elle a permis d'améliorer la performance et la fiabilité du système. Cependant, il est important de noter que le système actuel n'est pas sans risques, car les objets sont stockés sur un seul système qui peut échouer à tout moment. Il est donc important de surveiller de près le système et de mettre en place des mesures de sauvegarde et de reprise en cas de défaillance.

Il est également important de noter que le système actuel est encore en cours de test et que des améliorations peuvent être apportées pour améliorer la performance et la fiabilité. Healthchecks.io est ouvert à la possibilité de migrer à nouveau vers un système différent si des meilleures options sont disponibles.