L’article explique comment optimiser une chaîne d’intégration continue (CI) en mettant en cache l’état d’une base de données pour éviter de régénérer les données à chaque build. L’idée centrale est de remplacer le rechargement systématique des fixtures et migrations par un snapshot (instantané) de la base, reconstruit uniquement lorsque les fichiers sources (migrations, fixtures) changent. Cela réduit considérablement le temps de CI, passant de 50 secondes à quelques secondes pour la préparation de la base, tout en garantissant la cohérence des données.
L’auteur détaille une implémentation concrète sur un projet Symfony utilisant Castor pour l’automatisation et des runners GitHub Actions auto-hébergés. Le cache est partagé entre les jobs via des dossiers locaux, mais une solution équivalente est possible avec les caches natifs de GitHub. L’empreinte du snapshot est calculée à partir des fichiers déterminants (migrations, fixtures), permettant une invalidation automatique et fiable du cache.
Enfin, l’article souligne que cette méthode évite les écueils des dumps statiques (obsolescence ou régénération inutile), tout en restant compatible avec des architectures distribuées. L’approche est présentée comme une alternative efficace aux techniques classiques d’optimisation de CI, avec un gain de temps significatif pour les projets où les modifications des données sont rares.
L'article explique comment créer des snapshots de volumes persistants dans Kubernetes en utilisant Rook-Ceph. L'auteur décrit d'abord l'utilisation de VolSync pour les sauvegardes, mais souligne ses limites avec les snapshots. Il détaille ensuite l'installation du CSI Snapshotter et la création d'une VolumeSnapshotClass pour configurer les paramètres de snapshot. L'article montre comment créer un PersistentVolumeClaim (PVC) et un Pod pour tester les snapshots, et comment créer et restaurer un snapshot. Enfin, il mentionne l'utilisation de DataMover comme Velero pour stocker les snapshots vers un stockage distant et évoque les prochaines étapes pour tester ces outils dans son lab.
Tout est dans le titre
Tout est dans le titre