Outils d'automatisation · 3 min read · Dec 10, 2025

Genesis, un nouvel outil d'automatisation des centres de données par Tumblr

Tumblr publie un nouvel outil d’automatisation des centres de données - “GENESIS”

Genesis, un outil d’automatisation des centres de données, a été publié par Tumblr, ce qui rationalisera le processus de découverte de nouvelles machines et de rapport des détails matériels à Collins, une partie du système de gestion des stocks de Tumblr. L’outil est très pratique pour effectuer des configurations matérielles telles que la modification des paramètres du BIOS et la configuration des cartes RAID avant de provisionner un système d’exploitation sur l’hôte.

Genesis a été développé par les équipes d’ingénierie de fiabilité du site et de datacenter chez Tumblr et maintenant Genesis est open-source sous la licence Apache et est disponible sur Github.

Lire aussi - Meilleures alternatives à Tumblr

L’outil comprend une image Linux simplifiée adaptée au démarrage par PXE et un langage spécifique au domaine (DSL) basé sur Ruby pour décrire les tâches à exécuter sur l’hôte. Genesis DSL crée la tâche en fonction des paquets installés et des commandes exécutées facilement. Des exemples de tâches incluent la tâche TimedBurnin, qui effectue un test de stress sur le système pour éliminer les erreurs matérielles avant de le mettre en production, et BiosConfigrR720, qui configure le BIOS sur les Dell R720 exactement comme nous le souhaitons.

Il y a peu de systèmes en dehors de Genesis qui doivent être en place pour un déploiement réussi. Ceux-ci sont :

  • un serveur DHCP,
  • un serveur TFTP,
  • un serveur HTTP,

Le projet Genesis sur Github INSTALL.md fournit des instructions supplémentaires et inclut également les options de configuration du serveur nécessaires.

Lorsqu’une machine démarre, le serveur DHCP indique au firmware PXE de démarrer en chaîne vers iPXE. L’iPXE est ensuite utilisé pour présenter une liste de choix de menu, récupérée à partir d’un serveur distant. Lorsque l’utilisateur a fait un choix, le noyau Genesis est chargé et initrd (à partir du serveur de fichiers) avec des paramètres sur la ligne de commande du noyau. Une fois que le système d’exploitation Genesis a été chargé, le genesis-bootloader récupère et exécute un script Ruby décrivant une seconde étape où nous installons des gems, quelques RPM de base, et récupérons nos tâches à partir d’un serveur distant. Enfin, nous exécutons les tâches pertinentes.

Prenons un exemple ; considérons un tout nouveau serveur qui démarre. Il fait une demande DHCP et charge le menu iPXE. Dans ce cas, nous devions nous rappeler que nous ne connaissons pas l’adresse MAC d’avant, donc cela doit être une nouvelle machine. Nous démarrons ensuite Genesis en mode découverte, où les tâches qu’il exécute sont écrites pour récupérer toutes les informations matérielles dont nous avons besoin et les rapporter à Collins. Dans notre configuration, cela inclut des informations telles que les disques durs et leur capacité et le nombre de CPU, mais si vous souhaitez obtenir des informations détaillées concernant les étiquettes de service, les banques de mémoire utilisées, le nom des ports de commutation, nous devons suivre cela avec 48 heures de test de stress matériel en utilisant la tâche TimedBurnin.

La page web du projet Collins sur Github indique que cette application est très vitale car elle fournit une source de vérité et de connaissance pour l’ensemble de l’infrastructure de Tumblr. Toutes les données liées aux environnements de production de Tumblr sont stockées et encodées dans Collins, et ces données sont utilisées pour piloter toute l’automatisation des centres de données de Tumblr.

L’outil a été créé comme un système qui s’occupera de tous les serveurs physiques, commutateurs et racks dans les environnements de production de Tumblr, et a évolué pour également prendre en charge l’inventaire du matériel, des adresses IP et des logiciels. La démonstration montre que l’API Collins de Tumblr et les données sont un excellent mécanisme pour piloter les processus d’automatisation. Collins fournit désormais un déploiement de cluster par bouton-poussoir, génère des configurations lorsque les topologies de cluster matériel changent, pilote les mises à jour d’infrastructure lorsque la configuration logicielle change, et aide à gérer les déploiements de logiciels.

“Genesis est encore aux premiers stades de développement et bien que nous ayons atteint de nombreux objectifs que nous nous étions fixés, il reste encore beaucoup à faire”, déclare le blog Tumblr. Tumblr a ajouté : “Si vous trouvez un bug ou avez une idée cool, faites-le nous savoir et impliquez-vous en contribuant du code et de la documentation ou en participant avec des questions et des suggestions.”

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.