SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
Ops@viadeo : Puppet & Co.
  This is time for the «Puppet» show !




                            Xavier Krantz

                   Viadeo Tech Days 2012
Plats à la carte



1. L’infra de Viadeo : aperçu
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
1 - L’infra : Aperçu

         Is that so bad ?
1 - L’infrastructure Aujourd’hui

                                                                          2 Lb   2 Fw


               App1              App2                  App3
                                                                ...                  App3




                                                                                 ~ 60 Fronts
                                        ~15 Memcached




    Cluster1          Cluster1              Cluster1




~ 40 MySQL                                                    ~ 20 Solr      Neo4j Hadoop
1 - L’infrastructure Aujourd’hui

  ~ 60 Fronts Applicatifs (Tomcat5, Tomcat6, Tomcat7, NodeJS, Rubby)

  ~ 40 MySQL

  ~ 15 Memcached

  ~ 20 Solr

  ~ 5 Neo4J

  ~ 30 Hadoop

  ~ 5 Internal Workers

  ~ 15 Infrastructures tools


  Total ~ 150 Serveurs de Production Physiques !
2 - Retour vers le Futur

         Nice car by the way !
2 - Retour vers le futur
   Une infrastructure croissante petit à 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 ?
2 - Retour vers le Futur

  Viadeo.com
      45 Millions de membres
      3 Millions de profils vue par jours
      Y Posts
      200 000 Mise en relations quotidienne

  80 développeurs
  4 Sites de développement
  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
2 - Retour vers le Futur

     Et seulement 3 Ops !
2 - Retour vers le Futur

  Besoins :

        QA
        Consistance
        Standardisation
        Flexibilité
        Automatisation




                          Une idée ?
2 - Retour vers le Futur

  Besoins :

        QA
        Consistance
        Standardisation
        Flexibilité
        Automatisation




                          Une idée ?
3 - The Puppet Master
       It is going to change !
3 - Mise en place de Puppet
  Amorce :

 1 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)
3 - Mise en place de Puppet
Nouveau Dogme : « Infrastructure As Code »
(so deal with it)



     SVN Monolithique -> Git

          Modèle de branche intuitif : « Git Flow »

          Hook Pre-commit : Check de Syntax
          Hook Post-commit : Création d’environnements Puppet

          Git Hub Pull Request + Mode collaboratif
             – « It So easy ! »


     Evolution : Ops -> «Dev» Ops (un jour)
3 - Mise en place de Puppet
Des outils
3 - Mise en place de Puppet
Notre dépôt


   Des 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
3 - Mise en place de Puppet
 Notre dépôt

[ xkrantz@jumper ] ~/Sources/exploit-puppet (development) $ tree -L 2 -F
.
!"" README.rdoc
!"" autosign.conf
!"" fileserver.conf
|
!"" manifests/
#   !"" nodes/
#   !"" site.pp
#   $"" templates.pp
|
!"" modules/
#   !"" apache/
#   !"" apt/
#   !"" archive/
#   !"" common/
#   !"" concat/
#   !"" dell/
|    ...
|   !"" viadeo/
3 - Mise en place de Puppet
 Notre dépôt
class baseclass {

  ## Includes Environments Variables
  class {'viadeo::params':
    stage => 'first',
  }

  ## Modules
  class {'locale': }
  class {'timezone': }
  class {'system': }
  class {'ntp':
    ntp_servers => $viadeo::params::ntp_servers,
  }
  class {'postfix':
    relayhost        => $viadeo::params::relayhost,
    alias_root       => $viadeo::params::alias_root,
    external_domain => $viadeo::params::external_domain,
  }

..
}
3 - Mise en place de Puppet
    Notre dépôt
class viadeo::webapp inherits viadeo {

  ## Main   Modules
  include   viadeo::webapp::apache
  include   viadeo::webapp::tomcat
  include   viadeo::webapp::config

    ...
}
4 - The Foreman
   Now build it baby !
4 - The Foreman
4 - The Foreman
4 - The Foreman
4 - The Foreman

Provision de serveurs
4 - The Foreman
4 - The Foreman

Suivi de synchronisation
4 - The Foreman
4 - The Foreman


  Unique point d’entrée des serveurs
      Outils 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 !
5 -Puppet « In Da Pippe »
       You can find me in the pipe
5 - Puppet « in Da pipe »

     Objectif :
      Assurer une infra «ISO» tout au long de 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 »

    Actuellement :

      1 Puppet Master / site
          + infra (DNS, DHCP, PXE, Foreman, Repo Debian ...)
          1 Subnet = 1 environment

      1 Puppet Master = 1 Depot Git + Hooks

      3 Branches principales :
          Production,
          Staging
          Development
            – « Pull » automatique toute les 10 min depuis
              GitHub
5 - Puppet « in Da pipe »

    Future proche :
      Ganeti : « Cloud » privé, capacité de provision
5 - Puppet « in Da pipe »

    Future (moins) proche :

      Vagrant
      Interface avec les API de « cloud » publics
      Contribution aux outils (Foreman, modules Puppet, ...)
6 - Retour d’expérience
6 - Retour d’expérience

  Avant                            Après

    Ubuntu 10.04                     Debian Squeeze « Stable »
    Applications compilées           Applications « standard » en Packages
    Configuration manuelle           Installation entièrement automatique
    Scripts « d’automatisation »           Serveur opérationnel en 30min
                                           (modulo l’import de données)



    Difficile à maintenir            Consistance, automatisation
                                     95% des serveurs de production sont
                                     « Puppetizés »
6 - Retour d’expérience

     A l’usage

       Nouvelles manières de travailler

       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
6 - Retour d’expérience

     Puppet 2.6.2
                                        class mysql (
                                          $type   = 'oracle'
                                          ) {
       Portée des variables
       Serveur de fichiers                ...

                                          ## Ordering
       Ordonnancement « Macro Class »     anchor {'mysql::begin': }
           Merci STDLib                   -> Class['params']
                                          -> Class['repo']
                                          -> Class['install']
       Inter dépendance des modules       -> Class['config']
                                          -> Class['service']
                                          ## Set users account
                                          -> Class['pwgen']
                                          -> Class['root']
                                          -> Class['security']
                                          -> anchor {'mysql::end': }
                                        }
6 - Retour d’expérience

     Foreman

       Projet jeune
            0.1     : Septembre 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
7 - La suite ?
7 - La suite


Enc   Ganeti      Ipmi          Hiera

Mcollective              Foreman API



puppet         puppetCtl
puppetdb         Sensu           vagrant
7 - La suite
   Future (+ ou -) proche :

     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)
8 - Questions ?
Puppet Family


   Des modules «maisons»
   Encore 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

Contenu connexe

Tendances

Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Aurelien Navarre
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsNeil Armstrong
 
MYSQLDUMP & ZRM COMMUNITY (FR)
MYSQLDUMP & ZRM COMMUNITY (FR)MYSQLDUMP & ZRM COMMUNITY (FR)
MYSQLDUMP & ZRM COMMUNITY (FR)Cédric P
 
Guss webcasts Tempdb Internals - june 2013
Guss webcasts   Tempdb Internals - june 2013Guss webcasts   Tempdb Internals - june 2013
Guss webcasts Tempdb Internals - june 2013David BAFFALEUF
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8Aurelien Navarre
 
Un site web rapide ?
Un site web rapide ? Un site web rapide ?
Un site web rapide ? haricot
 
Methodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysqlMethodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysqlCodizy
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrOxalide
 
Optimisation de la plateforme de Supervision Zabbix
Optimisation de la plateforme de Supervision ZabbixOptimisation de la plateforme de Supervision Zabbix
Optimisation de la plateforme de Supervision ZabbixAlain Ganuchaud
 
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Christophe Laporte
 
Zabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertZabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertLook a box
 
Direct memory 3_devoxx_fr_2012-2.04.18
Direct memory 3_devoxx_fr_2012-2.04.18Direct memory 3_devoxx_fr_2012-2.04.18
Direct memory 3_devoxx_fr_2012-2.04.18Benoit Perroud
 
Guss webcasts Query Memory Grants - june 2013
Guss webcasts   Query Memory Grants - june 2013Guss webcasts   Query Memory Grants - june 2013
Guss webcasts Query Memory Grants - june 2013David BAFFALEUF
 
Présentation de Apache Zookeeper
Présentation de Apache ZookeeperPrésentation de Apache Zookeeper
Présentation de Apache ZookeeperMichaël Morello
 
MongoDB day Paris 2012
MongoDB day Paris 2012MongoDB day Paris 2012
MongoDB day Paris 2012FastConnect
 
Paris Kafka Meetup - Concepts & Architecture
Paris Kafka Meetup - Concepts & ArchitectureParis Kafka Meetup - Concepts & Architecture
Paris Kafka Meetup - Concepts & ArchitectureFlorian Hussonnois
 
Serveurs core et virtualisation
Serveurs core et virtualisationServeurs core et virtualisation
Serveurs core et virtualisationChristophe Laporte
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Alain Ganuchaud
 
Les Nouveautés de zabbix 2.2 par Alain Ganuchaud
Les Nouveautés de zabbix 2.2 par Alain GanuchaudLes Nouveautés de zabbix 2.2 par Alain Ganuchaud
Les Nouveautés de zabbix 2.2 par Alain GanuchaudAlain Ganuchaud
 

Tendances (20)

Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
 
Intellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server InternalsIntellicore Tech Talk 10 - Apache Web Server Internals
Intellicore Tech Talk 10 - Apache Web Server Internals
 
Sysadmin Day #5
Sysadmin Day #5Sysadmin Day #5
Sysadmin Day #5
 
MYSQLDUMP & ZRM COMMUNITY (FR)
MYSQLDUMP & ZRM COMMUNITY (FR)MYSQLDUMP & ZRM COMMUNITY (FR)
MYSQLDUMP & ZRM COMMUNITY (FR)
 
Guss webcasts Tempdb Internals - june 2013
Guss webcasts   Tempdb Internals - june 2013Guss webcasts   Tempdb Internals - june 2013
Guss webcasts Tempdb Internals - june 2013
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
 
Un site web rapide ?
Un site web rapide ? Un site web rapide ?
Un site web rapide ?
 
Methodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysqlMethodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysql
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.Fr
 
Optimisation de la plateforme de Supervision Zabbix
Optimisation de la plateforme de Supervision ZabbixOptimisation de la plateforme de Supervision Zabbix
Optimisation de la plateforme de Supervision Zabbix
 
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
 
Zabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertZabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvert
 
Direct memory 3_devoxx_fr_2012-2.04.18
Direct memory 3_devoxx_fr_2012-2.04.18Direct memory 3_devoxx_fr_2012-2.04.18
Direct memory 3_devoxx_fr_2012-2.04.18
 
Guss webcasts Query Memory Grants - june 2013
Guss webcasts   Query Memory Grants - june 2013Guss webcasts   Query Memory Grants - june 2013
Guss webcasts Query Memory Grants - june 2013
 
Présentation de Apache Zookeeper
Présentation de Apache ZookeeperPrésentation de Apache Zookeeper
Présentation de Apache Zookeeper
 
MongoDB day Paris 2012
MongoDB day Paris 2012MongoDB day Paris 2012
MongoDB day Paris 2012
 
Paris Kafka Meetup - Concepts & Architecture
Paris Kafka Meetup - Concepts & ArchitectureParis Kafka Meetup - Concepts & Architecture
Paris Kafka Meetup - Concepts & Architecture
 
Serveurs core et virtualisation
Serveurs core et virtualisationServeurs core et virtualisation
Serveurs core et virtualisation
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013
 
Les Nouveautés de zabbix 2.2 par Alain Ganuchaud
Les Nouveautés de zabbix 2.2 par Alain GanuchaudLes Nouveautés de zabbix 2.2 par Alain Ganuchaud
Les Nouveautés de zabbix 2.2 par Alain Ganuchaud
 

En vedette

Mobile apps & Server Apis, the weak link? par Emanuele Pecorari
Mobile apps & Server Apis, the weak link? par Emanuele PecorariMobile apps & Server Apis, the weak link? par Emanuele Pecorari
Mobile apps & Server Apis, the weak link? par Emanuele PecorariOlivier DASINI
 
Foreman presentation at NYC puppet users
Foreman presentation at NYC puppet usersForeman presentation at NYC puppet users
Foreman presentation at NYC puppet usersohadlevy
 
Foreman presentation
Foreman presentationForeman presentation
Foreman presentationGlen Ogilvie
 
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Nagios
 
Full Stack Automation with Katello & The Foreman
Full Stack Automation with Katello & The ForemanFull Stack Automation with Katello & The Foreman
Full Stack Automation with Katello & The ForemanWeston Bassler
 
memoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagiosmemoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagiosabouaalexis
 
Linux host orchestration with Foreman, Puppet and Gitlab
Linux host orchestration with Foreman, Puppet and GitlabLinux host orchestration with Foreman, Puppet and Gitlab
Linux host orchestration with Foreman, Puppet and GitlabBen Tullis
 
Lifecycle Management with Foreman
Lifecycle Management with ForemanLifecycle Management with Foreman
Lifecycle Management with ForemanJulien Pivotto
 
Nagios XI Best Practices
Nagios XI Best PracticesNagios XI Best Practices
Nagios XI Best PracticesNagios
 
Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015Stephen Benjamin
 
Foreman in your datacenter
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenterlzap
 
Puppet, la philosophie DevOps
Puppet, la philosophie DevOpsPuppet, la philosophie DevOps
Puppet, la philosophie DevOpsJeoffrey Bauvin
 

En vedette (15)

Mobile apps & Server Apis, the weak link? par Emanuele Pecorari
Mobile apps & Server Apis, the weak link? par Emanuele PecorariMobile apps & Server Apis, the weak link? par Emanuele Pecorari
Mobile apps & Server Apis, the weak link? par Emanuele Pecorari
 
Foreman Presentation
Foreman PresentationForeman Presentation
Foreman Presentation
 
Foreman presentation at NYC puppet users
Foreman presentation at NYC puppet usersForeman presentation at NYC puppet users
Foreman presentation at NYC puppet users
 
DevOps: IT's Automation Revolution
DevOps: IT's Automation RevolutionDevOps: IT's Automation Revolution
DevOps: IT's Automation Revolution
 
Foreman presentation
Foreman presentationForeman presentation
Foreman presentation
 
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
 
Full Stack Automation with Katello & The Foreman
Full Stack Automation with Katello & The ForemanFull Stack Automation with Katello & The Foreman
Full Stack Automation with Katello & The Foreman
 
memoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagiosmemoire utilisation de Puppet et Nagios
memoire utilisation de Puppet et Nagios
 
Linux host orchestration with Foreman, Puppet and Gitlab
Linux host orchestration with Foreman, Puppet and GitlabLinux host orchestration with Foreman, Puppet and Gitlab
Linux host orchestration with Foreman, Puppet and Gitlab
 
Lifecycle Management with Foreman
Lifecycle Management with ForemanLifecycle Management with Foreman
Lifecycle Management with Foreman
 
Nagios XI Best Practices
Nagios XI Best PracticesNagios XI Best Practices
Nagios XI Best Practices
 
Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015Foreman in Your Data Center :OSDC 2015
Foreman in Your Data Center :OSDC 2015
 
Foreman in your datacenter
Foreman in your datacenterForeman in your datacenter
Foreman in your datacenter
 
Puppet, la philosophie DevOps
Puppet, la philosophie DevOpsPuppet, la philosophie DevOps
Puppet, la philosophie DevOps
 
Puppet slides
Puppet slidesPuppet slides
Puppet slides
 

Similaire à Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz

Je configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsJe configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsRonan Amicel
 
Mixit2014_Puppet_Workshop
Mixit2014_Puppet_WorkshopMixit2014_Puppet_Workshop
Mixit2014_Puppet_WorkshopSMougenot
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natifHenri Gomez
 
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)hibnico
 
20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natifHenri Gomez
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdfOmbotimbe Salifou
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesChristophe Furmaniak
 
Infrastructure agile avec Cloudformation - AWS Summit 2016
Infrastructure agile avec Cloudformation - AWS Summit 2016Infrastructure agile avec Cloudformation - AWS Summit 2016
Infrastructure agile avec Cloudformation - AWS Summit 2016Antoine Guy
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesXavier MARIN
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924Gregory Boissinot
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09Olivier Gutknecht
 

Similaire à Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz (20)

Je configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsJe configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtools
 
Présentation devops&puppet 04112014
Présentation devops&puppet 04112014 Présentation devops&puppet 04112014
Présentation devops&puppet 04112014
 
Mixit2014_Puppet_Workshop
Mixit2014_Puppet_WorkshopMixit2014_Puppet_Workshop
Mixit2014_Puppet_Workshop
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif
 
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
 
20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif
 
0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf0251-formation-java-programmation-objet.pdf
0251-formation-java-programmation-objet.pdf
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
 
Infrastructure agile avec Cloudformation - AWS Summit 2016
Infrastructure agile avec Cloudformation - AWS Summit 2016Infrastructure agile avec Cloudformation - AWS Summit 2016
Infrastructure agile avec Cloudformation - AWS Summit 2016
 
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseriesBreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
 
Formation Google App Engine
Formation Google App EngineFormation Google App Engine
Formation Google App Engine
 
Paris RailsCamp 2009
Paris RailsCamp 2009Paris RailsCamp 2009
Paris RailsCamp 2009
 
Parinux 2009
Parinux 2009Parinux 2009
Parinux 2009
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924JENKINS_OWF11_OSDC_PARIS20110924
JENKINS_OWF11_OSDC_PARIS20110924
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Fully Automated Nagios, Solutions Linux 2009
Fully Automated Nagios, Solutions Linux 2009Fully Automated Nagios, Solutions Linux 2009
Fully Automated Nagios, Solutions Linux 2009
 
Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09Chef - Paris BlockCamp - Nov 09
Chef - Paris BlockCamp - Nov 09
 
Présentation1
Présentation1Présentation1
Présentation1
 

Plus de Olivier DASINI

MySQL High Availability Solutions - Avoid loss of service by reducing the r...
MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...
MySQL High Availability Solutions - Avoid loss of service by reducing the r...Olivier DASINI
 
MySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsMySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsOlivier DASINI
 
MySQL Performance Best Practices
MySQL Performance Best PracticesMySQL Performance Best Practices
MySQL Performance Best PracticesOlivier DASINI
 
MySQL 8.0.22 - New Features Summary
MySQL 8.0.22 - New Features SummaryMySQL 8.0.22 - New Features Summary
MySQL 8.0.22 - New Features SummaryOlivier DASINI
 
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL TeamMySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL TeamOlivier DASINI
 
Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0Olivier DASINI
 
MySQL 8.0.21 - New Features Summary
MySQL 8.0.21 - New Features SummaryMySQL 8.0.21 - New Features Summary
MySQL 8.0.21 - New Features SummaryOlivier DASINI
 
MySQL 8.0.19 - New Features Summary
MySQL 8.0.19 - New Features SummaryMySQL 8.0.19 - New Features Summary
MySQL 8.0.19 - New Features SummaryOlivier DASINI
 
MySQL 8.0.18 - New Features Summary
MySQL 8.0.18 - New Features SummaryMySQL 8.0.18 - New Features Summary
MySQL 8.0.18 - New Features SummaryOlivier DASINI
 
MySQL 8.0.17 - New Features Summary
MySQL 8.0.17 - New Features SummaryMySQL 8.0.17 - New Features Summary
MySQL 8.0.17 - New Features SummaryOlivier DASINI
 
MySQL 8.0.16 New Features Summary
MySQL 8.0.16 New Features SummaryMySQL 8.0.16 New Features Summary
MySQL 8.0.16 New Features SummaryOlivier DASINI
 
MySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the DolphinMySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the DolphinOlivier DASINI
 
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirementsMySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirementsOlivier DASINI
 
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0Olivier DASINI
 
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...Olivier DASINI
 
MySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document StoreMySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document StoreOlivier DASINI
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?Olivier DASINI
 
MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018Olivier DASINI
 
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...Olivier DASINI
 
MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?Olivier DASINI
 

Plus de Olivier DASINI (20)

MySQL High Availability Solutions - Avoid loss of service by reducing the r...
MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...MySQL High Availability Solutions  -  Avoid loss of service by reducing the r...
MySQL High Availability Solutions - Avoid loss of service by reducing the r...
 
MySQL Document Store for Modern Applications
MySQL Document Store for Modern ApplicationsMySQL Document Store for Modern Applications
MySQL Document Store for Modern Applications
 
MySQL Performance Best Practices
MySQL Performance Best PracticesMySQL Performance Best Practices
MySQL Performance Best Practices
 
MySQL 8.0.22 - New Features Summary
MySQL 8.0.22 - New Features SummaryMySQL 8.0.22 - New Features Summary
MySQL 8.0.22 - New Features Summary
 
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL TeamMySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
MySQL Database Service - 100% Developed, Managed and Supported by the MySQL Team
 
Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0Upgrade from MySQL 5.7 to MySQL 8.0
Upgrade from MySQL 5.7 to MySQL 8.0
 
MySQL 8.0.21 - New Features Summary
MySQL 8.0.21 - New Features SummaryMySQL 8.0.21 - New Features Summary
MySQL 8.0.21 - New Features Summary
 
MySQL 8.0.19 - New Features Summary
MySQL 8.0.19 - New Features SummaryMySQL 8.0.19 - New Features Summary
MySQL 8.0.19 - New Features Summary
 
MySQL 8.0.18 - New Features Summary
MySQL 8.0.18 - New Features SummaryMySQL 8.0.18 - New Features Summary
MySQL 8.0.18 - New Features Summary
 
MySQL 8.0.17 - New Features Summary
MySQL 8.0.17 - New Features SummaryMySQL 8.0.17 - New Features Summary
MySQL 8.0.17 - New Features Summary
 
MySQL 8.0.16 New Features Summary
MySQL 8.0.16 New Features SummaryMySQL 8.0.16 New Features Summary
MySQL 8.0.16 New Features Summary
 
MySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the DolphinMySQL Day Paris 2018 - Introduction & The State of the Dolphin
MySQL Day Paris 2018 - Introduction & The State of the Dolphin
 
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirementsMySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
MySQL Day Paris 2018 - MySQL & GDPR; Privacy and Security requirements
 
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
MySQL Day Paris 2018 - Upgrade from MySQL 5.7 to MySQL 8.0
 
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
MySQL Day Paris 2018 - MySQL InnoDB Cluster; A complete High Availability sol...
 
MySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document StoreMySQL Day Paris 2018 - MySQL JSON Document Store
MySQL Day Paris 2018 - MySQL JSON Document Store
 
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
MySQL Day Paris 2018 - What’s New in MySQL 8.0 ?
 
MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018
 
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
MySQL JSON Document Store - A Document Store with all the benefits of a Trans...
 
MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?MySQL 8.0 - What's New ?
MySQL 8.0 - What's New ?
 

Ops@viadeo : Puppet & Co... 6 mois après par Xavier Krantz

  • 1. Ops@viadeo : Puppet & Co. This is time for the «Puppet» show ! Xavier Krantz Viadeo Tech Days 2012
  • 2. Plats à la carte 1. L’infra de Viadeo : aperçu 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
  • 3. 1 - L’infra : Aperçu Is that so bad ?
  • 4. 1 - L’infrastructure Aujourd’hui 2 Lb 2 Fw App1 App2 App3 ... App3 ~ 60 Fronts ~15 Memcached Cluster1 Cluster1 Cluster1 ~ 40 MySQL ~ 20 Solr Neo4j Hadoop
  • 5. 1 - L’infrastructure Aujourd’hui ~ 60 Fronts Applicatifs (Tomcat5, Tomcat6, Tomcat7, NodeJS, Rubby) ~ 40 MySQL ~ 15 Memcached ~ 20 Solr ~ 5 Neo4J ~ 30 Hadoop ~ 5 Internal Workers ~ 15 Infrastructures tools Total ~ 150 Serveurs de Production Physiques !
  • 6. 2 - Retour vers le Futur Nice car by the way !
  • 7. 2 - Retour vers le futur Une infrastructure croissante petit à 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 ?
  • 8. 2 - Retour vers le Futur Viadeo.com 45 Millions de membres 3 Millions de profils vue par jours Y Posts 200 000 Mise en relations quotidienne 80 développeurs 4 Sites de développement 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
  • 9. 2 - Retour vers le Futur Et seulement 3 Ops !
  • 10. 2 - Retour vers le Futur Besoins : QA Consistance Standardisation Flexibilité Automatisation Une idée ?
  • 11. 2 - Retour vers le Futur Besoins : QA Consistance Standardisation Flexibilité Automatisation Une idée ?
  • 12. 3 - The Puppet Master It is going to change !
  • 13. 3 - Mise en place de Puppet Amorce : 1 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)
  • 14. 3 - Mise en place de Puppet Nouveau Dogme : « Infrastructure As Code » (so deal with it) SVN Monolithique -> Git Modèle de branche intuitif : « Git Flow » Hook Pre-commit : Check de Syntax Hook Post-commit : Création d’environnements Puppet Git Hub Pull Request + Mode collaboratif – « It So easy ! » Evolution : Ops -> «Dev» Ops (un jour)
  • 15. 3 - Mise en place de Puppet Des outils
  • 16. 3 - Mise en place de Puppet Notre dépôt Des 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
  • 17. 3 - Mise en place de Puppet Notre dépôt [ xkrantz@jumper ] ~/Sources/exploit-puppet (development) $ tree -L 2 -F . !"" README.rdoc !"" autosign.conf !"" fileserver.conf | !"" manifests/ #   !"" nodes/ #   !"" site.pp #   $"" templates.pp | !"" modules/ #   !"" apache/ #   !"" apt/ #   !"" archive/ #   !"" common/ #   !"" concat/ #   !"" dell/ | ... | !"" viadeo/
  • 18. 3 - Mise en place de Puppet Notre dépôt class baseclass { ## Includes Environments Variables   class {'viadeo::params':     stage => 'first',   } ## Modules   class {'locale': }   class {'timezone': }   class {'system': }   class {'ntp':     ntp_servers => $viadeo::params::ntp_servers,   }   class {'postfix':     relayhost => $viadeo::params::relayhost,     alias_root => $viadeo::params::alias_root,     external_domain => $viadeo::params::external_domain,   } .. }
  • 19. 3 - Mise en place de Puppet Notre dépôt class viadeo::webapp inherits viadeo { ## Main Modules   include viadeo::webapp::apache   include viadeo::webapp::tomcat   include viadeo::webapp::config ... }
  • 20. 4 - The Foreman Now build it baby !
  • 21. 4 - The Foreman
  • 22. 4 - The Foreman
  • 23. 4 - The Foreman
  • 24. 4 - The Foreman Provision de serveurs
  • 25. 4 - The Foreman
  • 26. 4 - The Foreman Suivi de synchronisation
  • 27. 4 - The Foreman
  • 28. 4 - The Foreman Unique point d’entrée des serveurs Outils 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 !
  • 29. 5 -Puppet « In Da Pippe » You can find me in the pipe
  • 30. 5 - Puppet « in Da pipe » Objectif : Assurer une infra «ISO» tout au long de 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
  • 31. 5 - Puppet « in Da pipe » Actuellement : 1 Puppet Master / site + infra (DNS, DHCP, PXE, Foreman, Repo Debian ...) 1 Subnet = 1 environment 1 Puppet Master = 1 Depot Git + Hooks 3 Branches principales : Production, Staging Development – « Pull » automatique toute les 10 min depuis GitHub
  • 32. 5 - Puppet « in Da pipe » Future proche : Ganeti : « Cloud » privé, capacité de provision
  • 33. 5 - Puppet « in Da pipe » Future (moins) proche : Vagrant Interface avec les API de « cloud » publics Contribution aux outils (Foreman, modules Puppet, ...)
  • 34. 6 - Retour d’expérience
  • 35. 6 - Retour d’expérience Avant Après Ubuntu 10.04 Debian Squeeze « Stable » Applications compilées Applications « standard » en Packages Configuration manuelle Installation entièrement automatique Scripts « d’automatisation » Serveur opérationnel en 30min (modulo l’import de données) Difficile à maintenir Consistance, automatisation 95% des serveurs de production sont « Puppetizés »
  • 36. 6 - Retour d’expérience A l’usage Nouvelles manières de travailler 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
  • 37. 6 - Retour d’expérience Puppet 2.6.2 class mysql (   $type = 'oracle' ) { Portée des variables Serveur de fichiers ... ## Ordering Ordonnancement « Macro Class »   anchor {'mysql::begin': } Merci STDLib -> Class['params'] -> Class['repo'] -> Class['install'] Inter dépendance des modules -> Class['config'] -> Class['service']   ## Set users account   -> Class['pwgen'] -> Class['root'] -> Class['security'] -> anchor {'mysql::end': } }
  • 38. 6 - Retour d’expérience Foreman Projet jeune 0.1 : Septembre 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
  • 39. 7 - La suite ?
  • 40. 7 - La suite Enc Ganeti Ipmi Hiera Mcollective Foreman API puppet puppetCtl puppetdb Sensu vagrant
  • 41. 7 - La suite Future (+ ou -) proche : 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)
  • 42. 8 - Questions ? Puppet Family Des modules «maisons» Encore 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