SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
AlpesJug
Mardi 20 Septembre 2011

Devops
Retour d’experience
Henri Gomez                                                                           AlpesJUG



•    Pre eXo                                      •    OpenSource Activiste
      »  +20 ans de développement                       »  Commiteur Apache Tomcat depuis 2001
      »  Architecte Java                                »  Co-fondateur du projet JPackage
      »  Finance/Bourse, Middle&Back                    »  Projet OpenJDK OS/X Build

•    eXo – ITOP Manager                           •    Me contacter
      »    Responsable de la production                 »    Mail: henri.gomez@gmail.com
      »    Infrastructure locale (TN/UA/VN)             »    Twitter : @hgomez
      »    Infrastructure dédiée sur OVH                »    Skype : gomezhe
      »    Infrastructure Cloud sur AWS                 »    Blog : http://blog.hgomez.net


•    eXo – QA Tech Lead
      »  QAF – QA Factory
      »  Benchmarks
      »  Performance Analysis


                                              2
Devops : une image vaut mille mots   AlpesJUG




                      3
Devops : Allo ?             AlpesJUG




Courtesy @builddoctor

                        4
Devops - Kesako                   AlpesJUG




•    Ce que n’est pas DevOps

     » Un produit (même si…)
     » Une personne ou équipe
     » Une méthodologie stricte
     » Une recette miracle




                            5
Devops - Kesako                                AlpesJUG




•    Ce qu’est DevOps

     » Un mouvement
     » Un mode agile sur l’ensemble de la chaine
     » Une nouvelle donne technique
     » Une autre approche humaine




                             6
Devops - Mouvement                                AlpesJUG




•    Initié fin 2009 par des acteurs du monde Web
     » Google, Amazon, Yahoo, LinkedIn, Netflix
     » De décideurs qui sont d’anciens techies

•    Réponses à de nouvelles problématiques
     » Déploiement massif
     » Déploiement régulier
     » PRA, continuité et Cloud



                             7
Devops – Mode Agile                             AlpesJUG




•    Ne pas réduire l’Agile au développement
     » Les méthodes agiles ont fait leur preuve en DEV
     » Applicables sous condition en QA et Production
     » Inscrire les opérations de Prod dans le processus




                             8
Devops – Mode Agile                             AlpesJUG




•    Déploiements fréquents
     » Rassure les équipes de Production
     » Rode la mécanique
     » Infra et code dans le cycle de déploiement continu
     » Mode itératif avec feedback




                             9
Devops – Nouvelle Donne Technique       AlpesJUG




•    Un mode de pensée différent
     » Scale out plutôt que Scale in
     » Couplages légers
     » Cloud aware
     » Une touche de Dev pour les Ops
     » Une pincée d’Ops dans les Dev




                           10
Devops - Nouvelle Donne Technique               AlpesJUG




•    Une nouvelle approche des opérations IT
     » Infrastructure As Code (Chef, Puppet, Vagrant…)
     » Des Ops qui codent (Bash, Python, Ruby, Groovy)
     » Et utilisent des outils du Dev (SVN/Mercurial/GIT)

•    Automatisation
     » Pour réduire les erreurs
     » Pour gérer un nombre importants de machines



                             11
DevOps – De l’humain                               AlpesJUG




•    Constats
     » Opposer les équipes amène à l’échec

•    Gains
     » Lever au plus tôt les incompréhensions et
       inquiétudes
     » Responsabiliser chacun sur l’ensemble du cycle
       de vie




                             12
Devops – et des pré-requis                      AlpesJUG




•    Ouverture d’esprit
     » Pouvoir sortir des vieux schémas
     » Savoir écouter les autres
     » Vouloir échanger avec les autres

•    Une gouvernance adaptée
     » Promouvoir l’échange entre les équipes pluri-
       disciplinaires
     » Accepter une ‘démocratie’ plus directe


                             13
Devops – Mets de l’huile       AlpesJUG




•  Connaître l’autre
•  Travaillons ensemble




                          14
Devops – Connaître l’autre                      AlpesJUG




•    Le vocabulaire
     » OOM, jar, war, Beans, Jenkins, Maven
     » Jmeter, SmokeTests, Selenium
     » SNMP, Nagios, Cacti, Hyperic, RHQ, JMX

•    L’environnement et les contraintes
     » Collocation et mutualisation
     » Monitoring
     » Sécurité

                             15
Devops – Connaître l’autre         AlpesJUG




•    Les peurs de l’autre
     » Boites noires
     » Performances
     » Effet de bord
     » Reprise d’activité
     » Plans de test tardif




                              16
Devops – Travaillons ensemble                  AlpesJUG




•    Tous ensemble, tous ensemble
     » En finir avec la patate chaude
     » Analyser ensemble les besoins
     » Définir des livrables clairs
     » Tordre le coup aux procédures lourdes (et
       protectrices)




                            17
Retour d’expérience eXo Platform
Devops – eXo Platform                                                     AlpesJUG


                  France: (~20)

                                            Ukraine: (~30)


                           Tunisia: (~30)
     USA: (~10)

                                                         Vietnam: (~70)




•  Editeur
•  ~160 employés dans le monde

•  Une culture OpenSource

•  Historique JEE/Portal mergé avec JBoss GateIn



                              19
Devops – eXo Platform                          AlpesJUG




•    Applications Java
     » AIO, PLF, Cloud IDE

•    Environnement
     » Linux, MySQL, PostgreSQL, DB2, Oracle
     » Local, dédié et Cloud (AWS)




                             20
Devops – eXo Platform                       AlpesJUG




•    Des équipes dans 5 pays et 4 continents
     » Dev, Support, QA, Ops (production)

•    Un outillage classique
     » Subversion & GIT
     » Maven, Nexus
     » Jenkins, Sonar
     » JIRA, Confluence, Fisheye



                              21
Devops – Outils communs                       AlpesJUG




•  JIRA
•  Subversion/Git
     » Dev, QA ou Ops, les sources sont dans le SCM
•  Repository Nexus
•  Support documentaire Wiki

•  Des Jenkins


•    Capitalisation des connaissances
•    Supprime les réticences « outils de l’autre »

                            22
Devops – Outils communs                       AlpesJUG




•    Venus de la Prod
     » Généralisation de JMX (exposition Mbeans)
     » VisualVM




Non aux boites noires !

                            23
Devops – JIRA en situation                    AlpesJUG




•    Des projets JIRA
     » Par projets Dev
     » Par projets QA
     » Pour l’activité Ops
     » Mode sprint sur 2 semaines pour Dev
     » Mode sprint sur une semaine pour Ops

Un même outil pour l’ensemble des acteurs évite la
duplication d’informations et le rejet de workflow
spécifiques !


                           24
Devops – JIRA pour la PROD                   AlpesJUG




•    Une demande de déploiement est un ticket Ops
     » Planification JIRA
     » Description des opérations en cours
     » Retours suite aux opérations.




                            25
Devops – JIRA pour la PROD                     AlpesJUG




•    Les incidents de prod sont des tickets
     » Collecte des éléments en pièces attachés ou liens
       externes
     » Pré-analyse
     » Qualification puis ouverture d’un ticket Produit lié
     » Permis le suivi de l’incident à la résolution produit




                                26
Devops – Mêmes référentiels                      AlpesJUG




•    Tous les acteurs partagent les mêmes livrables
     » Réduction des erreurs sur des jars/wars
       ‘customisés’ ou ‘déviants’
     » Une source connue et unique contrôlée par le
       Software Factory Manager
     » Renforce la nécessité de livraison par le Dev
     » Rassure les équipes de QA et Ops




                             27
Devops – The Jenkins Gang                       AlpesJUG




•    Jenkins d’intégration continue (SWF-CI)
     » Intégration continue et packaging d’applications

•    Jenkins déploiement continu (SWF-CD)
     » Déploiement continu vers la pre-prod

•    Jenkins de QA (QAF)
     » Déploiement vers l’infra QA
     » Test de performances et conformité


                             28
DevOps – Jenkins SWF-CI (build/deploy repos)   AlpesJUG




•  Construction et tests
•  Deploiement ASAP
     » Via Maven 2/3
     » Depuis sources dans
       SVN ou GIT
     » Vers les repositories
       Maven
•    ~100 jobs



                               29
DevOps – Jenkins SWF-CI (packaging)   AlpesJUG




•    Packaging des produits.
     » Prêts pour démos ou
       tests
•  Utilisation de
   contraintes amonts
   pour limiter les
   reconstructions
•  Utilisation du plugin
   priority sorter avec une
   priorité faible
•  ~20 jobs




                               30
DevOps – Jenkins SWF-CD (deployment)               AlpesJUG




•    Déploiement en pre-production
     » Mode SSH Slave et clés privées (sécurité)
     » Restons simple (KISS), jobs free style
     » Bash est l’ami de vos SysAdmin
     » Les taches du job dans Subversion

     On mélange bien ici Dev et Ops, avec l’outillage
     maitrisé par chacun et les bonnes pratiques comme
     les sources dans le SCM.



                             31
DevOps – Jenkins SWF-CD (deployment)              AlpesJUG




                          Jenkins Master




         Jenkins Agent
                                              Jenkins Agent


       SQL Engine
                           Jenkins Agent   HTTP Frontend



                         App Server


                           32
DevOps – Jenkins SWF-CD (deployment)             AlpesJUG




  » Jenkins est un enchaineur
  » Il déclenche les jobs suivant nos règles (horaires
   ou évènements)
  » Il prend le contrôle d’instances esclaves dans un
   environnement contraint lié au profil SSH
  » Les résultats d’opérations (stdout/stderr)
   remontent naturellement vers le Jenkins Maitre
  » Jenkins devient une console d’opération
  » Pour l’équipe Forge (Dev), mais utilisable par les
   Ops ou la QA sous contrôle et conditions


                           33
DevOps – Jenkins QAF        AlpesJUG




                       34
DevOps – Jenkins QAF                          AlpesJUG




                          Jenkins Master




        Jenkins Agent
                                           Jenkins Agent


      SQL Engine
                          Jenkins Agent     Injector



                        App Server


                           35
DevOps – Jenkins QAF tests process   AlpesJUG




                         36
DevOps – Jenkins QAF Performances Jobs   AlpesJUG




                        37
DevOps – Jenkins QAF Performances tests   AlpesJUG




                         38
DevOps – Jenkins QAF Performances reports   AlpesJUG




                         39
DevOps – Jenkins QAF                           AlpesJUG




  » Jenkins comme enchaineur
  » Il va bosser la nuit pour produire des tests
   fonctionnels long ou des tirs de performances
  » Analyse des résultats le lendemain matin avec le
   café et les croissants (thé / biscotte accepté)
  » L’équipe QA se focalise sur l’analyse (humaine) et
   confie les taches rébarbatives (déploiement,
   initialisation, tirs longs) à la machine.
  » Jenkins est une console d’opération pour l’équipe
   QA, elle aussi utilisable par les Dev ou Ops


                           40
DevOps – Retours eXo                            AlpesJUG




•    Un outillage commun facilite la communication
     » Echange des bonnes pratiques (Dev, Ops, QA)
     » Partage et montée en compétence ensemble
     » Laissons faire à la machine ce qui est long ou
       rébarbatif
     » Restons simple

     DevOps ne doit pas rester cantonné à une élite mais
     inclure l’ensemble des acteurs.



                             41
Les mains dans le cambouis
Dédicace spéciale à mes amis les @lescastcodeurs
DevOps – Les retours d’atelier                 AlpesJUG




Un besoin courant des équipes DEV et QA est l’
analyse du comportement d’applications en situation.


  » Les outils de profiling sont trop intrusifs ou mal
   maitrisés
  » La supervision de prod n’est pas adaptée
  » Restons simple et pragmatique
  » Récompensons l’effort JMX



                           43
DevOps – Graphite (https://launchpad.net/graphite)   AlpesJUG




   » Solution de collecte et tracés de métriques
   » Développée en Python
   » Un collecteur via TCP/IP : Carbon
   » Un gestionnaire de stockage : Whisper
   » Un tracé des métriques : Graphite




                                   44
DevOps – Graphite                            AlpesJUG




  » Collecteur et stockage scalable sur plusieurs
    instances
  » Agrégation sur un même graphique de métriques
    différents
  » Moteur de rendu entièrement configurable
  » Large choix de fonctions à appliquer
  » Accès via l’UI Web ou via URL restituant une
   image PNG




                          45
DevOps – JMXTrans (http://code.google.com/p/jmxtrans/)   AlpesJUG




•    Un collecteur JMX simple et performant
     » Ecris par un Dev Apache bien connu (Jon Stevens)
       passé du coté obscur (Ops)
     » Fonctionne sur n’importe quelle machine (in/of
       situ)
     » Simple, léger et rapidement déployable
     » Alimentation de back-ends comme RRDTools et
       Graphite
     » Une syntaxe de définition simple et efficace
       (JSON)
     » Un taux échantillonnage réglable

                                  46
DevOps – JMXTrans – Graphite en situation       AlpesJUG


                                            Graphite




                                            @




                                      JMXTrans




                          47
DevOps – Exemples JSON                                                                                AlpesJUG


{
  "servers" : [ {
    "port" : "8004",
    "host" : "appserver",
    "queries" : [ {
       "outputWriters" : [ {
         "@class" : "com.googlecode.jmxtrans.model.output.GraphiteWriter",
         "settings" : {
            "port" : 2003,
            "host" : "graphite",
         "typeNames" : [ "name" ]
         }
       } ],
       "obj" : "Catalina:type=DataSource,class=javax.sql.DataSource,name=*",
       "attr" : [ "numActive", "numIdle" ]
    } ],
    "numQueryThreads" : 2                 {
  } ]                                       "servers" : [ {
}                                             "port" : "8004",
                                              "host" : "appserver",
                                              "queries" : [ {
                                                "outputWriters" : [ {
                                                   "@class" : "com.googlecode.jmxtrans.model.output.GraphiteWriter",
   {                                               "settings" : {
      "servers" : [ {                                "port" : 2003,
        "port" : "8004",                             "host" : "graphite",
        "host" : "appserver",                     "typeNames" : [ "name" ]
        "queries" : [ {                            }
           "outputWriters" : [ {                } ],
                                                "obj" : "Catalina:type=ThreadPool,name=*",
             "@class" : "com.googlecode.jmxtrans.model.output.GraphiteWriter",
             "settings" : {                     "attr" : [ "currentThreadCount", "currentThreadsBusy", "" ]
                "port" : 2003,                } ],
                "host" : "graphite"           "numQueryThreads" : 2
             }                              } ]
           } ],                           }
           "obj" : "java.lang:type=Threading",
           "attr" : [ "DaemonThreadCount", "PeakThreadCount", "ThreadCount",
   "TotalStartedThreadCount" ]
        } ],
        "numQueryThreads" : 2
      } ]
   }




                                                           48
DevOps – Résultats Graphite   AlpesJUG




                        49
AlpesJUG




Et voici le moment des questions et réponses …
               si vous avez été sages




                         50
Licence et copyrights                                AlpesJUG




•    Photos et logos appartiennent à leur auteurs/
     propriétaires respectifs.
•    Contenu sous Creative Commons 3.0
•    http://creativecommons.org/licenses/by-nc-sa/3.0/us/




                               51

Weitere ähnliche Inhalte

Was ist angesagt?

Afterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesAfterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiques
OCTO Technology Suisse
 

Was ist angesagt? (20)

Meetup DevOps / WebOps Nîmes 20161020
Meetup DevOps / WebOps Nîmes 20161020Meetup DevOps / WebOps Nîmes 20161020
Meetup DevOps / WebOps Nîmes 20161020
 
Devops Introduction au mouvement
Devops Introduction au mouvementDevops Introduction au mouvement
Devops Introduction au mouvement
 
Introduction à la démarche Devops
Introduction à la démarche DevopsIntroduction à la démarche Devops
Introduction à la démarche Devops
 
[devops REX 2016] Les impacts techniques et organisationnels liés à devops
 [devops REX 2016] Les impacts techniques et organisationnels liés à devops [devops REX 2016] Les impacts techniques et organisationnels liés à devops
[devops REX 2016] Les impacts techniques et organisationnels liés à devops
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
 
DevOps - Collaborer pour répondre à l'accélération de l'économie numérique
DevOps - Collaborer pour répondre à l'accélération de l'économie numériqueDevOps - Collaborer pour répondre à l'accélération de l'économie numérique
DevOps - Collaborer pour répondre à l'accélération de l'économie numérique
 
Matinale DevOps / Docker
Matinale DevOps / DockerMatinale DevOps / Docker
Matinale DevOps / Docker
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
 
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011
 
DODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez CroesusDODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez Croesus
 
Après l’#agilité, le #DevOps, la nouvelle arme de la DSI
Après l’#agilité, le #DevOps, la nouvelle arme de la DSIAprès l’#agilité, le #DevOps, la nouvelle arme de la DSI
Après l’#agilité, le #DevOps, la nouvelle arme de la DSI
 
Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?
 
[devops REX 2016] Comment nous cultivons la philosophie DevOps grâce au Lean
[devops REX 2016] Comment nous cultivons la philosophie DevOps grâce au Lean[devops REX 2016] Comment nous cultivons la philosophie DevOps grâce au Lean
[devops REX 2016] Comment nous cultivons la philosophie DevOps grâce au Lean
 
Afterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesAfterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiques
 
Du cycle en V à DevOps, en passant par agile - Normation
Du cycle en V à DevOps, en passant par agile - NormationDu cycle en V à DevOps, en passant par agile - Normation
Du cycle en V à DevOps, en passant par agile - Normation
 
DevOps et tendances Monitoring
DevOps et tendances MonitoringDevOps et tendances Monitoring
DevOps et tendances Monitoring
 
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsAu secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
 
[devops REX 2016] DevOps at Scale : ce qu’on fait, ce que l’on a appris chez ...
[devops REX 2016] DevOps at Scale : ce qu’on fait, ce que l’on a appris chez ...[devops REX 2016] DevOps at Scale : ce qu’on fait, ce que l’on a appris chez ...
[devops REX 2016] DevOps at Scale : ce qu’on fait, ce que l’on a appris chez ...
 
[devops REX 2017] Les unconférences au cœur de l’évangelisation DevOps chez C...
[devops REX 2017] Les unconférences au cœur de l’évangelisation DevOps chez C...[devops REX 2017] Les unconférences au cœur de l’évangelisation DevOps chez C...
[devops REX 2017] Les unconférences au cœur de l’évangelisation DevOps chez C...
 
#1 cloud-infra-talk- l ops-du-devops
#1 cloud-infra-talk- l ops-du-devops#1 cloud-infra-talk- l ops-du-devops
#1 cloud-infra-talk- l ops-du-devops
 

Ähnlich wie DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011

Solutions Linux2007 Déploiement D\'une Solution Libre d\'Inventaire Et De G...
Solutions Linux2007   Déploiement D\'une Solution Libre d\'Inventaire Et De G...Solutions Linux2007   Déploiement D\'une Solution Libre d\'Inventaire Et De G...
Solutions Linux2007 Déploiement D\'une Solution Libre d\'Inventaire Et De G...
Gonéri Le Bouder
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec Docker
Luis Lopez
 
Sujet MOCF version 2016
Sujet MOCF version 2016Sujet MOCF version 2016
Sujet MOCF version 2016
Driss Talby
 
De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?
Goood!
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
boulonvert
 
Atclt 2012 - Large Scale Scrum - Assurez la polycompétence dans vos équipes -...
Atclt 2012 - Large Scale Scrum - Assurez la polycompétence dans vos équipes -...Atclt 2012 - Large Scale Scrum - Assurez la polycompétence dans vos équipes -...
Atclt 2012 - Large Scale Scrum - Assurez la polycompétence dans vos équipes -...
Association pour l'Agilité en Auvergne
 
AgileTour Toulouse 2012 : de la livraison continue dans mon organisation
AgileTour Toulouse 2012 : de la livraison continue dans mon organisationAgileTour Toulouse 2012 : de la livraison continue dans mon organisation
AgileTour Toulouse 2012 : de la livraison continue dans mon organisation
Agile Toulouse
 
De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?
Goood!
 

Ähnlich wie DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011 (20)

DevOps - Retour d'expérience - GenevaJug du 30 Aout 2011
DevOps - Retour d'expérience - GenevaJug du 30 Aout 2011DevOps - Retour d'expérience - GenevaJug du 30 Aout 2011
DevOps - Retour d'expérience - GenevaJug du 30 Aout 2011
 
20111205 breizh jug-devops
20111205 breizh jug-devops20111205 breizh jug-devops
20111205 breizh jug-devops
 
Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks Meetup Devops Geneve 06/17- EBU Feedbacks
Meetup Devops Geneve 06/17- EBU Feedbacks
 
Devops, un tour d'horizon - Eutelsat 2018
Devops, un tour d'horizon -  Eutelsat 2018Devops, un tour d'horizon -  Eutelsat 2018
Devops, un tour d'horizon - Eutelsat 2018
 
AT2010 Principes Integration Continue
AT2010 Principes Integration ContinueAT2010 Principes Integration Continue
AT2010 Principes Integration Continue
 
Dev opsday case study
Dev opsday   case studyDev opsday   case study
Dev opsday case study
 
L'Agilité chez GEE Montréal
L'Agilité chez GEE MontréalL'Agilité chez GEE Montréal
L'Agilité chez GEE Montréal
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Solutions Linux2007 Déploiement D\'une Solution Libre d\'Inventaire Et De G...
Solutions Linux2007   Déploiement D\'une Solution Libre d\'Inventaire Et De G...Solutions Linux2007   Déploiement D\'une Solution Libre d\'Inventaire Et De G...
Solutions Linux2007 Déploiement D\'une Solution Libre d\'Inventaire Et De G...
 
Large Scale Scrum
Large Scale ScrumLarge Scale Scrum
Large Scale Scrum
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
Déploiements avec Docker
Déploiements avec DockerDéploiements avec Docker
Déploiements avec Docker
 
Sujet MOCF version 2016
Sujet MOCF version 2016Sujet MOCF version 2016
Sujet MOCF version 2016
 
De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?
 
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Atclt 2012 - Large Scale Scrum - Assurez la polycompétence dans vos équipes -...
Atclt 2012 - Large Scale Scrum - Assurez la polycompétence dans vos équipes -...Atclt 2012 - Large Scale Scrum - Assurez la polycompétence dans vos équipes -...
Atclt 2012 - Large Scale Scrum - Assurez la polycompétence dans vos équipes -...
 
AgileTour Toulouse 2012 : de la livraison continue dans mon organisation
AgileTour Toulouse 2012 : de la livraison continue dans mon organisationAgileTour Toulouse 2012 : de la livraison continue dans mon organisation
AgileTour Toulouse 2012 : de la livraison continue dans mon organisation
 
De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?
 
Refonte Drupal8 de l'écosystème digital de Campus France
Refonte Drupal8 de l'écosystème digital de Campus FranceRefonte Drupal8 de l'écosystème digital de Campus France
Refonte Drupal8 de l'écosystème digital de Campus France
 

Mehr von Henri Gomez

From ci to cd - LavaJug 2012
From ci to cd  - LavaJug 2012From ci to cd  - LavaJug 2012
From ci to cd - LavaJug 2012
Henri Gomez
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Henri Gomez
 

Mehr von Henri Gomez (12)

SRE - Mythes et Réalités - Volcamp 2023.pdf
SRE - Mythes et Réalités - Volcamp 2023.pdfSRE - Mythes et Réalités - Volcamp 2023.pdf
SRE - Mythes et Réalités - Volcamp 2023.pdf
 
20200225 bbl-docker-packaging-natif
20200225 bbl-docker-packaging-natif20200225 bbl-docker-packaging-natif
20200225 bbl-docker-packaging-natif
 
Je s'appelle Glowroot - LyonJUG Oct 2018
Je s'appelle Glowroot - LyonJUG Oct 2018Je s'appelle Glowroot - LyonJUG Oct 2018
Je s'appelle Glowroot - LyonJUG Oct 2018
 
Glowroot, le petit APM qui vous veut du bien
Glowroot, le petit APM qui vous veut du bienGlowroot, le petit APM qui vous veut du bien
Glowroot, le petit APM qui vous veut du bien
 
Glowroot, le petit APM qui vous veut du bien
Glowroot, le petit APM qui vous veut du bienGlowroot, le petit APM qui vous veut du bien
Glowroot, le petit APM qui vous veut du bien
 
From ci to cd - LavaJug 2012
From ci to cd  - LavaJug 2012From ci to cd  - LavaJug 2012
From ci to cd - LavaJug 2012
 
From ci to cd
From ci to cdFrom ci to cd
From ci to cd
 
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
Using Jenkins as Native Packages Factory - Jenkins User Conference Paris 2012
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif
 
20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif
 
20111220 lyon jug-devops-culture
20111220 lyon jug-devops-culture20111220 lyon jug-devops-culture
20111220 lyon jug-devops-culture
 
20111205 breizh jug-packaging-natif
20111205 breizh jug-packaging-natif20111205 breizh jug-packaging-natif
20111205 breizh jug-packaging-natif
 

DevOps - Retour d’expérience - AlpesJug du 20 Septembre 2011

  • 1. AlpesJug Mardi 20 Septembre 2011 Devops Retour d’experience
  • 2. Henri Gomez AlpesJUG •  Pre eXo •  OpenSource Activiste »  +20 ans de développement »  Commiteur Apache Tomcat depuis 2001 »  Architecte Java »  Co-fondateur du projet JPackage »  Finance/Bourse, Middle&Back »  Projet OpenJDK OS/X Build •  eXo – ITOP Manager •  Me contacter »  Responsable de la production »  Mail: henri.gomez@gmail.com »  Infrastructure locale (TN/UA/VN) »  Twitter : @hgomez »  Infrastructure dédiée sur OVH »  Skype : gomezhe »  Infrastructure Cloud sur AWS »  Blog : http://blog.hgomez.net •  eXo – QA Tech Lead »  QAF – QA Factory »  Benchmarks »  Performance Analysis 2
  • 3. Devops : une image vaut mille mots AlpesJUG 3
  • 4. Devops : Allo ? AlpesJUG Courtesy @builddoctor 4
  • 5. Devops - Kesako AlpesJUG •  Ce que n’est pas DevOps » Un produit (même si…) » Une personne ou équipe » Une méthodologie stricte » Une recette miracle 5
  • 6. Devops - Kesako AlpesJUG •  Ce qu’est DevOps » Un mouvement » Un mode agile sur l’ensemble de la chaine » Une nouvelle donne technique » Une autre approche humaine 6
  • 7. Devops - Mouvement AlpesJUG •  Initié fin 2009 par des acteurs du monde Web » Google, Amazon, Yahoo, LinkedIn, Netflix » De décideurs qui sont d’anciens techies •  Réponses à de nouvelles problématiques » Déploiement massif » Déploiement régulier » PRA, continuité et Cloud 7
  • 8. Devops – Mode Agile AlpesJUG •  Ne pas réduire l’Agile au développement » Les méthodes agiles ont fait leur preuve en DEV » Applicables sous condition en QA et Production » Inscrire les opérations de Prod dans le processus 8
  • 9. Devops – Mode Agile AlpesJUG •  Déploiements fréquents » Rassure les équipes de Production » Rode la mécanique » Infra et code dans le cycle de déploiement continu » Mode itératif avec feedback 9
  • 10. Devops – Nouvelle Donne Technique AlpesJUG •  Un mode de pensée différent » Scale out plutôt que Scale in » Couplages légers » Cloud aware » Une touche de Dev pour les Ops » Une pincée d’Ops dans les Dev 10
  • 11. Devops - Nouvelle Donne Technique AlpesJUG •  Une nouvelle approche des opérations IT » Infrastructure As Code (Chef, Puppet, Vagrant…) » Des Ops qui codent (Bash, Python, Ruby, Groovy) » Et utilisent des outils du Dev (SVN/Mercurial/GIT) •  Automatisation » Pour réduire les erreurs » Pour gérer un nombre importants de machines 11
  • 12. DevOps – De l’humain AlpesJUG •  Constats » Opposer les équipes amène à l’échec •  Gains » Lever au plus tôt les incompréhensions et inquiétudes » Responsabiliser chacun sur l’ensemble du cycle de vie 12
  • 13. Devops – et des pré-requis AlpesJUG •  Ouverture d’esprit » Pouvoir sortir des vieux schémas » Savoir écouter les autres » Vouloir échanger avec les autres •  Une gouvernance adaptée » Promouvoir l’échange entre les équipes pluri- disciplinaires » Accepter une ‘démocratie’ plus directe 13
  • 14. Devops – Mets de l’huile AlpesJUG •  Connaître l’autre •  Travaillons ensemble 14
  • 15. Devops – Connaître l’autre AlpesJUG •  Le vocabulaire » OOM, jar, war, Beans, Jenkins, Maven » Jmeter, SmokeTests, Selenium » SNMP, Nagios, Cacti, Hyperic, RHQ, JMX •  L’environnement et les contraintes » Collocation et mutualisation » Monitoring » Sécurité 15
  • 16. Devops – Connaître l’autre AlpesJUG •  Les peurs de l’autre » Boites noires » Performances » Effet de bord » Reprise d’activité » Plans de test tardif 16
  • 17. Devops – Travaillons ensemble AlpesJUG •  Tous ensemble, tous ensemble » En finir avec la patate chaude » Analyser ensemble les besoins » Définir des livrables clairs » Tordre le coup aux procédures lourdes (et protectrices) 17
  • 19. Devops – eXo Platform AlpesJUG France: (~20) Ukraine: (~30) Tunisia: (~30) USA: (~10) Vietnam: (~70) •  Editeur •  ~160 employés dans le monde •  Une culture OpenSource •  Historique JEE/Portal mergé avec JBoss GateIn 19
  • 20. Devops – eXo Platform AlpesJUG •  Applications Java » AIO, PLF, Cloud IDE •  Environnement » Linux, MySQL, PostgreSQL, DB2, Oracle » Local, dédié et Cloud (AWS) 20
  • 21. Devops – eXo Platform AlpesJUG •  Des équipes dans 5 pays et 4 continents » Dev, Support, QA, Ops (production) •  Un outillage classique » Subversion & GIT » Maven, Nexus » Jenkins, Sonar » JIRA, Confluence, Fisheye 21
  • 22. Devops – Outils communs AlpesJUG •  JIRA •  Subversion/Git » Dev, QA ou Ops, les sources sont dans le SCM •  Repository Nexus •  Support documentaire Wiki •  Des Jenkins •  Capitalisation des connaissances •  Supprime les réticences « outils de l’autre » 22
  • 23. Devops – Outils communs AlpesJUG •  Venus de la Prod » Généralisation de JMX (exposition Mbeans) » VisualVM Non aux boites noires ! 23
  • 24. Devops – JIRA en situation AlpesJUG •  Des projets JIRA » Par projets Dev » Par projets QA » Pour l’activité Ops » Mode sprint sur 2 semaines pour Dev » Mode sprint sur une semaine pour Ops Un même outil pour l’ensemble des acteurs évite la duplication d’informations et le rejet de workflow spécifiques ! 24
  • 25. Devops – JIRA pour la PROD AlpesJUG •  Une demande de déploiement est un ticket Ops » Planification JIRA » Description des opérations en cours » Retours suite aux opérations. 25
  • 26. Devops – JIRA pour la PROD AlpesJUG •  Les incidents de prod sont des tickets » Collecte des éléments en pièces attachés ou liens externes » Pré-analyse » Qualification puis ouverture d’un ticket Produit lié » Permis le suivi de l’incident à la résolution produit 26
  • 27. Devops – Mêmes référentiels AlpesJUG •  Tous les acteurs partagent les mêmes livrables » Réduction des erreurs sur des jars/wars ‘customisés’ ou ‘déviants’ » Une source connue et unique contrôlée par le Software Factory Manager » Renforce la nécessité de livraison par le Dev » Rassure les équipes de QA et Ops 27
  • 28. Devops – The Jenkins Gang AlpesJUG •  Jenkins d’intégration continue (SWF-CI) » Intégration continue et packaging d’applications •  Jenkins déploiement continu (SWF-CD) » Déploiement continu vers la pre-prod •  Jenkins de QA (QAF) » Déploiement vers l’infra QA » Test de performances et conformité 28
  • 29. DevOps – Jenkins SWF-CI (build/deploy repos) AlpesJUG •  Construction et tests •  Deploiement ASAP » Via Maven 2/3 » Depuis sources dans SVN ou GIT » Vers les repositories Maven •  ~100 jobs 29
  • 30. DevOps – Jenkins SWF-CI (packaging) AlpesJUG •  Packaging des produits. » Prêts pour démos ou tests •  Utilisation de contraintes amonts pour limiter les reconstructions •  Utilisation du plugin priority sorter avec une priorité faible •  ~20 jobs 30
  • 31. DevOps – Jenkins SWF-CD (deployment) AlpesJUG •  Déploiement en pre-production » Mode SSH Slave et clés privées (sécurité) » Restons simple (KISS), jobs free style » Bash est l’ami de vos SysAdmin » Les taches du job dans Subversion On mélange bien ici Dev et Ops, avec l’outillage maitrisé par chacun et les bonnes pratiques comme les sources dans le SCM. 31
  • 32. DevOps – Jenkins SWF-CD (deployment) AlpesJUG Jenkins Master Jenkins Agent Jenkins Agent SQL Engine Jenkins Agent HTTP Frontend App Server 32
  • 33. DevOps – Jenkins SWF-CD (deployment) AlpesJUG » Jenkins est un enchaineur » Il déclenche les jobs suivant nos règles (horaires ou évènements) » Il prend le contrôle d’instances esclaves dans un environnement contraint lié au profil SSH » Les résultats d’opérations (stdout/stderr) remontent naturellement vers le Jenkins Maitre » Jenkins devient une console d’opération » Pour l’équipe Forge (Dev), mais utilisable par les Ops ou la QA sous contrôle et conditions 33
  • 34. DevOps – Jenkins QAF AlpesJUG 34
  • 35. DevOps – Jenkins QAF AlpesJUG Jenkins Master Jenkins Agent Jenkins Agent SQL Engine Jenkins Agent Injector App Server 35
  • 36. DevOps – Jenkins QAF tests process AlpesJUG 36
  • 37. DevOps – Jenkins QAF Performances Jobs AlpesJUG 37
  • 38. DevOps – Jenkins QAF Performances tests AlpesJUG 38
  • 39. DevOps – Jenkins QAF Performances reports AlpesJUG 39
  • 40. DevOps – Jenkins QAF AlpesJUG » Jenkins comme enchaineur » Il va bosser la nuit pour produire des tests fonctionnels long ou des tirs de performances » Analyse des résultats le lendemain matin avec le café et les croissants (thé / biscotte accepté) » L’équipe QA se focalise sur l’analyse (humaine) et confie les taches rébarbatives (déploiement, initialisation, tirs longs) à la machine. » Jenkins est une console d’opération pour l’équipe QA, elle aussi utilisable par les Dev ou Ops 40
  • 41. DevOps – Retours eXo AlpesJUG •  Un outillage commun facilite la communication » Echange des bonnes pratiques (Dev, Ops, QA) » Partage et montée en compétence ensemble » Laissons faire à la machine ce qui est long ou rébarbatif » Restons simple DevOps ne doit pas rester cantonné à une élite mais inclure l’ensemble des acteurs. 41
  • 42. Les mains dans le cambouis Dédicace spéciale à mes amis les @lescastcodeurs
  • 43. DevOps – Les retours d’atelier AlpesJUG Un besoin courant des équipes DEV et QA est l’ analyse du comportement d’applications en situation. » Les outils de profiling sont trop intrusifs ou mal maitrisés » La supervision de prod n’est pas adaptée » Restons simple et pragmatique » Récompensons l’effort JMX 43
  • 44. DevOps – Graphite (https://launchpad.net/graphite) AlpesJUG » Solution de collecte et tracés de métriques » Développée en Python » Un collecteur via TCP/IP : Carbon » Un gestionnaire de stockage : Whisper » Un tracé des métriques : Graphite 44
  • 45. DevOps – Graphite AlpesJUG » Collecteur et stockage scalable sur plusieurs instances » Agrégation sur un même graphique de métriques différents » Moteur de rendu entièrement configurable » Large choix de fonctions à appliquer » Accès via l’UI Web ou via URL restituant une image PNG 45
  • 46. DevOps – JMXTrans (http://code.google.com/p/jmxtrans/) AlpesJUG •  Un collecteur JMX simple et performant » Ecris par un Dev Apache bien connu (Jon Stevens) passé du coté obscur (Ops) » Fonctionne sur n’importe quelle machine (in/of situ) » Simple, léger et rapidement déployable » Alimentation de back-ends comme RRDTools et Graphite » Une syntaxe de définition simple et efficace (JSON) » Un taux échantillonnage réglable 46
  • 47. DevOps – JMXTrans – Graphite en situation AlpesJUG Graphite @ JMXTrans 47
  • 48. DevOps – Exemples JSON AlpesJUG { "servers" : [ { "port" : "8004", "host" : "appserver", "queries" : [ { "outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.GraphiteWriter", "settings" : { "port" : 2003, "host" : "graphite", "typeNames" : [ "name" ] } } ], "obj" : "Catalina:type=DataSource,class=javax.sql.DataSource,name=*", "attr" : [ "numActive", "numIdle" ] } ], "numQueryThreads" : 2 { } ] "servers" : [ { } "port" : "8004", "host" : "appserver", "queries" : [ { "outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.GraphiteWriter", { "settings" : { "servers" : [ { "port" : 2003, "port" : "8004", "host" : "graphite", "host" : "appserver", "typeNames" : [ "name" ] "queries" : [ { } "outputWriters" : [ { } ], "obj" : "Catalina:type=ThreadPool,name=*", "@class" : "com.googlecode.jmxtrans.model.output.GraphiteWriter", "settings" : { "attr" : [ "currentThreadCount", "currentThreadsBusy", "" ] "port" : 2003, } ], "host" : "graphite" "numQueryThreads" : 2 } } ] } ], } "obj" : "java.lang:type=Threading", "attr" : [ "DaemonThreadCount", "PeakThreadCount", "ThreadCount", "TotalStartedThreadCount" ] } ], "numQueryThreads" : 2 } ] } 48
  • 49. DevOps – Résultats Graphite AlpesJUG 49
  • 50. AlpesJUG Et voici le moment des questions et réponses … si vous avez été sages 50
  • 51. Licence et copyrights AlpesJUG •  Photos et logos appartiennent à leur auteurs/ propriétaires respectifs. •  Contenu sous Creative Commons 3.0 •  http://creativecommons.org/licenses/by-nc-sa/3.0/us/ 51