60
Devops Retour d’experience RivieraDev 2011 Jeudi 20 Octobre 2011

DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

Embed Size (px)

DESCRIPTION

Slides de la présentation DevOps - Retour d'expérience, au RivieraDev le 20 Octobre 2011

Citation preview

Page 1: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

Devops Retour d’experience

RivieraDev 2011 Jeudi 20 Octobre 2011

Page 2: DevOps - Retour d’expérience - RivieraDev du 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: [email protected]

»  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

Page 3: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

3

Devops – DevOps ?

Mais c’est quoi DevOps ?

Page 4: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

4

Devops : En une image

Page 5: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

5

Devops : Allo ?

Courtesy @builddoctor

Page 6: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 7: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 8: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 9: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 10: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 11: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 12: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 13: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 14: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

14

Devops – Connaître l’autre

Page 15: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

15

Devops – Connaître l’autre

•  Le vocabulaire » OOM, jar, war, Maven, CI » Jmeter, SmokeTests, Selenium » SLA, PRA, SNMP, JRMP

Page 16: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

16

Devops – Connaître l’autre

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

Page 17: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

17

Devops – Connaître l’autre

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

Page 18: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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)

Page 19: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

Retour d’expérience eXo Platform

Page 20: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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)

Page 21: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

21

Devops – eXo Platform

•  Applications Java » AIO, PLF, Cloud IDE

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

Page 22: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 23: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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 »

Page 24: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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.

Page 25: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 26: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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.

Page 27: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 28: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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.

Page 29: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

29

DevOps – Des Jenkins

Jenkins, what’s else ?

Page 30: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 31: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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)

Page 32: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 33: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

33

DevOps – Jenkins SWF-CI

Jenkins pour le CI

Page 34: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 35: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

35

DevOps – Jenkins SWF-CI

Page 36: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

36

DevOps – Jenkins SWF-CD

Jenkins en déploiement continu

Page 37: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 38: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

38

DevOps – Jenkins SWF-CD

Page 39: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

39

DevOps – Jenkins SWF-CD

Page 40: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

40

DevOps – Jenkins SWF-CD

Page 41: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

41

DevOps – Jenkins QAF

Jenkins pour la QA

Page 42: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 43: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

43

DevOps – Jenkins QAF

Page 44: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

44

DevOps – Jenkins QAF

Schéma d’un scénario

Page 45: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

45

DevOps – Jenkins QAF

Jenkins Master

Jenkins Agent

SQL Engine Jenkins Agent

App Server

Jenkins Agent

Injector

Pilotage des différents composants

Page 46: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

46

DevOps – Jenkins QAF

Définition des jobs

Page 47: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

47

DevOps – Jenkins QAF

Tests de performances et résultats

Page 48: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

48

DevOps – Jenkins QAF

Historiques et tendances sur les performances

Page 49: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

49

DevOps – Jenkins ITOP

Jenkins pour la Prod

Page 50: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 51: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

51

DevOps – Jenkins ITOP

Jenkins Master

Jenkins Agent

Fedora 15 Jenkins Agent

CentOS 6

Jenkins Agent

Ubuntu 11.04

Pilotage multi-instances

Page 52: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

52

DevOps – Jenkins ITOP

Jenkins Master

SCMs

Subversion

GIT Native Repositories

Maven Repository

Construction

Page 53: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

53

DevOps – Jenkins ITOP

RPM

Page 54: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

54

DevOps – Jenkins ITOP

DEB

Page 55: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

55

DevOps – Conclusions

Conclusions

Page 56: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 57: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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

Page 58: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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.

Page 59: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

59

Et voici le moment des questions et réponses …

si vous avez été sages

Page 60: DevOps - Retour d’expérience - RivieraDev du 20 Octobre 2011

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/