AlpesJugMardi 20 Septembre 2011DevopsRetour d’experience
Henri Gomez                                                                           AlpesJUG•    Pre eXo                ...
Devops : une image vaut mille mots   AlpesJUG                      3
Devops : Allo ?             AlpesJUGCourtesy @builddoctor                        4
Devops - Kesako                   AlpesJUG•    Ce que n’est pas DevOps     » Un produit (même si…)     » Une personne ou é...
Devops - Kesako                                AlpesJUG•    Ce qu’est DevOps     » Un mouvement     » Un mode agile sur l’...
Devops - Mouvement                                AlpesJUG•    Initié fin 2009 par des acteurs du monde Web     » Google, ...
Devops – Mode Agile                             AlpesJUG•    Ne pas réduire l’Agile au développement     » Les méthodes ag...
Devops – Mode Agile                             AlpesJUG•    Déploiements fréquents     » Rassure les équipes de Productio...
Devops – Nouvelle Donne Technique       AlpesJUG•    Un mode de pensée différent     » Scale out plutôt que Scale in     »...
Devops - Nouvelle Donne Technique               AlpesJUG•    Une nouvelle approche des opérations IT     » Infrastructure ...
DevOps – De l’humain                               AlpesJUG•    Constats     » Opposer les équipes amène à l’échec•    Gai...
Devops – et des pré-requis                      AlpesJUG•    Ouverture d’esprit     » Pouvoir sortir des vieux schémas    ...
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    ...
Devops – Connaître l’autre         AlpesJUG•    Les peurs de l’autre     » Boites noires     » Performances     » Effet de...
Devops – Travaillons ensemble                  AlpesJUG•    Tous ensemble, tous ensemble     » En finir avec la patate cha...
Retour d’expérience eXo Platform
Devops – eXo Platform                                                     AlpesJUG                  France: (~20)         ...
Devops – eXo Platform                          AlpesJUG•    Applications Java     » AIO, PLF, Cloud IDE•    Environnement ...
Devops – eXo Platform                       AlpesJUG•    Des équipes dans 5 pays et 4 continents     » Dev, Support, QA, O...
Devops – Outils communs                       AlpesJUG•  JIRA•  Subversion/Git     » Dev, QA ou Ops, les sources sont dans...
Devops – Outils communs                       AlpesJUG•    Venus de la Prod     » Généralisation de JMX (exposition Mbeans...
Devops – JIRA en situation                    AlpesJUG•    Des projets JIRA     » Par projets Dev     » Par projets QA    ...
Devops – JIRA pour la PROD                   AlpesJUG•    Une demande de déploiement est un ticket Ops     » Planification...
Devops – JIRA pour la PROD                     AlpesJUG•    Les incidents de prod sont des tickets     » Collecte des élém...
Devops – Mêmes référentiels                      AlpesJUG•    Tous les acteurs partagent les mêmes livrables     » Réducti...
Devops – The Jenkins Gang                       AlpesJUG•    Jenkins d’intégration continue (SWF-CI)     » Intégration con...
DevOps – Jenkins SWF-CI (build/deploy repos)   AlpesJUG•  Construction et tests•  Deploiement ASAP     » Via Maven 2/3    ...
DevOps – Jenkins SWF-CI (packaging)   AlpesJUG•    Packaging des produits.     » Prêts pour démos ou       tests•  Utilisa...
DevOps – Jenkins SWF-CD (deployment)               AlpesJUG•    Déploiement en pre-production     » Mode SSH Slave et clés...
DevOps – Jenkins SWF-CD (deployment)              AlpesJUG                          Jenkins Master         Jenkins Agent  ...
DevOps – Jenkins SWF-CD (deployment)             AlpesJUG  » Jenkins est un enchaineur  » Il déclenche les jobs suivant no...
DevOps – Jenkins QAF        AlpesJUG                       34
DevOps – Jenkins QAF                          AlpesJUG                          Jenkins Master        Jenkins Agent       ...
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 ...
DevOps – Retours eXo                            AlpesJUG•    Un outillage commun facilite la communication     » Echange d...
Les mains dans le cambouisDédicace spéciale à mes amis les @lescastcodeurs
DevOps – Les retours d’atelier                 AlpesJUGUn besoin courant des équipes DEV et QA est l’analyse du comporteme...
DevOps – Graphite (https://launchpad.net/graphite)   AlpesJUG   » Solution de collecte et tracés de métriques   » Développ...
DevOps – Graphite                            AlpesJUG  » Collecteur et stockage scalable sur plusieurs    instances  » Agr...
DevOps – JMXTrans (http://code.google.com/p/jmxtrans/)   AlpesJUG•    Un collecteur JMX simple et performant     » Ecris p...
DevOps – JMXTrans – Graphite en situation       AlpesJUG                                            Graphite              ...
DevOps – Exemples JSON                                                                                AlpesJUG{  "servers"...
DevOps – Résultats Graphite   AlpesJUG                        49
AlpesJUGEt 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...
Prochain SlideShare
Chargement dans…5
×

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

2 731 vues

Publié le

Slides de la présentation DevOps - Retour d'expérience, à l'AlpesJUG le 20 Septembre 2011

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
2 731
Sur SlideShare
0
Issues des intégrations
0
Intégrations
381
Actions
Partages
0
Téléchargements
43
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

  1. 1. AlpesJugMardi 20 Septembre 2011DevopsRetour d’experience
  2. 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. 3. Devops : une image vaut mille mots AlpesJUG 3
  4. 4. Devops : Allo ? AlpesJUGCourtesy @builddoctor 4
  5. 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. 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. 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. 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. 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. 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. 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. 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. 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. 14. Devops – Mets de l’huile AlpesJUG•  Connaître l’autre•  Travaillons ensemble 14
  15. 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. 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. 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
  18. 18. Retour d’expérience eXo Platform
  19. 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. 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. 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. 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. 23. Devops – Outils communs AlpesJUG•  Venus de la Prod » Généralisation de JMX (exposition Mbeans) » VisualVMNon aux boites noires ! 23
  24. 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 OpsUn même outil pour l’ensemble des acteurs évite laduplication d’informations et le rejet de workflowspécifiques ! 24
  25. 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. 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. 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. 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. 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. 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. 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. 32. DevOps – Jenkins SWF-CD (deployment) AlpesJUG Jenkins Master Jenkins Agent Jenkins Agent SQL Engine Jenkins Agent HTTP Frontend App Server 32
  33. 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. 34. DevOps – Jenkins QAF AlpesJUG 34
  35. 35. DevOps – Jenkins QAF AlpesJUG Jenkins Master Jenkins Agent Jenkins Agent SQL Engine Jenkins Agent Injector App Server 35
  36. 36. DevOps – Jenkins QAF tests process AlpesJUG 36
  37. 37. DevOps – Jenkins QAF Performances Jobs AlpesJUG 37
  38. 38. DevOps – Jenkins QAF Performances tests AlpesJUG 38
  39. 39. DevOps – Jenkins QAF Performances reports AlpesJUG 39
  40. 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. 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. 42. Les mains dans le cambouisDédicace spéciale à mes amis les @lescastcodeurs
  43. 43. DevOps – Les retours d’atelier AlpesJUGUn 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. 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. 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. 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. 47. DevOps – JMXTrans – Graphite en situation AlpesJUG Graphite @ JMXTrans 47
  48. 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. 49. DevOps – Résultats Graphite AlpesJUG 49
  50. 50. AlpesJUGEt voici le moment des questions et réponses … si vous avez été sages 50
  51. 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

×