3 days with 3 / 4 presentations each with people from Viadeo and outside, sharing their experiences developing and operating websites with complexe needs.
2. Retour vers le futur 3. The Puppet Master, «evil comes in all sizes» 4. The Foreman, le compagnon incontournable 5. Puppet «in da Pipe» 6. Retours d’expérience 7. Et maintenant ? 8. Questions
à petit 1,2 puis 3 serveurs L’Artisanat du serveur Installation manuelle Tests de versions en prod Scp, mon ami ! (Ou NFS ...) The «bleeding Edge» Archive *.tar.gz dans /usr/local Compilation manuelle des programmes Accès à la production Root every where (Je suis l’admin et pis c’est tout !) Privilèges d’ancien Les DNS ? Pourquoi faire ?
membres 3 Millions de profils vue par jours 500 000 Posts 200 000 Mise en relations quotidienne 80 développeurs 4 Sites de développement « World Wide » 1 écosystème varié Tomcat5, Tomcat6, Tomcat7 Java, Spring, NodeJS, Ruby Des technologies à maitriser Hadoop Solr Neo4J + de 200 Serveurs toutes plateformes confondues Une BI (Des datas, des datas, encore des datas) Des process métiers complexes
Plateforme de production Ubuntu 10.04 LTS - instable (Kernel Panic) PXE + ~ KickStart + Scripts d’installation maisons Des scripts (ou morceaux) à droite et à gauche Et c’est tout ! 1 Puppet Master 1 Nouvel OS : Debian 1 Apache + Mod_passenger Quelques modules «maisons» 1 Objectif de standardisation (Packages Debian) 1 Repository SVN pour l’exploit Détaché du produit viadeo (quand même)
modules «maisons» Encore trop spécifique – Pas de Submodules Git – Pas de suivit de la puppet-forge Trop de données «viadeo» dans les modules Evolutions en cours – Généralisation (Classes paramétrées) – Augeas > Templates > Files – Module «viadeo» core
central de provisioning Dashboard « Puppet » Etat des agents Inventaire des machines Aperçu de l’infrastructure (Environnements) Inventaire automatique Facts : Etat de configuration matériel / logiciel « temps réel » des serveurs LA « CMDB » : Adieux spreadsheet !
la chaine de développement Projet transverse : build automatique des projets 1 feature = 1 branche « viadeo » 1 branche = 1 environnement complet et dédié Déploiement automatique d’une infra 5 - Puppet « in Da pipe »
manuelle Scripts « d’automatisation » Difficile à maintenir Après Debian Squeeze « Stable » Applications « standard » en Packages Installation entièrement automatique Serveur opérationnel en 30min (modulo l’import de données) Consistance, automatisation 95% des serveurs de production sont « Puppetizés »
Flexibilité / Rigueur : PuppetCtl Puppet VS Packages VS Déploiement d’application Attention au redémarrage automatique des services Tester, tester et encore tester ! Puppet : Autoroute du bonheur ou Apocalypse Rspec Puppet + Travis RDoc + Graph des dépendances
2009 0.3 : Juin 2011 0.4.2 : Decembre 2011 1.0 : Juillet 2012 CMBD, point unique et centrale de référence / Evolution rapide du projet Niveau de confiance ? Suivre le projet et tester ! Attention Rapport Agents / Status de synchronisation
PuppetCtl : Désactiver Puppet de manière contrôlée, Foreman API Puppet 3.0 : Optimisation des performances Hiera : Data hierarchie et séparation, PuppetDB : Collecter, automatiser et capacité d’échelle, MCollective : Marionnette « Orchestration » Sensu : Monitoring and data collection Graphite : GDash IPMI : Hardware and Firmware Automation PowerDNS : On Rails + Foreman SP (Every thing as a Service)
trop spécifique – Pas de Submodules Git – Pas de suivit de la puppet-forge Trop de données «viadeo» Evolutions en cours – Généralisation (Classe paramettrées) – Augeas > Templates > Files