Comment gérer 100 000 Machines chez Twitter ?

Quelques notes par rapport à la vidéo https://youtu.be/L3og0m9dRh8

Une base de données avec tous les serveurs :
  • Les serveurs
  • PDU
  • Switchs

etc..

  • Une API REST pour gérer tout ça et des libs
  • Utilisé par puppet et autre scripts
Gestion du boot :
  • Un système customisé de PXE, avec différents menus
Kernel (Wilson Image=
  • Un système standardisé
  • Une seule image tourne sur tous les hosts
  • Même OS, Kernel , Drive etc..
Stage Script
  • Une série de script bash, qui font différentes tâches, dans l'exemple : du wipe de disques
Service-Side ressources
  • Une série de scripts utiles sur chaque host
  • Mises à jour de bios
  • Scripts de gestion de raid
  • etc...
User-Facing Services (Wilson API / server Automation)
  • Gestion des hosts et des actions
  • Gestion des permissions
  • Reboot / boot
  • Tracking des événements (réussite/échec)
Exemples de CLI :
provctl reboot NomDuHost.twttr.net

Et ça reboot la machine

cat hosts.txt | provctl reinstall -

Réinstallation d'une série de hosts contenus dans le fichier hosts.txt

Mails d'alerte
  • Exemple d'un souci de boot sur disque