View
1.244
Download
0
Category
Preview:
DESCRIPTION
Slides de la présentation DevOps - Retour d'expérience, au RivieraDev le 20 Octobre 2011
Citation preview
Devops Retour d’experience
RivieraDev 2011 Jeudi 20 Octobre 2011
2
Henri Gomez
• OpenSource Activiste » Commiteur Apache Tomcat depuis 2001
» Co-fondateur du projet JPackage » Projet OpenJDK OS/X Build
• Me contacter » Mail: henri.gomez@gmail.com
» Twitter : @hgomez
» Skype : gomezhe » Blog : http://blog.hgomez.net
• Pre eXo » +20 ans de développement
» Architecte Java » Finance/Bourse, Middle&Back
• eXo – Senior Director of IT Operations » Infrastructure locale (TN/UA/VN)
» Infrastructure dédiée sur OVH
» Infrastructure Cloud sur AWS
• eXo – QA Tech Lead
» QAF – QA Factory
» Benchmarks » Performance Analysis
3
Devops – DevOps ?
Mais c’est quoi DevOps ?
4
Devops : En une image
5
Devops : Allo ?
Courtesy @builddoctor
6
Devops - Kesako
• Ce que n’est pas DevOps
» Un produit (même si…) » Une personne ou équipe » Une méthodologie stricte » Une recette miracle
7
Devops - Kesako
• Ce qu’est DevOps
» Un mouvement » Un mode agile sur l’ensemble de la chaine » Une nouvelle donne technique » Une autre approche humaine
8
Devops - Mouvement
• Initié fin 2009 par des acteurs du monde Web » Google, Amazon, Yahoo, LinkedIn, Netflix » Des décideurs qui sont des technophiles
• Réponses à de nouvelles problématiques
» Déploiement massif » Déploiement régulier » PRA, continuité et Cloud
9
Devops – Agile sur toute la chaine
• 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
10
Devops – Mode Agile
• Déploiement fréquent » Rassure l’ensemble des acteurs (Dev/QA/Prod) » Rode la mécanique de mise en production » Réduit les risques de découvertes tardives » Mode itératif avec retours de QA/Prod » Infra et code dans le cycle de déploiement continu
11
Devops – Nouvelle Donne Tech
• 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
12
Devops – IT Ops comme Dev
• Une nouvelle approche des opérations IT » Infrastructure As Code (Chef, Puppet, Vagrant…) » Des Ops qui codent (Bash, Python, Ruby) » Et utilisent des outils du Dev (SVN/Mercurial/GIT)
• Automatisation » Pour réduire les erreurs » Pour gérer un nombre importants de machines
13
DevOps – De l’humain
• Constats » Opposer les équipes mène à l’échec
• Gains » Lever au plus tôt les incompréhensions et
inquiétudes » Responsabiliser chacun sur l’ensemble du cycle
de vie
14
Devops – Connaître l’autre
15
Devops – Connaître l’autre
• Le vocabulaire » OOM, jar, war, Maven, CI » Jmeter, SmokeTests, Selenium » SLA, PRA, SNMP, JRMP
16
Devops – Connaître l’autre
• L’environnement et les contraintes » Collocation et mutualisation » Monitoring » Sécurité » Backups
17
Devops – Connaître l’autre
• Les peurs » Boites noires » Performances » Effet de bord » Reprise d’activité » Plans de test tardif
18
Devops – Travaillons ensemble
• Tous ensemble, tous ensemble » En finir avec la patate chaude » Analyse commune des besoins » Définir des livrables clairs » Tordre le coup aux procédures lourdes (et
protectrices)
Retour d’expérience eXo Platform
20
Devops – eXo Platform
• Editeur logiciel • ~160 employés dans le monde • Une culture OpenSource • Historique JEE/Portal mergé avec JBoss GateIn
Vietnam: (~70)
Tunisia: (~30)
Ukraine: (~30)
France: (~20)
USA: (~10)
21
Devops – eXo Platform
• Applications Java » AIO, PLF, Cloud IDE
• Environnement » Linux, MySQL, PostgreSQL, DB2, Oracle » Local, dédié et Cloud (AWS)
22
Devops – eXo Platform
• 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
23
Devops – Outils communs
• JIRA • Subversion/Git • Repository Nexus • Support documentaire Wiki • Des Jenkins
Capitalisation des connaissances et suppression des réticences aux « outils des
autres »
24
Devops – JIRA
• Des projets JIRA » Par projets Dev » Par projets QA » Pour l’activité Prod » Mode sprint sur 2 semaines pour Dev » Mode sprint sur une semaine pour Prod
Chaque équipe peut voir et alimenter les projets d’autres équipes.
25
Devops – JIRA en PROD #1
• Une demande de déploiement est un ticket Ops » Planification JIRA » Description des opérations en cours » Retours suite aux opérations
• Les incidents de production sont des tickets » Collecte des éléments en pièces attachés ou liens » Qualification puis ouverture d’un ticket produit lié » Suivi de l’incident à la résolution produit
26
Devops – SCM pour tous
• SVN / Git » Les sources des applications - Dev » Les sources de tests Selenium/JMeter - QA » Les sources du packaging natifs - Prod » Les sources de manifest Puppet – Prod » Les sources des jobs Jenkins – Tous
Les sources, les tests et les process de production sont accessibles à chacun.
27
Devops – Nexus
• Entrepôt de 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 Prod Tous les acteurs partagent les mêmes livrables
28
Devops – Documentations
• Wiki » Des espaces par équipes ou sujets » Liens avec les projets JIRA » Cycle de publication simple » Mise à jour quotidienne » Participatif via les commentaires sur les articles Une source unique de documentation réactive
et sociale.
29
DevOps – Des Jenkins
Jenkins, what’s else ?
30
DevOps – Rappels sur Jenkins
» Jenkins gère des jobs
» Déclenchés sur horaires ou évènements
» C’est un enchaineur
» Il peut contrôler des instances esclaves
» C’est donc un enchaineur multi-sites
» Les résultats d’opérations remontent vers le Maitre
» Jenkins est en prime une console de supervision
31
Devops – La bande à Jenkins
• 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) » Test de performances et conformité
• Jenkins de Prod (ITOP) » Production des packages natifs (RPM/DEB)
32
Devops – Règles Jenkins
• Maitres » Coordinateurs » Authentification via Crowd/LDAP
• Agents » Producteurs » Mode SSH Slave & clés privées
• SCM encore » Les taches dans le SCM
33
DevOps – Jenkins SWF-CI
Jenkins pour le CI
34
DevOps – Jenkins SWF-CI
• Construction » Depuis les SCM Subversion et Git
• Tests » Junit
• Macro Packaging » Zip via Maven-Assembly
• Deploiement Nexus » Release, Snapshot et Stagging
35
DevOps – Jenkins SWF-CI
36
DevOps – Jenkins SWF-CD
Jenkins en déploiement continu
37
DevOps – Jenkins SWF-CD
• Déploiement en pre-production » Jobs free style » Free style ? » donc Ant, Maven mais aussi Bash, Python, Ruby, Perl » Les Ops peuvent entrer dans la danse
38
DevOps – Jenkins SWF-CD
39
DevOps – Jenkins SWF-CD
40
DevOps – Jenkins SWF-CD
41
DevOps – Jenkins QAF
Jenkins pour la QA
42
DevOps – Jenkins QAF
» Jenkins effectue de nuit les tests fonctionnels long » Et les tirs de performances » Les taches rébarbatives pour la machine » Analyse des résultats le lendemain matin avec le
café et les croissants » L’équipe QA se focalise sur l’analyse » La console Jenkins est aussi utilisable par les Dev
ou Ops
43
DevOps – Jenkins QAF
44
DevOps – Jenkins QAF
Schéma d’un scénario
45
DevOps – Jenkins QAF
Jenkins Master
Jenkins Agent
SQL Engine Jenkins Agent
App Server
Jenkins Agent
Injector
Pilotage des différents composants
46
DevOps – Jenkins QAF
Définition des jobs
47
DevOps – Jenkins QAF
Tests de performances et résultats
48
DevOps – Jenkins QAF
Historiques et tendances sur les performances
49
DevOps – Jenkins ITOP
Jenkins pour la Prod
50
DevOps – Jenkins ITOP
• Construction de packages natifs » Sources du packaging dans SVN » Binaires de références dans Nexus » RPM via agents Fedora & CentOS » DEB via agent Ubuntu
• Mise à jour des repos package » RPM Fedora & CentOS » DEB pour Ubuntu
51
DevOps – Jenkins ITOP
Jenkins Master
Jenkins Agent
Fedora 15 Jenkins Agent
CentOS 6
Jenkins Agent
Ubuntu 11.04
Pilotage multi-instances
52
DevOps – Jenkins ITOP
Jenkins Master
SCMs
Subversion
GIT Native Repositories
Maven Repository
Construction
53
DevOps – Jenkins ITOP
RPM
54
DevOps – Jenkins ITOP
DEB
55
DevOps – Conclusions
Conclusions
56
DevOps – Pratiques eXo
• Pas de cloisonnement » Chacun peut accéder à l’ensemble de l’information » Participation et échanges encouragés
• Outillage commun
» Facilite la communication » Permet l’échange des bonnes pratiques » Favorise le partage des compétences
57
Devops – Quelques pré-requis
• 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
pluridisciplinaires » Accepter une ‘démocratie’ plus directe
58
DevOps – Final
DevOps, c’est avant tout une culture de la communication.
Il ne doit pas rester cantonné à une
élite mais inclure l’ensemble des acteurs.
59
Et voici le moment des questions et réponses …
si vous avez été sages
60
Licence et copyrights
• 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/
Recommended