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
6
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
7
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
8
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
9
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
10
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
11
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
12
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
13
15. Devops – Connaître l’autre
• Le vocabulaire
» OOM, jar, war, Maven, CI
» Jmeter, SmokeTests, Selenium
» SLA, PRA, SNMP, JRMP
15
16. Devops – Connaître l’autre
• L’environnement et les contraintes
» Collocation et mutualisation
» Monitoring
» Sécurité
» Backups
16
17. Devops – Connaître l’autre
• Les peurs
» Boites noires
» Performances
» Effet de bord
» Reprise d’activité
» Plans de test tardif
17
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)
18
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
22
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 »
23
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.
24
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
25
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.
26
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
27
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.
28
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
30
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)
31
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
32
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
34
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
37
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
42
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
50
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
56
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
57
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.
58
59. Et voici le moment des questions et réponses …
si vous avez été sages
59
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/
60