SlideShare une entreprise Scribd logo
1  sur  79
Télécharger pour lire hors ligne
Les mercenaires
                        du Devops !




lundi 23 avril 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
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
Les principes Devops




                                             4
lundi 23 avril 2012
lundi 23 avril 2012
Development is about pushing changes




lundi 23 avril 2012
lundi 23 avril 2012
lundi 23 avril 2012
lundi 23 avril 2012
lundi 23 avril 2012
1 - La rache




lundi 23 avril 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
Sh4rewith.me - V0.1

                      Petite Application de partage de fichiers

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




lundi 23 avril 2012
1 - La rache

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




lundi 23 avril 2012
1 - La rache

        Signaux d’alarme :
             •
            Ca marche chez moi !
             •
            Jusqu’ici tout va bien ...
             •
            J‘ai piscine
             •
            Attends je regarde dans le code
                                                                  tir ?
                                                             nsor
                                                     en   te
                                                   m
                                               C om



lundi 23 avril 2012
2 - La raison




lundi 23 avril 2012
Le Joel Test




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

lundi 23 avril 2012
Le Joel Test
                      1- Utilisez-vous un gestionnaire de sources ?




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

lundi 23 avril 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
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
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
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
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
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
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
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
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
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
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
Le Joel Test




                      Moins de 10 ?




lundi 23 avril 2012
Le Joel Test




                             Moins de 10 ?


                      Alors vous avez de sérieux problèmes




lundi 23 avril 2012
Le Joel Test




                             Moins de 10 ?


                      Alors vous avez de sérieux problèmes



                                                                   t2 000
                                                             Aoû



lundi 23 avril 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
2 -La raison
                               Sh4rewith.me V1.0

                      War fabriqué par Maven/Jenkins/nexus
                                   Mongo DB
                         Tomcat installé manuellement




lundi 23 avril 2012
2 -La raison


              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

lundi 23 avril 2012
3 - La sérénité




lundi 23 avril 2012
lundi 23 avril 2012
3 - La sérénité


            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)


lundi 23 avril 2012
3 - La sérénité

                                Sh4rewith.me V2.0

                      Petite Application de partage de fichiers

                                  Démonstration




lundi 23 avril 2012
Université Devops
                          Le retour



lundi 23 avril 2012
Rappel des principes Devops




                                                    26
lundi 23 avril 2012
4 – Des idées pour commencer




lundi 23 avril 2012
4 - Des idées pour
                                                          commencer




                      Les meilleurs outils pour votre budget




                                                                           28
lundi 23 avril 2012
4 - Des idées pour
                eXo Software Factory                   commencer




            Subversion          Jira

            Git                 Fisheye/Crucible

            Nexus               Sonar

            Jenkins             Confluence




                                                                        29
lundi 23 avril 2012
4 - Des idées pour
                                                   commencer




                      Live Acceptance Server




lundi 23 avril 2012
4 - Des idées pour
                          commencer




lundi 23 avril 2012
4 - Des idées pour
                                                                 commencer


                      Elargir le cadre d’utilisation de Jenkins

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


lundi 23 avril 2012
4 - Des idées pour
                                      Profiles Spring       commencer



                      • Un livrable
                      • Un jeu de fonctionnalité
                      • Des ressources
                      • Une configuration



                                                                            33
lundi 23 avril 2012
4 - Des idées pour
                                  Ressources : JNDI                            commencer




                • 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
lundi 23 avril 2012
4 - Des idées pour
                      Import + Propriété Système                                            commencer


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



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



               1 <jdbc:embedded-database                   1 <jee:jndi-lookup jndi-name="jdbc/datasource"/>
               2        id="dataSource">                   2
               3      <jdbc:script
               4            location="schema.sql"/>
               5          <jdbc:script
               6            location="test-data.sql"/>
               7 </jdbc:embedded-database>


                                                                                                              35
lundi 23 avril 2012
4 - Des idées pour
                                  @Profile                     commencer

             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 }

                                                                               36
lundi 23 avril 2012
4 - Des idées pour
                                  @Profile                     commencer

             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 }

                                                                               37
lundi 23 avril 2012
4 - Des idées pour
                                 <Profile />                    commencer




            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>




                                                                                38
lundi 23 avril 2012
4 - Des idées pour
                                     Activation                            commencer


                                          Mode «Dev»
                      1 System.setProperty("spring.profiles.active", "DEV");




                                          Mode «Ops»
                      1 JAVA_OPTS="spring.profiles.active=DEV"




                                                                                            39
lundi 23 avril 2012
4 - Des idées pour
                                                   commencer




                      L’approche packaging natif




                                                                    40
lundi 23 avril 2012
4 - Des idées pour
                Packaging Natif                          commencer




      •       Coeur de la pile applicative des OS

      •       Gestion des dépendances

      •       Mise à jour automatique ou sélective

      •       Utilisé par les Ops



                                                                          41
lundi 23 avril 2012
4 - Des idées pour
                Packaging sous Unix                                         commencer




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

        •       DEB sous Debian/Ubuntu

        •       PKG sous Solaris




                                                                                             42
lundi 23 avril 2012
4 - Des idées pour
                Qu’est-ce qu’un package ?                                            commencer




         •       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
lundi 23 avril 2012
4 - Des idées pour
                Points communs avec Maven                                          commencer



          •       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
lundi 23 avril 2012
4 - Des idées pour
                Un DSL pour les Ops         commencer




           •          Simple

           •          Quelques macros

           •          SH powered




                                                             45
lundi 23 avril 2012
4 - Des idées pour
                                            commencer




                      Source d’un RPM



                                                             46
lundi 23 avril 2012
4 - Des idées pour
                AUTO-SUFFISANT                                                 commencer




           •          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
lundi 23 avril 2012
4 - Des idées pour
                ET ENCORE                                                 commencer




           •          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
lundi 23 avril 2012
4 - Des idées pour
                      TypeS de RPMs       commencer




                                                           49
lundi 23 avril 2012
4 - Des idées pour
                          TypeS de RPMs       commencer



                      RPMs OS
                      RPMs OS
                       RPMs OS




                                                               49
lundi 23 avril 2012
4 - Des idées pour
                                        TypeS de RPMs            commencer



                                RPMs OS
                                RPMs OS
                                 RPMs OS

                      Fournis par votre distribution Linux




                                                                                  49
lundi 23 avril 2012
4 - Des idées pour
                                        TypeS de RPMs                          commencer



                                RPMs OS
                                RPMs OS
                                 RPMs OS

                      Fournis par votre distribution Linux
                                                             RPMs Applicatif
                                                             RPMs Applicatif
                                                              RPMs Applicatif




                                                                                                49
lundi 23 avril 2012
4 - Des idées pour
                                        TypeS de RPMs                                 commencer



                                RPMs OS
                                RPMs OS
                                 RPMs OS

                      Fournis par votre distribution Linux
                                                              RPMs Applicatif
                                                              RPMs Applicatif
                                                               RPMs Applicatif

                                                             Produits par les Devs & Ops




                                                                                                       49
lundi 23 avril 2012
4 - Des idées pour
                                        TypeS de RPMs                                 commencer



                                RPMs OS
                                RPMs OS
                                 RPMs OS

                      Fournis par votre distribution Linux
                                                              RPMs Applicatif
                                                              RPMs Applicatif
                                                               RPMs Applicatif
                                  RPMs
                                  RPMs
                                   RPMs
                                   RPMs
                               Configuration
                               Configuration
                                Configuration                 Produits par les Devs & Ops
                                Configuration


                                                                                                       49
lundi 23 avril 2012
4 - Des idées pour
                                        TypeS de RPMs                                 commencer



                                RPMs OS
                                RPMs OS
                                 RPMs OS

                      Fournis par votre distribution Linux
                                                              RPMs Applicatif
                                                              RPMs Applicatif
                                                               RPMs Applicatif
                                  RPMs
                                  RPMs
                                   RPMs
                                   RPMs
                               Configuration
                               Configuration
                                Configuration                 Produits par les Devs & Ops
                                Configuration
                                Produits par les Ops


                                                                                                       49
lundi 23 avril 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)




                                                                               50
lundi 23 avril 2012
4 - Des idées pour
                                 JMX et le Monitoring         commencer

                  A ne pas négliger, utilisez le en permanence

      - JMX : MBeans fonctionnels
      - VisualVM et ses plugins
      - JMX Trans - Graphite (monitoring light)
  DevOpsMunin, JavaMelody, Zabbix, Jolokia (rest)
      - – Résultats Graphite              AlpesJUG




lundi 23 avril 2012
4 - Des idées pour
            Et Chef / Puppet ?                                                                    commencer

             -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",
                 }




lundi 23 avril 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




                                                                                    53
lundi 23 avril 2012
Veewee


         •       Extension à Vagrant

         •       Permet d’automatiser la création de Box

      # Installation
      $ (sudo) gem install veewee




                                                           54
lundi 23 avril 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 ...)

                                                                                                     55
lundi 23 avril 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 ...)

                                                                                                         56
lundi 23 avril 2012
Merci !




lundi 23 avril 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

Contenu connexe

En vedette

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

En vedette (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Devoxx Devops University 2012

  • 1. Les mercenaires du Devops ! lundi 23 avril 2012
  • 2. 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
  • 3. 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
  • 4. Les principes Devops 4 lundi 23 avril 2012
  • 6. Development is about pushing changes lundi 23 avril 2012
  • 11. 1 - La rache lundi 23 avril 2012
  • 12. 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
  • 13. Sh4rewith.me - V0.1 Petite Application de partage de fichiers Webapp (war) Système de fichier (/files) lundi 23 avril 2012
  • 14. 1 - La rache Signaux d’alarme : • Ca marche chez moi ! • Jusqu’ici tout va bien ... • J‘ai piscine • Attends je regarde dans le code lundi 23 avril 2012
  • 15. 1 - La rache Signaux d’alarme : • Ca marche chez moi ! • Jusqu’ici tout va bien ... • J‘ai piscine • Attends je regarde dans le code tir ? nsor en te m C om lundi 23 avril 2012
  • 16. 2 - La raison lundi 23 avril 2012
  • 17. Le Joel Test http://www.joelonsoftware.com/articles/fog0000000043.html lundi 23 avril 2012
  • 18. Le Joel Test 1- Utilisez-vous un gestionnaire de sources ? http://www.joelonsoftware.com/articles/fog0000000043.html lundi 23 avril 2012
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. Le Joel Test Moins de 10 ? lundi 23 avril 2012
  • 31. Le Joel Test Moins de 10 ? Alors vous avez de sérieux problèmes lundi 23 avril 2012
  • 32. Le Joel Test Moins de 10 ? Alors vous avez de sérieux problèmes t2 000 Aoû lundi 23 avril 2012
  • 33. 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
  • 34. 2 -La raison Sh4rewith.me V1.0 War fabriqué par Maven/Jenkins/nexus Mongo DB Tomcat installé manuellement lundi 23 avril 2012
  • 35. 2 -La raison 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 lundi 23 avril 2012
  • 36. 3 - La sérénité lundi 23 avril 2012
  • 38. 3 - La sérénité 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) lundi 23 avril 2012
  • 39. 3 - La sérénité Sh4rewith.me V2.0 Petite Application de partage de fichiers Démonstration lundi 23 avril 2012
  • 40. Université Devops Le retour lundi 23 avril 2012
  • 41. Rappel des principes Devops 26 lundi 23 avril 2012
  • 42. 4 – Des idées pour commencer lundi 23 avril 2012
  • 43. 4 - Des idées pour commencer Les meilleurs outils pour votre budget 28 lundi 23 avril 2012
  • 44. 4 - Des idées pour eXo Software Factory commencer Subversion Jira Git Fisheye/Crucible Nexus Sonar Jenkins Confluence 29 lundi 23 avril 2012
  • 45. 4 - Des idées pour commencer Live Acceptance Server lundi 23 avril 2012
  • 46. 4 - Des idées pour commencer lundi 23 avril 2012
  • 47. 4 - Des idées pour commencer Elargir le cadre d’utilisation de Jenkins • Trigger plugin • Un jenkins pour les Dev • Un jenkins pour la QA • Un jenkins pour les OPS lundi 23 avril 2012
  • 48. 4 - Des idées pour Profiles Spring commencer • Un livrable • Un jeu de fonctionnalité • Des ressources • Une configuration 33 lundi 23 avril 2012
  • 49. 4 - Des idées pour Ressources : JNDI commencer • 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 lundi 23 avril 2012
  • 50. 4 - Des idées pour Import + Propriété Système commencer 1 <import resource="config-${env}.xml"/> 1 System.setProperty("env", "TEST"); 1 <jdbc:embedded-database 1 <jee:jndi-lookup jndi-name="jdbc/datasource"/> 2 id="dataSource"> 2 3 <jdbc:script 4 location="schema.sql"/> 5 <jdbc:script 6 location="test-data.sql"/> 7 </jdbc:embedded-database> 35 lundi 23 avril 2012
  • 51. 4 - Des idées pour @Profile commencer 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 } 36 lundi 23 avril 2012
  • 52. 4 - Des idées pour @Profile commencer 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 } 37 lundi 23 avril 2012
  • 53. 4 - Des idées pour <Profile /> commencer 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> 38 lundi 23 avril 2012
  • 54. 4 - Des idées pour Activation commencer Mode «Dev» 1 System.setProperty("spring.profiles.active", "DEV"); Mode «Ops» 1 JAVA_OPTS="spring.profiles.active=DEV" 39 lundi 23 avril 2012
  • 55. 4 - Des idées pour commencer L’approche packaging natif 40 lundi 23 avril 2012
  • 56. 4 - Des idées pour Packaging Natif commencer • Coeur de la pile applicative des OS • Gestion des dépendances • Mise à jour automatique ou sélective • Utilisé par les Ops 41 lundi 23 avril 2012
  • 57. 4 - Des idées pour Packaging sous Unix commencer • RPM (Redhat Package Manager) sous RHEL/CentOS/ Fedora, SLES/OpenSuse, Mandriva • DEB sous Debian/Ubuntu • PKG sous Solaris 42 lundi 23 avril 2012
  • 58. 4 - Des idées pour Qu’est-ce qu’un package ? commencer • 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 lundi 23 avril 2012
  • 59. 4 - Des idées pour Points communs avec Maven commencer • 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 lundi 23 avril 2012
  • 60. 4 - Des idées pour Un DSL pour les Ops commencer • Simple • Quelques macros • SH powered 45 lundi 23 avril 2012
  • 61. 4 - Des idées pour commencer Source d’un RPM 46 lundi 23 avril 2012
  • 62. 4 - Des idées pour AUTO-SUFFISANT commencer • 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 lundi 23 avril 2012
  • 63. 4 - Des idées pour ET ENCORE commencer • 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 lundi 23 avril 2012
  • 64. 4 - Des idées pour TypeS de RPMs commencer 49 lundi 23 avril 2012
  • 65. 4 - Des idées pour TypeS de RPMs commencer RPMs OS RPMs OS RPMs OS 49 lundi 23 avril 2012
  • 66. 4 - Des idées pour TypeS de RPMs commencer RPMs OS RPMs OS RPMs OS Fournis par votre distribution Linux 49 lundi 23 avril 2012
  • 67. 4 - Des idées pour TypeS de RPMs commencer RPMs OS RPMs OS RPMs OS Fournis par votre distribution Linux RPMs Applicatif RPMs Applicatif RPMs Applicatif 49 lundi 23 avril 2012
  • 68. 4 - Des idées pour TypeS de RPMs commencer RPMs OS RPMs OS RPMs OS Fournis par votre distribution Linux RPMs Applicatif RPMs Applicatif RPMs Applicatif Produits par les Devs & Ops 49 lundi 23 avril 2012
  • 69. 4 - Des idées pour TypeS de RPMs commencer RPMs OS RPMs OS RPMs OS Fournis par votre distribution Linux RPMs Applicatif RPMs Applicatif RPMs Applicatif RPMs RPMs RPMs RPMs Configuration Configuration Configuration Produits par les Devs & Ops Configuration 49 lundi 23 avril 2012
  • 70. 4 - Des idées pour TypeS de RPMs commencer RPMs OS RPMs OS RPMs OS Fournis par votre distribution Linux RPMs Applicatif RPMs Applicatif RPMs Applicatif RPMs RPMs RPMs RPMs Configuration Configuration Configuration Produits par les Devs & Ops Configuration Produits par les Ops 49 lundi 23 avril 2012
  • 71. 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) 50 lundi 23 avril 2012
  • 72. 4 - Des idées pour JMX et le Monitoring commencer A ne pas négliger, utilisez le en permanence - JMX : MBeans fonctionnels - VisualVM et ses plugins - JMX Trans - Graphite (monitoring light) DevOpsMunin, JavaMelody, Zabbix, Jolokia (rest) - – Résultats Graphite AlpesJUG lundi 23 avril 2012
  • 73. 4 - Des idées pour Et Chef / Puppet ? commencer -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", } lundi 23 avril 2012
  • 74. 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 53 lundi 23 avril 2012
  • 75. Veewee • Extension à Vagrant • Permet d’automatiser la création de Box # Installation $ (sudo) gem install veewee 54 lundi 23 avril 2012
  • 76. 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 ...) 55 lundi 23 avril 2012
  • 77. 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 ...) 56 lundi 23 avril 2012
  • 78. Merci ! lundi 23 avril 2012
  • 79. 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