DevOps - Retour d'expérience - MarsJug du 29 Juin 2011

  • Published on
    25-Jun-2015

  • View
    2.978

  • Download
    1

Embed Size (px)

DESCRIPTION

Slides de la prsentation DevOps - Retour d'exprience, au MarsJug le 29 Juin 2011

Transcript

  • 1. Marseille JugMercredi 29 Juin 2011DevopsRetour dexperience

2. Henri Gomez eXo ITOP Manager OpenSource Activiste Responsable de la production Commiteur Apache Tomcat depuis 2001 Infrastructure locale (TN/UA/VN) Co-fondateur du projet JPackage Infrastructure ddie sur OVH Projet OpenJDK OS/X Build Infrastructure Cloud sur AWS Me contacter eXo QA Tech Lead Mail: henri.gomez@gmail.com QAF QA Factory Twitter : @hgomez Benchmarks Skype : gomezhe Performance Analysis Blog : http://blog.hgomez.net2 3. Devops : une image vaut mille mots3 4. Devops - Kesako Ce que nest pas DevOps Un produit (mme si) Une personne ou quipe Une mthodologie stricte Une recette miracle4 5. Devops - Kesako Ce quest DevOps Un mouvement Une approche agile sur lensemble de la chaine Une nouvelle donne technique et humaine 5 6. Devops - Mouvement Initi fin 2009 par des acteurs du monde Web Google, Amazon, Yahoo, LinkedIn, Netflix De dcideurs qui sont danciens techies Rponses de nouvelles problmatiques Dploiement massif Dploiement rgulier PRA, continuit et Cloud 6 7. Devops - Mouvement Un mode de pense diffrent Scale out plutt que Scale in Couplages lgers Cloud aware7 8. Devops - Mouvement Une nouvelle approche des oprations IT Infrastructure As Code Des SysAdm qui codent (Bash, Perl, Python, Ruby) Et qui utilisent des outils du Dev (Subversion/GIT) Automatisation Pour rduire les erreurs Pour grer un nombre importants de machines 8 9. Devops Approche Agile Ne pas rduire lAgile au dveloppement Les mthodes agiles ont fait leur preuve en DEV Applicables sous condition en QA et Production Inscrire les oprations de PROD dans le processus9 10. Devops Approche Agile Dploiements frquents Rassure les quipes de Production Rode la mcanique Infra et code dans le cycle de dploiement continu 10 11. DevOps Nouvelle donne humaine Constats Opposer les quipes amne lchec Gains Lever au plus tt les incomprhensions et inquitudes Responsabiliser chacun sur lensemble du cycle de vie 11 12. Devops Mets de lhuile Connatre lautre Travaillons ensemble Tout le monde sur le pont12 13. Devops Connatre lautre Le vocabulaire JVM, jar, war, Beans, Jenkins, Maven Jmeter, SmokeTests, Selenium SNMP, Nagios, Cacti, Hyperic, RHQ, JMX Lenvironnement et les contraintes Collocation et mutualisation Monitoring Scurit 13 14. Devops Connatre lautre Les peurs de lautre Boites noires Performances Effet de bord Reprise dactivit Plans de test tardif14 15. Devops Travaillons ensemble Tous ensemble, tous ensemble (osef en terre Olympienne)En finir avec la patate chaudeAnalyser ensemble les besoinsDfinir des livrables clairsTordre le coup aux procdures lourdes (et protectrices)15 16. Retour dexprience eXo Platform 17. Devops eXo PlatformFrance: (~20)Ukraine: (~30) Tunisia: (~30) USA: (~10) Vietnam: (~70) Editeur ~160 employs dans le monde Une culture OpenSource Historique JEE/Portal merg avec JBoss GateIn17 18. Devops eXo Platform Applications Java AIO, PLF, Cloud IDE Environnement Linux, MySQL, PostgreSQL, DB2, Oracle Local, ddi et Cloud (AWS) 18 19. Devops eXo Platform Des quipes dans 5 pays et 4 continents DEV, Support, QA, ITOP (production) Un outillage classique Subversion & GIT Maven, Nexus Jenkins, Sonar JIRA, Confluence, Fisheye19 20. Devops Outils communs JIRA Subversion/Git Dev, QA ou Prod, les sources sont dans le SCM Repository Nexus Support documentaire Wiki Des Jenkins Capitalisation des connaissances Supprime les rticences outils de lautre 20 21. Devops Outils communs Venus de la Prod Gnralisation de JMX (exposition Mbeans) VisualVMNon aux boites noires !21 22. Devops JIRA en situation Des projets JIRA Par projets Dev Par projets QA Pour lactivit ITOP (Prod) Mode sprint sur 2 semaines pour Dev Mode sprint sur une semaine pour ITOPUn mme outil pour lensemble des acteurs vite laduplication dinformations et le rejet de workflowspcifiques ! 22 23. Devops JIRA pour la PROD Une demande de dploiement est un ticket Prod Planification JIRA Description des oprations en cours Retours suite aux oprations.23 24. Devops JIRA pour la PROD Les incidents de Prod sont des tickets Collecte des lments en pices attachs ou liens externes Pr-analyse Qualification puis ouverture dun ticket Produit li Permis le suivi de lincident la rsolution produit24 25. Devops Mmes rfrentiels Tous les acteurs partagent les mmes livrables Rduction des erreurs sur des jars/wars customiss ou dviants Une source connue et unique contrle par le SWF Manager Renforce la ncessit de livraison par le Dev Rassure les quipes de QA et ITOP 25 26. Devops The Jenkins Gang Jenkins dintgration continue (SWF-CI) Intgration continue et packaging dapplications Jenkins dploiement continu (SWF-CD) Dploiement continu vers la pre-prod Jenkins de QA (QAF) Dploiement vers linfra QA Test de performances et conformit 26 27. DevOps Jenkins SWF-CI (build/deploy repos) Construction et tests Deploiement ASAP Via Maven 2/3 Depuis sources dans SVN ou GIT Vers les repositories Maven ~100 jobs 27 28. DevOps Jenkins SWF-CI (packaging) Packaging des produits. Prts pour dmos ou tests Utilisation de contraintes amonts pour limiter les reconstructions Utilisation du plugin priority sorter avec une priorit faible ~20 jobs 28 29. DevOps Jenkins SWF-CD (deployment) Dploiement en pre-production Mode SSH Slave et cls prives (scurit) Restons simple (KISS), jobs free style Bash est lami de vos SysAdmin Les taches du job dans Subversion On mlange bien ici Dev et ITOP, avec loutillage maitris par chacun et les bonnes pratiques comme les sources dans le SCM. 29 30. DevOps Jenkins SWF-CD (deployment)Jenkins Master Jenkins AgentJenkins Agent SQL Engine Jenkins Agent HTTP Frontend App Server 30 31. DevOps Jenkins SWF-CD (deployment)Jenkins est un enchaineurIl dclenche les jobs suivant nos rgles (horaires ou vnements)Il prend le contrle dinstances esclaves dans un environnement contraint li au profil SSHLes rsultats doprations (stdout/stderr) remontent naturellement vers le Jenkins MaitreJenkins devient une console doprationPour lquipe Prod, mais utilisable par les DEV ou la QA sous contrle et conditions 31 32. DevOps Jenkins QAF 32 33. DevOps Jenkins QAFJenkins MasterJenkins Agent Jenkins AgentSQL EngineJenkins Agent InjectorApp Server 33 34. DevOps Jenkins QAF tests process 34 35. DevOps Jenkins QAF Performances Jobs35 36. DevOps Jenkins QAF Performances tests 36 37. DevOps Jenkins QAF Performances reports 37 38. DevOps Jenkins QAFJenkins comme enchaineurIl va bosser la nuit pour produire des tests fonctionnels long ou des tirs de performancesAnalyse des rsultats le lendemain matin avec le caf et les croissants (th / biscotte accept)Lquipe QA se focalise sur lanalyse (humaine) et confie les taches rbarbatives (dploiement, initialisation, tirs longs) la machine.Jenkins est une console dopration pour lquipe QA, elle aussi utilisable par les DEV ou PROD 38 39. DevOps Retours eXo Un outillage commun facilite la communication Echange des bonnes pratiques (Dev, ITOP, QA) Partage et monte en comptence ensemble Laissons faire la machine ce qui est long ou rbarbatif Restons simple DevOps ne doit pas rester cantonn une lite, cest mme tout le contraire, il doit sduire lensemble des acteurs. 39 40. Les mains dans le cambouisDdicace spciale mes amis les @lescastcodeurs 41. DevOps Les retours datelierUn besoin courant des quipes DEV et QA est lanalyse du comportement dapplications en situation.Les outils de profiling sont trop intrusifs ou mal maitrissLa supervision de prod nest pas adapteRestons simple et pragmatiqueRcompensons leffort JMX 41 42. DevOps La suite GraphiteSolution de collecte et tracs de mtriquesDveloppe en Python (installation dlicate sur OS/X)Un collecteur via TCP/IP : CarbonUn gestionnaire de stockage : WhisperUn trac des mtriques : Graphite42 43. DevOps La suite GraphiteCollecteur et stockage scalable sur plusieursinstancesAgrgation sur un mme graphique des mtriquesdiffrentsMoteur de rendu entirement configurableAccs via lUI Web ou via URL restituant une image PNG43 44. DevOps JMXTrans Un collecteur JMX simple et performant Ecris par un Dev Apache bien connu (Jon Stevens) pass du cot obscur (Prod) Fonctionne sur nimporte quelle machine (in/of situ) Simple, lger et rapidement dployable Alimentation de back-ends comme RRDTools et Graphite Une syntaxe de dfinition simple et efficace (JSON) Un taux chantillonnage rglage 44 45. DevOps JMXTrans Graphite en situationGraphite@JMXTrans45 46. DevOps Exemples JSON{"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} ] } 46 47. DevOps DevOps Rsultats Graphite 47 48. Et voici le moment des questions et rponses si vous avez t sages 48 49. Licence et copyrights Photos et logos appartiennent leur auteurs/ propritaires respectifs. Contenu sous Creative Commons 3.0 http://creativecommons.org/licenses/by-nc-sa/3.0/us/ 49