Devoxx devops university_2012

79
Les mercenaires du Devops ! lundi 23 avril 2012

description

Présentation DevOps faite à Devoxx France

Transcript of Devoxx devops university_2012

Page 1: Devoxx devops university_2012

Les mercenairesdu Devops !

lundi 23 avril 2012

Page 2: Devoxx devops university_2012

En route pour Devops

1 : La rache

2 : La raison

3 : La sérénité

4 : Des ${idées} et ${outils} pour y arriver.

lundi 23 avril 2012

Page 3: Devoxx devops university_2012

Speakers

Dimitri Baeli : Chien de berger agile chez Courtanet

Gildas Cuisinier : Hirondelle du Printemps chez Sfeir Benelux

Henri Gomez : Maitre CI deuxième dan chez Axway

Pierre-Antoine Grégoire : Chewbacca chez Agile Partner

Arnaud Héritier : PHD GIT chez eXo Platform

lundi 23 avril 2012

Page 4: Devoxx devops university_2012

Les principes Devops

4lundi 23 avril 2012

Page 5: Devoxx devops university_2012

lundi 23 avril 2012

Page 6: Devoxx devops university_2012

Development is about pushing changes

lundi 23 avril 2012

Page 7: Devoxx devops university_2012

lundi 23 avril 2012

Page 8: Devoxx devops university_2012

lundi 23 avril 2012

Page 9: Devoxx devops university_2012

lundi 23 avril 2012

Page 10: Devoxx devops university_2012

lundi 23 avril 2012

Page 11: Devoxx devops university_2012

1 - La rache

lundi 23 avril 2012

Page 12: Devoxx devops university_2012

1 - La rache

•Livrables fabriqués à la main•Sources non sécurisées•Modification des livrables à la mise en prod•Binaire fabriqué juste à temps•Tests en prod

lundi 23 avril 2012

Page 13: Devoxx devops university_2012

Sh4rewith.me - V0.1

Petite Application de partage de fichiers

Webapp (war)Système de fichier (/files)

lundi 23 avril 2012

Page 14: Devoxx devops university_2012

Signaux d’alarme :• Ca marche chez moi !• Jusqu’ici tout va bien ...• J‘ai piscine• Attends je regarde dans le code

1 - La rache

lundi 23 avril 2012

Page 15: Devoxx devops university_2012

Signaux d’alarme :• Ca marche chez moi !• Jusqu’ici tout va bien ...• J‘ai piscine• Attends je regarde dans le code

1 - La rache

Comment en sortir ?

lundi 23 avril 2012

Page 16: Devoxx devops university_2012

2 - La raison

lundi 23 avril 2012

Page 17: Devoxx devops university_2012

Le Joel Test

http://www.joelonsoftware.com/articles/fog0000000043.html

lundi 23 avril 2012

Page 18: Devoxx devops university_2012

Le Joel Test

1- Utilisez-vous un gestionnaire de sources ?

http://www.joelonsoftware.com/articles/fog0000000043.html

lundi 23 avril 2012

Page 19: Devoxx devops university_2012

Le Joel Test

1- Utilisez-vous un gestionnaire de sources ? 2- Vos binaires sont-ils assemblés en une fois ?

http://www.joelonsoftware.com/articles/fog0000000043.html

lundi 23 avril 2012

Page 20: Devoxx devops university_2012

Le Joel Test

1- Utilisez-vous un gestionnaire de sources ? 2- Vos binaires sont-ils assemblés en une fois ? 3- Vos binaires sont-ils produits quotidiennement ?

http://www.joelonsoftware.com/articles/fog0000000043.html

lundi 23 avril 2012

Page 21: Devoxx devops university_2012

Le Joel Test

1- Utilisez-vous un gestionnaire de sources ? 2- Vos binaires sont-ils assemblés en une fois ? 3- Vos binaires sont-ils produits quotidiennement ? 4- Avez-vous un gestionnaire d'anomalies ?

http://www.joelonsoftware.com/articles/fog0000000043.html

lundi 23 avril 2012

Page 22: Devoxx devops university_2012

Le Joel Test

1- Utilisez-vous un gestionnaire de sources ? 2- Vos binaires sont-ils assemblés en une fois ? 3- Vos binaires sont-ils produits quotidiennement ? 4- Avez-vous un gestionnaire d'anomalies ? 5- Le code est-il corrigé avant d'être étendu ?

http://www.joelonsoftware.com/articles/fog0000000043.html

lundi 23 avril 2012

Page 23: Devoxx devops university_2012

Le Joel Test

1- Utilisez-vous un gestionnaire de sources ? 2- Vos binaires sont-ils assemblés en une fois ? 3- Vos binaires sont-ils produits quotidiennement ? 4- Avez-vous un gestionnaire d'anomalies ? 5- Le code est-il corrigé avant d'être étendu ? 6- Avez-vous un planning à jour ?

http://www.joelonsoftware.com/articles/fog0000000043.html

lundi 23 avril 2012

Page 24: Devoxx devops university_2012

Le Joel Test

1- Utilisez-vous un gestionnaire de sources ? 2- Vos binaires sont-ils assemblés en une fois ? 3- Vos binaires sont-ils produits quotidiennement ? 4- Avez-vous un gestionnaire d'anomalies ? 5- Le code est-il corrigé avant d'être étendu ? 6- Avez-vous un planning à jour ? 7- Avez-vous des spécifications ?

http://www.joelonsoftware.com/articles/fog0000000043.html

lundi 23 avril 2012

Page 25: Devoxx devops university_2012

Le Joel Test

1- Utilisez-vous un gestionnaire de sources ? 2- Vos binaires sont-ils assemblés en une fois ? 3- Vos binaires sont-ils produits quotidiennement ? 4- Avez-vous un gestionnaire d'anomalies ? 5- Le code est-il corrigé avant d'être étendu ? 6- Avez-vous un planning à jour ? 7- Avez-vous des spécifications ? 8- Vos développeurs sont-ils dans un lieu calme ?

http://www.joelonsoftware.com/articles/fog0000000043.html

lundi 23 avril 2012

Page 26: Devoxx devops university_2012

Le Joel Test

1- Utilisez-vous un gestionnaire de sources ? 2- Vos binaires sont-ils assemblés en une fois ? 3- Vos binaires sont-ils produits quotidiennement ? 4- Avez-vous un gestionnaire d'anomalies ? 5- Le code est-il corrigé avant d'être étendu ? 6- Avez-vous un planning à jour ? 7- Avez-vous des spécifications ? 8- Vos développeurs sont-ils dans un lieu calme ? 9- Avez-vous les meilleurs outils pour votre budget ?

http://www.joelonsoftware.com/articles/fog0000000043.html

lundi 23 avril 2012

Page 27: Devoxx devops university_2012

Le Joel Test

1- Utilisez-vous un gestionnaire de sources ? 2- Vos binaires sont-ils assemblés en une fois ? 3- Vos binaires sont-ils produits quotidiennement ? 4- Avez-vous un gestionnaire d'anomalies ? 5- Le code est-il corrigé avant d'être étendu ? 6- Avez-vous un planning à jour ? 7- Avez-vous des spécifications ? 8- Vos développeurs sont-ils dans un lieu calme ? 9- Avez-vous les meilleurs outils pour votre budget ? 10- Avez-vous des testeurs ?

http://www.joelonsoftware.com/articles/fog0000000043.html

lundi 23 avril 2012

Page 28: Devoxx devops university_2012

Le Joel Test

1- Utilisez-vous un gestionnaire de sources ? 2- Vos binaires sont-ils assemblés en une fois ? 3- Vos binaires sont-ils produits quotidiennement ? 4- Avez-vous un gestionnaire d'anomalies ? 5- Le code est-il corrigé avant d'être étendu ? 6- Avez-vous un planning à jour ? 7- Avez-vous des spécifications ? 8- Vos développeurs sont-ils dans un lieu calme ? 9- Avez-vous les meilleurs outils pour votre budget ? 10- Avez-vous des testeurs ? 11- Les recrues écrivent-il du code ?

http://www.joelonsoftware.com/articles/fog0000000043.html

lundi 23 avril 2012

Page 29: Devoxx devops university_2012

Le Joel Test

1- Utilisez-vous un gestionnaire de sources ? 2- Vos binaires sont-ils assemblés en une fois ? 3- Vos binaires sont-ils produits quotidiennement ? 4- Avez-vous un gestionnaire d'anomalies ? 5- Le code est-il corrigé avant d'être étendu ? 6- Avez-vous un planning à jour ? 7- Avez-vous des spécifications ? 8- Vos développeurs sont-ils dans un lieu calme ? 9- Avez-vous les meilleurs outils pour votre budget ? 10- Avez-vous des testeurs ? 11- Les recrues écrivent-il du code ? 12- Les développeurs font-ils une démonstration ?

http://www.joelonsoftware.com/articles/fog0000000043.html

lundi 23 avril 2012

Page 30: Devoxx devops university_2012

Le Joel Test

Moins de 10 ?

lundi 23 avril 2012

Page 31: Devoxx devops university_2012

Alors vous avez de sérieux problèmes

Le Joel Test

Moins de 10 ?

lundi 23 avril 2012

Page 32: Devoxx devops university_2012

Alors vous avez de sérieux problèmes

Le Joel Test

Moins de 10 ?

Août 2000

lundi 23 avril 2012

Page 33: Devoxx devops university_2012

2 -La raison

Pratiques•Reproductibilité des binaires•Livrables très fréquents (Intégration Continue)• Intégration continue, Tests unitaires visibles•Bonne gestion des bugs/taches• Inspection du code dans l’IDE

lundi 23 avril 2012

Page 34: Devoxx devops university_2012

Sh4rewith.me V1.0

War fabriqué par Maven/Jenkins/nexusMongo DB

Tomcat installé manuellement

2 -La raison

lundi 23 avril 2012

Page 35: Devoxx devops university_2012

Il reste des gros soucis :

• La mise en production est un événement rare• Eux / nous (Marketing / Dev / QA / Prod)• Pas de partage des risques• Manque de vision sur les métriques & Monitoring

2 -La raison

lundi 23 avril 2012

Page 36: Devoxx devops university_2012

3 - La sérénité

lundi 23 avril 2012

Page 37: Devoxx devops university_2012

lundi 23 avril 2012

Page 38: Devoxx devops university_2012

Objectifs :• Cycle court entre demande et mise en production• « Contribution d’amélioration » plutôt que « commit »• Gestion complète de la configuration (source, conf, OS)• Gestion de la dette technique• Automatisation des étapes à risque• Monitoring outillé (dev & ops)

3 - La sérénité

lundi 23 avril 2012

Page 39: Devoxx devops university_2012

Sh4rewith.me V2.0

Petite Application de partage de fichiers

Démonstration

3 - La sérénité

lundi 23 avril 2012

Page 40: Devoxx devops university_2012

Université DevopsLe retour

lundi 23 avril 2012

Page 41: Devoxx devops university_2012

Rappel des principes Devops

26lundi 23 avril 2012

Page 42: Devoxx devops university_2012

4 – Des idées pour commencer

lundi 23 avril 2012

Page 43: Devoxx devops university_2012

Les meilleurs outils pour votre budget

28

4 - Des idées pour commencer

lundi 23 avril 2012

Page 44: Devoxx devops university_2012

eXo Software Factory

Subversion

Git

Nexus

Jenkins

Jira

Fisheye/Crucible

Sonar

Confluence

29

4 - Des idées pour commencer

lundi 23 avril 2012

Page 45: Devoxx devops university_2012

Live Acceptance Server

4 - Des idées pour commencer

lundi 23 avril 2012

Page 46: Devoxx devops university_2012

4 - Des idées pour commencer

lundi 23 avril 2012

Page 47: Devoxx devops university_2012

Elargir le cadre d’utilisation de Jenkins

• Trigger plugin• Un jenkins pour les Dev• Un jenkins pour la QA• Un jenkins pour les OPS

4 - Des idées pour commencer

lundi 23 avril 2012

Page 48: Devoxx devops university_2012

• Un livrable

• Un jeu de fonctionnalité

• Des ressources

• Une configuration

33

Profiles Spring4 - Des idées pour

commencer

lundi 23 avril 2012

Page 49: Devoxx devops university_2012

• JNDI

• Définition des ressources dans le serveur

• Récupération de celle-ci par code dans l’application

•Délégation aux Ops de la configuration de production

•Configuration différentes en mode «non déploié»

34

Ressources : JNDI4 - Des idées pour

commencer

lundi 23 avril 2012

Page 50: Devoxx devops university_2012

1 <import resource="config-${env}.xml"/>

1 System.setProperty("env", "TEST");

1 <jdbc:embedded-database

2 id="dataSource">

3 <jdbc:script

4 location="schema.sql"/>

5 <jdbc:script

6 location="test-data.sql"/>

7 </jdbc:embedded-database>

1 <jee:jndi-lookup jndi-name="jdbc/datasource"/>

2

Import + Propriété Système

35

4 - Des idées pour commencer

lundi 23 avril 2012

Page 51: Devoxx devops university_2012

36

1 @Configuration 2 @Import(ApplicationDevConfig.class) 3 public class ApplicationConfig { 4 5 @Bean 6 DataSource dataSource(){ 7 JndiObjectFactoryBean result = new JndiObjectFactoryBean(); 8 result.setJndiName("jdbc/dataSource"); 9 return (DataSource) result.getObject();10 }11 }

@Profile 4 - Des idées pour

commencer

lundi 23 avril 2012

Page 52: Devoxx devops university_2012

37

1 @Configuration 2 @Profile("dev") 3 public class ApplicationDevConfig { 4 5 @Bean 6 DataSource dataSource() { 7 EmbeddedDatabaseBuilder builder = new

EmbeddedDatabaseBuilder(); 8 EmbeddedDatabase db = ... 9 return db;10 }11 }

@Profile 4 - Des idées pour

commencer

lundi 23 avril 2012

Page 53: Devoxx devops university_2012

38

1 <beans profile="dev">2 <jdbc:embedded-database id="dataSource">3 <jdbc:script location="schema.sql"/>4 <jdbc:script location="test-data.sql"/>5 </jdbc:embedded-database>6 </beans>

<Profile /> 4 - Des idées pour

commencer

lundi 23 avril 2012

Page 54: Devoxx devops university_2012

39

Activation

1 System.setProperty("spring.profiles.active", "DEV");

1 JAVA_OPTS="spring.profiles.active=DEV"

Mode «Dev»

Mode «Ops»

4 - Des idées pour commencer

lundi 23 avril 2012

Page 55: Devoxx devops university_2012

L’approche packaging natif

40

4 - Des idées pour commencer

lundi 23 avril 2012

Page 56: Devoxx devops university_2012

Packaging Natif

• Coeur de la pile applicative des OS

• Gestion des dépendances

• Mise à jour automatique ou sélective

• Utilisé par les Ops

41

4 - Des idées pour commencer

lundi 23 avril 2012

Page 57: Devoxx devops university_2012

Packaging sous Unix

• RPM (Redhat Package Manager) sous RHEL/CentOS/ Fedora, SLES/OpenSuse, Mandriva

• DEB sous Debian/Ubuntu

• PKG sous Solaris

42

4 - Des idées pour commencer

lundi 23 avril 2012

Page 58: Devoxx devops university_2012

Qu’est-ce qu’un package ?

• Un fichier (.rpm, .deb)

• Des données (fichiers et programmes)

• Du code exécuté lors de l’installation, la mise à jour ou la suppression du package

• Lié à une architecture (Intel, ARM, PowerPC en 32 ou 64bits) ou neutre (exemple: une application Java)

43

4 - Des idées pour commencer

lundi 23 avril 2012

Page 59: Devoxx devops university_2012

Points communs avec Maven

• Construction par DSL simple

• Quelques commandes pour les manipuler (rpm, apt-get)

• Gestion des dépendances pour la construction mais aussi pour l’exécution

• Dépôts de packages, accessible en local ou via HTTP

• Nexus et Artifactory peuvent servir de dépôts RPM

• Mises à jour automatiques ou contrôlées

44

4 - Des idées pour commencer

lundi 23 avril 2012

Page 60: Devoxx devops university_2012

Un DSL pour les Ops

• Simple

• Quelques macros

• SH powered

45

4 - Des idées pour commencer

lundi 23 avril 2012

Page 61: Devoxx devops university_2012

Source d’un RPM

46

4 - Des idées pour commencer

lundi 23 avril 2012

Page 62: Devoxx devops university_2012

AUTO-SUFFISANT

• Un package est auto-suffisant

• Programmes principaux et annexes (ex: logrotate)

• Données

• Comptes utilisateurs

• Contrôle total sur le cycle de vie ‘en situation’

47

4 - Des idées pour commencer

lundi 23 avril 2012

Page 63: Devoxx devops university_2012

ET ENCORE

• Un processus déterministe et donc réplicable

• Peut être utilisé par Puppet ou Chef

• Des artifacts centralisables comme pour Maven

• Une approche composant runtime

48

4 - Des idées pour commencer

lundi 23 avril 2012

Page 64: Devoxx devops university_2012

TypeS de RPMs

49

4 - Des idées pour commencer

lundi 23 avril 2012

Page 65: Devoxx devops university_2012

TypeS de RPMs

RPMs OSRPMs OSRPMs OS

49

4 - Des idées pour commencer

lundi 23 avril 2012

Page 66: Devoxx devops university_2012

TypeS de RPMs

RPMs OSRPMs OSRPMs OS

Fournis par votre distribution Linux

49

4 - Des idées pour commencer

lundi 23 avril 2012

Page 67: Devoxx devops university_2012

TypeS de RPMs

RPMs OSRPMs OSRPMs OS

RPMs ApplicatifRPMs ApplicatifRPMs ApplicatifFournis par votre distribution Linux

49

4 - Des idées pour commencer

lundi 23 avril 2012

Page 68: Devoxx devops university_2012

TypeS de RPMs

RPMs OSRPMs OSRPMs OS

RPMs ApplicatifRPMs ApplicatifRPMs ApplicatifFournis par votre distribution Linux

Produits par les Devs & Ops

49

4 - Des idées pour commencer

lundi 23 avril 2012

Page 69: Devoxx devops university_2012

TypeS de RPMs

RPMs OSRPMs OSRPMs OS

RPMs ApplicatifRPMs ApplicatifRPMs Applicatif

RPMs Configuration

RPMs Configuration

RPMs Configuration

RPMs Configuration

Fournis par votre distribution Linux

Produits par les Devs & Ops

49

4 - Des idées pour commencer

lundi 23 avril 2012

Page 70: Devoxx devops university_2012

TypeS de RPMs

RPMs OSRPMs OSRPMs OS

RPMs ApplicatifRPMs ApplicatifRPMs Applicatif

RPMs Configuration

RPMs Configuration

RPMs Configuration

RPMs Configuration

Fournis par votre distribution Linux

Produits par les Devs & Ops

Produits par les Ops

49

4 - Des idées pour commencer

lundi 23 avril 2012

Page 71: Devoxx devops university_2012

DevOps Native Packages for you !

• http://code.google.com/p/devops-incubator/

• RPMs pour Subversion, GitBlit, Jenkins, Nexus, Sonar

• Pour OpenSuse 12.1, et autres (ouvert à contribution)

50lundi 23 avril 2012

Page 72: Devoxx devops university_2012

49

AlpesJUG DevOps – Résultats Graphite

A ne pas négliger, utilisez le en permanence

- JMX : MBeans fonctionnels- VisualVM et ses plugins- JMX Trans - Graphite (monitoring light)- Munin, JavaMelody, Zabbix, Jolokia (rest)

JMX et le Monitoring4 - Des idées pour

commencer

lundi 23 avril 2012

Page 73: Devoxx devops university_2012

- Installation scriptée et historisée d’un serveur- Garantie de la maitrise des serveurs déployés- Scalabilité, reproductibilité, - Puppet est très structurant, Chef est plus libre

Exemple :

common::archive::tar-gz{"/opt/apache-tomcat-${tomcat_version}/.installed": source => $tomcaturl, target => "/opt", }

Et Chef / Puppet ?4 - Des idées pour

commencer

lundi 23 avril 2012

Page 74: Devoxx devops university_2012

Vagrant

• Surcouche à Oracle VirtualBox et ses outils en ligne de commande

• Permet de partager des VMs et leur configuration (aka box)

• VBox préconfigurées pour supporter Chef & Puppet

# Installation$ (sudo) gem install vagrant

53lundi 23 avril 2012

Page 75: Devoxx devops university_2012

Veewee

• Extension à Vagrant

• Permet d’automatiser la création de Box

# Installation$ (sudo) gem install veewee

54lundi 23 avril 2012

Page 76: Devoxx devops university_2012

Puppet - Après quelques jours (et nuits) d’utilisation

• J’aime

• La capacité à modéliser proprement ses environnements (modèle déclaratif du DSL)

• La bibliographie associée

• La communauté avec beaucoup de ressources sur le Net

• La capacité d’extensibilité de l’outil (via modules, librairies/plugins ...)

55lundi 23 avril 2012

Page 77: Devoxx devops university_2012

Puppet - Après quelques jours (et nuits) d’utilisation

• J’aime moins

• Les documentations officielles (fouillis, incomplètes, ...)

• Le manque de moyen pour partager (réutiliser/contribuer) des modules

• Les limitations (pas de move, pas de wget ...) et “excentricités” du DSL

• Les manques de justifications de certaines contraintes/limitations du DSL (pas de mkdir -p ...)

56lundi 23 avril 2012

Page 78: Devoxx devops university_2012

Merci !

lundi 23 avril 2012

Page 79: Devoxx devops university_2012

References

• Patrck Debois pour l’invention du terme DevOps : http://www.jedi.be/blog/• Principes DevOps : http://dev2ops.org/blog/2010/2/22/what-is-devops.html• Projet SWF en mode DevOps : http://code.google.com/p/devops-incubator/• http://www.slideshare.net/carlossg/from-dev-to-devops-apachecon-na-2011•

lundi 23 avril 2012