SlideShare une entreprise Scribd logo
1  sur  74
Télécharger pour lire hors ligne
Déploiement
 continu en
 production
  Claude Falguière
 BreizhCamp le 17 Juin 2011
Copyright notice

●   Vous êtes libre de :                           http://creativecommons.org/licenses/by/3.0
                                                   /
    ●   Reproduire, distribuer et communiquer cette création au public
    ●   Modifier cette création
●   Selon les conditions suivantes :
    ●   Paternité. Vous devez citer le nom de l'auteur original de la
        manière indiquée par l'auteur de l'oeuvre ou le titulaire des droits
        qui vous confère cette autorisation (mais pas d'une manière qui
        suggérerait qu'ils vous soutiennent ou approuvent votre
        utilisation de l'oeuvre).
    ●   Rien dans ce contrat ne diminue ou ne restreint le droit moral de
        l'auteur ou des auteurs.

                            Continuous deployment - Falguière                              2
Claude Falguière
        Architecte
        Technique                              @cfalguiere

           Java
         Devops
      Usines logicielles
 Performances


           Continuous deployment - Falguière                 3
Regrouper les
                             développeuses
                                  Java
                                        Connecter
                                      Rendre visibles

@duchessfr
http://jduchess.org/duchess-france

                   Continuous deployment - Falguière    4
Motivation
   Continuous deployment - Falguière   5
 Je fais du déploiement continu j'ai
ajouté cargo pour déployer sur CI




                   ???


            Continuous deployment - Falguière   6
Source : Thoughtworks

Continuous deployment - Falguière                       7
Déploiement

   Continuous deployment - Falguière   8
Deploiement

mvn deploy

                     mettre à disposition
                        des utilisateurs
                                      Avertir les utilisateurs
                                      Arrêter le service
                                      Installer
                                      Vérifier
                                      Avertir les utilisateurs

             Continuous deployment - Falguière                    9
Provisioning
       Approvisionnement



L'affectation plus ou moins automatisée
de ressources à un utilisateur


  <votre-smartphone-préféré>Store/Market
               Packages Linux
                Repo Maven

              Continuous deployment - Falguière   10
Responsabilités
                               Confidentialité, Sécurité
                                 Interdépendances
                                Opérations planifiées


    assembler
       → approvisionner
                       → installer
                        → déployer
          Continuous deployment - Falguière           11
Continu
 Continuous deployment - Falguière   12
Batch & queue


Produire un       lot
Livrer le   lot



                   Continuous deployment - Falguière   13
Continuous Flow

Livrer
des   features
au fur et à
mesure


              Continuous deployment - Falguière   14
Batch                             Continuous
& queue                           Flow

 Délai                                     Réactivité
 Exceptionnel                              Banalise
 Volume                                    Ciblé




           Continuous deployment - Falguière            15
Periodicite

Plusieurs écoles

De plusieurs fois par heure
                        à 1 fois par jour




              Continuous deployment - Falguière   16
Continuous
                                    Deployment
         Continuous
          Delivery
Continuous
Integration




              Continuous deployment - Falguière   17
Qui déclenche ?

     PO + SM + OPS
       Promote manuel


      Autopromote
       #deploy #env
       habilitations



         Continuous deployment - Falguière   18
Déploiement
Continu
Pas seulement
automatisé

Pas forcément sans
intervention humaine
           Continuous deployment - Falguière   19
Jusque là tout va bien

       Continuous deployment - Falguière   20
Processus Fast Fail

Analyser les causes

Améliorer
Prévenir
Impliquer




             Continuous deployment - Falguière   21
Livrer au plus tôt

       Commiter  souvent
      Livrer des features

            Feature Branching
    Feature flags → par environnement
        Feature flippers → par user



             Continuous deployment - Falguière   22
Tester au plus tôt


      Tests automatisés

         Smoke test

      Tests en production


         Continuous deployment - Falguière   23
Tester en production


    Déploiement progressif

    Déploiement green-blue




         Continuous deployment - Falguière   24
Evaluer au plus tôt


 Inclure les retours des utilisateurs
         beta test (feature flippers)
         A/B testing (feature flags)




                Continuous deployment - Falguière   25
Surveiller

Pendant
  Juste après
     Après


Monitoring
Autodiagnostic, journaux




                   Continuous deployment - Falguière   26
REX (1)
  Continuous deployment - Falguière   27
Contexte


Startup
Refonte
Domaine complexe
   Difficile à tester en simulation
Grand nombre de serveurs


                Continuous deployment - Falguière   28
Continuous deployment - Falguière   29
Idée générale

     Fiabiliser les livraisons
              Tests automatisés
              Analyse du code
    Synchronisation entre les 2 équipes


Gérer la multiplicité (15 serveurs)
       Automatisation de l'installation

                Continuous deployment - Falguière   30
L'usine
  Continuous deployment - Falguière   31
Continuous deployment - Falguière   32
e pr int
Blu




              Continuous deployment - Falguière   33
Flex

  Plus facile
Moins de code
 Projet Agile

   Flex 4
  Maven 2

            Continuous deployment - Falguière   34
Flex
                                        Livraisons
  Plus facile                           fréquentes 
Moins de code
 Projet Agile                           Amélioration du
                                        temps de
   Flex 4                               déploiement 
  Maven 2

            Continuous deployment - Falguière          35
Java



                            Legacy
                         Refonte SOA
                        Conversion Agile



Continuous deployment - Falguière      36
Java
Standby
Pas de déploiement
                                         Legacy
                                      Refonte SOA
                                     Conversion Agile



             Continuous deployment - Falguière      37
On part de loin

     Code, Deploy … and Pray

   CVS → SVN → 1 repository
  Commiter régulièrement
 Ant → Maven → Hudson
Tester unitairement
                Continuous deployment - Falguière   38
Les facteurs de succès

Bon contact avec la production 
Acceptation du PO 


Manque de maîtrise des outils en dev
Soutien des équipes support et QA ?

             Continuous deployment - Falguière   39
REX (2)
  Continuous deployment - Falguière   40
Et j'ai changé de vie




         Continuous deployment - Falguière   41
iOS




      Continuous deployment - Falguière   42
Distribute for enterprise



                                                    voir
                                 s                 a
                           p as
                      l ez
                vou
             ne
     .ipas icônes + descripteurs
        u+
    Vo
+ provisioning profile + des tas de clics
               Continuous deployment - Falguière           43
Idée générale

Eviter toutes ces manipulations

Mode Agile avec le client
            Livraisons fréquentes




              Continuous deployment - Falguière   44
Clarifier le processus




        Continuous deployment - Falguière   45
Ingrédients et chefs
                      Sylvain Rousseau
Git                   & David Gageot
Rake
iWebKit
une pincée de Bash
quelques fichiers PHP
rsync (ma touche perso)

             Continuous deployment - Falguière   46
Git fetch
rebase




            ServerLess CI




       Continuous deployment - Falguière   47
Git fetch
         rebase




Air
deploy

                Continuous deployment - Falguière   48
Rester simple

                   Mono branche

               300 lignes de script

    Ignorer les tâches peu fréquentes
La gestion des certificats (développeur, provisioning profile, ...)



                      Continuous deployment - Falguière               49
Cachez cette feature
qu'on ne saurait voir


ou comment j'ai mis des feature flags ...




              Continuous deployment - Falguière   50
Bilan

      Entièrement automatisé 
                  Promote manuel


       A adapter pour la Store
     Son petit frère tourne sur l'Apple Store


 Automatisation des tests sous iOS ?

              Continuous deployment - Falguière   51
Les facteurs de succès

       Cycles courts 
       Agilité du dev 


     Acceptation du PO ? 
      Au moins pour le delivery

          Continuous deployment - Falguière   52
Automatiser
   Continuous deployment - Falguière   53
Installer Facilement

          3) Automatisé
      2) Outillé
  1) Processus clair

Etape par étape
Comprendre ses limites

              Continuous deployment - Falguière   54
Installer au plus tôt


Déminer
Simplifier

Apprendre pour
réagir vite en prod


              Continuous deployment - Falguière   55
Installer la même chose

                  Tests



                                            VM
Prod




        Continuous deployment - Falguière        56
ci / Production

Nombre 

Sécurité &
Confidentialité


Rollback
              Continuous deployment - Falguière   57
Gérer la multiplicité

mcollective / RunDeck / Fabric /
Capistrano

vs Hudson/Jenkins

vs scripts

             Continuous deployment - Falguière   58
Outils utiles


Git vs SVN

Script vs Maven




             Continuous deployment - Falguière   59
Et la base ?


Tout   scripter dès le dev

Scripts   incrémentaux

Ne pas supprimer
               Continuous deployment - Falguière   60
Tout automatiser ?


Accepter un processus partiellement
               manuel
         - sécurisation / vérification
             - migration de bases
        - opérations peu fréquentes

                Continuous deployment - Falguière   61
Conclusion

   Continuous deployment - Falguière   62
Delivery / Deploiement

          Outillage similaire

                             +
Gérer l'automatisation de la validation



              Continuous deployment - Falguière   63
Facteurs favorables

          Faible criticité
   ou totalement automatisable

       Agilité des équipes
         Convevoir par incrément
    Maîtrise des outils (DVCS, TDD, ...)



             Continuous deployment - Falguière   64
Facteurs favorables


 Compréhension de son processus
          technique

  Coopération avec la production



           Continuous deployment - Falguière   65
DEVOPS

DEVOPS
 Continuous deployment - Falguière   66
devops

Une application ne
 rend le service
     prévu aux
utilisateurs que si
      elle est

  déployée

            Continuous deployment - Falguière   67
devops

Peur des déploiements
Ça marche chez moi !




           Continuous deployment - Falguière   68
devops

Peur des déploiements
Ça marche chez moi !

         Coopérer dès le début
                Abattre les silos

           Continuous deployment - Falguière   69
http://parisdevops.fr/
http://devops.fr

  Des User Groups
               Lille-devops
               Paris-devops
               Lyon ???
                             Et chez vous ?


       Continuous deployment - Falguière      70
Merci pour votre attention

    Je vous écoute

                                             @cfalguiere
         Continuous deployment - Falguière             71
Quelques Lectures
http://continuousdelivery.com/
      http://continuousdelivery.com/2011/05/make-large-scale-changes-incrementally-
      with-branch-by-abstraction/
      http://continuousdelivery.com/2010/08/continuous-delivery-vs-continuous-deployment/

http://www.slideshare.net/ashmaurya/continuous-deployment-startup-lessons-learned
http://programmerjoe.com/2009/02/19/the-hard-part-of-continuous-deployment/
http://programmerjoe.com/2009/02/12/continuous-deployment-with-thick-clients/
http://www.codemanship.co.uk/parlezuml/blog/?postid=955
http://www.tvagile.com/2010/08/04/continuous-integration-pipelines-and-deployment/
http://www.slicedbreaddesign.com/blog/index.php/2009/11/is-continuous-deployment-good-for-users
http://code.flickr.com/blog/2009/12/02/flipping-out/
http://martinfowler.com/bliki/BlueGreenDeployment.html
http://eng.wealthfront.com/2010/05/deployment-infrastructure-for.html




                                    Continuous deployment - Falguière                       72
Crédits photo
  http://www.flickr.com/photos/pjb2332/1892076224

                http://www.flickr.com/photos/jurvetson/5126137767

                               http://www.flickr.com/photos/wirralwater/3304595702


      http://www.flickr.com/photos/hugo90/5360024969

                   http://www.flickr.com/photos/grill/5704051872

                                   http://www.flickr.com/photos/deltamike/112665695


  http://www.flickr.com/photos/theplanetdotcom/4878815037
            http://www.flickr.com/photos/edvvc/1972546648



                        Continuous deployment - Falguière                        73
Crédits photo
   http://www.flickr.com/photos/ecru76/2709226929

                http://www.flickr.com/photos/abbot45/309058972
                               http://www.flickr.com/photos/seeminglee/3929959851


   http://www.flickr.com/photos/publicresourceorg/4245550588

                http://www.flickr.com/photos/theleticiabertin/5344450700

                          http://www.flickr.com/photos/pjb2332/2209369645


   http://www.flickr.com/photos/pjb2332/2095801220




                     Continuous deployment - Falguière                       74

Contenu connexe

Tendances

Intégration continue
Intégration continueIntégration continue
Intégration continueKlee Group
 
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsAu secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsantony_guilloteau
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation MavenSOAT
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outilsAgile Tour 2009 Québec
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache MavenArnaud Héritier
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingBilal ZIANE
 
Principes de L'intégration Continue
Principes de L'intégration ContinuePrincipes de L'intégration Continue
Principes de L'intégration ContinueXavier Warzee
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgile Toulouse
 
DODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez CroesusDODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez CroesusMartin Deslongchamps
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Jonathan Martin
 
Introduction aux problématiques des architectures distribuées
Introduction aux problématiques des architectures distribuéesIntroduction aux problématiques des architectures distribuées
Introduction aux problématiques des architectures distribuéesSOAT
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapresLaurent Tardif
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tousAurelien Navarre
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatiséJérémie Campari
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Fabian Piau
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transcolaurent_opnworks
 
eXtreme Programming [fr]
eXtreme Programming [fr]eXtreme Programming [fr]
eXtreme Programming [fr]Rémy Coutable
 
20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natifHenri Gomez
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Samuel Metias
 

Tendances (20)

Intégration continue
Intégration continueIntégration continue
Intégration continue
 
Au secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOpsAu secours, mon chef m'a demandé de passer au DevOps
Au secours, mon chef m'a demandé de passer au DevOps
 
Présentation Maven
Présentation MavenPrésentation Maven
Présentation Maven
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outils
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Principes de L'intégration Continue
Principes de L'intégration ContinuePrincipes de L'intégration Continue
Principes de L'intégration Continue
 
AgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFSAgileTour Toulouse 2012 : TFS
AgileTour Toulouse 2012 : TFS
 
DODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez CroesusDODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez Croesus
 
Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014Introduction au DevOps @SfPot 2014
Introduction au DevOps @SfPot 2014
 
Introduction aux problématiques des architectures distribuées
Introduction aux problématiques des architectures distribuéesIntroduction aux problématiques des architectures distribuées
Introduction aux problématiques des architectures distribuées
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
 
Method XP
Method XP Method XP
Method XP
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tous
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatisé
 
Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)Intégration Continue (Agile Nantes)
Intégration Continue (Agile Nantes)
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
 
eXtreme Programming [fr]
eXtreme Programming [fr]eXtreme Programming [fr]
eXtreme Programming [fr]
 
20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif20111220 lyon jug-packaging-natif
20111220 lyon jug-packaging-natif
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
 

Similaire à Deploiement continu breizh camp

Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.Amélie DUVERNET
 
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, LinuxYasmine Amrani
 
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, LinuxCellenza
 
AgileTour Toulouse 2012 : de la livraison continue dans mon organisation
AgileTour Toulouse 2012 : de la livraison continue dans mon organisationAgileTour Toulouse 2012 : de la livraison continue dans mon organisation
AgileTour Toulouse 2012 : de la livraison continue dans mon organisationAgile Toulouse
 
De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?Goood!
 
NightClazz Build Tools & Continuous Delivery Avancé
NightClazz Build Tools & Continuous Delivery AvancéNightClazz Build Tools & Continuous Delivery Avancé
NightClazz Build Tools & Continuous Delivery AvancéZenika
 
Webinar XL Release in French - November 2016
Webinar XL Release in French - November 2016Webinar XL Release in French - November 2016
Webinar XL Release in French - November 2016XebiaLabs
 
Realworld cd pipelines
Realworld cd pipelines Realworld cd pipelines
Realworld cd pipelines TREEPTIK
 
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vieJean-Philippe Briend
 
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vieJean-Philippe Briend
 
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...Publicis Sapient Engineering
 
Webinar: Passez progressivement de releases manuelles
Webinar: Passez progressivement de releases manuellesWebinar: Passez progressivement de releases manuelles
Webinar: Passez progressivement de releases manuellesXebiaLabs
 
AT2010 Principes Integration Continue
AT2010 Principes Integration ContinueAT2010 Principes Integration Continue
AT2010 Principes Integration ContinueNormandy JUG
 
NightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryNightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryZenika
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...Jasmine Conseil
 
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...Publicis Sapient Engineering
 
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011Henri Gomez
 

Similaire à Deploiement continu breizh camp (20)

Soiree Maven 2
Soiree Maven 2Soiree Maven 2
Soiree Maven 2
 
Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.Déploiement PHP : de l'âge de pierre à nos jours.
Déploiement PHP : de l'âge de pierre à nos jours.
 
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
 
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
 
AgileTour Toulouse 2012 : de la livraison continue dans mon organisation
AgileTour Toulouse 2012 : de la livraison continue dans mon organisationAgileTour Toulouse 2012 : de la livraison continue dans mon organisation
AgileTour Toulouse 2012 : de la livraison continue dans mon organisation
 
De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?De la livraison continue dans mon organisation?
De la livraison continue dans mon organisation?
 
NightClazz Build Tools & Continuous Delivery Avancé
NightClazz Build Tools & Continuous Delivery AvancéNightClazz Build Tools & Continuous Delivery Avancé
NightClazz Build Tools & Continuous Delivery Avancé
 
Webinar XL Release in French - November 2016
Webinar XL Release in French - November 2016Webinar XL Release in French - November 2016
Webinar XL Release in French - November 2016
 
Jenkins Workflow
Jenkins WorkflowJenkins Workflow
Jenkins Workflow
 
Realworld cd pipelines
Realworld cd pipelines Realworld cd pipelines
Realworld cd pipelines
 
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
[DevFest Nantes 2016] Les Pipelines Jenkins dans la vraie vie
 
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
 
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
 
Webinar: Passez progressivement de releases manuelles
Webinar: Passez progressivement de releases manuellesWebinar: Passez progressivement de releases manuelles
Webinar: Passez progressivement de releases manuelles
 
AT2010 Principes Integration Continue
AT2010 Principes Integration ContinueAT2010 Principes Integration Continue
AT2010 Principes Integration Continue
 
NightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous DeliveryNightClazz Build Tools & Continuous Delivery
NightClazz Build Tools & Continuous Delivery
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
 
Easy Server Monitoring
Easy Server MonitoringEasy Server Monitoring
Easy Server Monitoring
 
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
 

Plus de Claude Falguiere

H2O , Le machine learning sans coder ou presque - Devoxx france 2016
H2O , Le machine learning sans coder ou presque - Devoxx france 2016H2O , Le machine learning sans coder ou presque - Devoxx france 2016
H2O , Le machine learning sans coder ou presque - Devoxx france 2016Claude Falguiere
 
Pres perf human talks mars 2015
Pres perf human talks mars 2015Pres perf human talks mars 2015
Pres perf human talks mars 2015Claude Falguiere
 
Presentation devoxx4kids à iut-agile
Presentation devoxx4kids à iut-agilePresentation devoxx4kids à iut-agile
Presentation devoxx4kids à iut-agileClaude Falguiere
 
Le monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big DataLe monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big DataClaude Falguiere
 
Présentation du user group Duchess France au GDG de Nantes
Présentation du user group Duchess France au GDG de NantesPrésentation du user group Duchess France au GDG de Nantes
Présentation du user group Duchess France au GDG de NantesClaude Falguiere
 
Présentation de Page Speed au GDG de Nantes
Présentation de Page Speed au GDG de NantesPrésentation de Page Speed au GDG de Nantes
Présentation de Page Speed au GDG de NantesClaude Falguiere
 
Présentation Performances Montpellier
Présentation Performances Montpellier Présentation Performances Montpellier
Présentation Performances Montpellier Claude Falguiere
 
Pres android nuit de l'info v3
Pres android nuit de l'info v3Pres android nuit de l'info v3
Pres android nuit de l'info v3Claude Falguiere
 
Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012Claude Falguiere
 
La marmite Intro session NoSQL
La marmite Intro session NoSQLLa marmite Intro session NoSQL
La marmite Intro session NoSQLClaude Falguiere
 
Analyse de données avec Incanter
Analyse de données avec IncanterAnalyse de données avec Incanter
Analyse de données avec IncanterClaude Falguiere
 
Analyse de données avec Incanter
Analyse de données avec IncanterAnalyse de données avec Incanter
Analyse de données avec IncanterClaude Falguiere
 
Quickie Incanter/Clojure à Devoxx France 2012
Quickie Incanter/Clojure à Devoxx France 2012Quickie Incanter/Clojure à Devoxx France 2012
Quickie Incanter/Clojure à Devoxx France 2012Claude Falguiere
 
Mesurer les performances avec JMeter
Mesurer les performances avec JMeterMesurer les performances avec JMeter
Mesurer les performances avec JMeterClaude Falguiere
 

Plus de Claude Falguiere (20)

H2O , Le machine learning sans coder ou presque - Devoxx france 2016
H2O , Le machine learning sans coder ou presque - Devoxx france 2016H2O , Le machine learning sans coder ou presque - Devoxx france 2016
H2O , Le machine learning sans coder ou presque - Devoxx france 2016
 
Pres perf human talks mars 2015
Pres perf human talks mars 2015Pres perf human talks mars 2015
Pres perf human talks mars 2015
 
Devoxx 2014 monitoring
Devoxx 2014 monitoringDevoxx 2014 monitoring
Devoxx 2014 monitoring
 
Devoxx 2014 Monitoring
Devoxx 2014 Monitoring Devoxx 2014 Monitoring
Devoxx 2014 Monitoring
 
Presentation devoxx4kids à iut-agile
Presentation devoxx4kids à iut-agilePresentation devoxx4kids à iut-agile
Presentation devoxx4kids à iut-agile
 
Le monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big DataLe monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big Data
 
Présentation du user group Duchess France au GDG de Nantes
Présentation du user group Duchess France au GDG de NantesPrésentation du user group Duchess France au GDG de Nantes
Présentation du user group Duchess France au GDG de Nantes
 
Présentation de Page Speed au GDG de Nantes
Présentation de Page Speed au GDG de NantesPrésentation de Page Speed au GDG de Nantes
Présentation de Page Speed au GDG de Nantes
 
Présentation Performances Montpellier
Présentation Performances Montpellier Présentation Performances Montpellier
Présentation Performances Montpellier
 
Pres android nuit de l'info v3
Pres android nuit de l'info v3Pres android nuit de l'info v3
Pres android nuit de l'info v3
 
Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012Performance test - YaJUG Octobre 2012
Performance test - YaJUG Octobre 2012
 
La marmite Intro session NoSQL
La marmite Intro session NoSQLLa marmite Intro session NoSQL
La marmite Intro session NoSQL
 
Analyse de données avec Incanter
Analyse de données avec IncanterAnalyse de données avec Incanter
Analyse de données avec Incanter
 
Analyse de données avec Incanter
Analyse de données avec IncanterAnalyse de données avec Incanter
Analyse de données avec Incanter
 
Incanter bigdata jsc2012
Incanter bigdata jsc2012Incanter bigdata jsc2012
Incanter bigdata jsc2012
 
Quickie Incanter/Clojure à Devoxx France 2012
Quickie Incanter/Clojure à Devoxx France 2012Quickie Incanter/Clojure à Devoxx France 2012
Quickie Incanter/Clojure à Devoxx France 2012
 
Diagnostic performances
Diagnostic performancesDiagnostic performances
Diagnostic performances
 
Diagnostic performances
Diagnostic performancesDiagnostic performances
Diagnostic performances
 
Usine logicielle ios
Usine logicielle iosUsine logicielle ios
Usine logicielle ios
 
Mesurer les performances avec JMeter
Mesurer les performances avec JMeterMesurer les performances avec JMeter
Mesurer les performances avec JMeter
 

Deploiement continu breizh camp

  • 1. Déploiement continu en production Claude Falguière BreizhCamp le 17 Juin 2011
  • 2. Copyright notice ● Vous êtes libre de : http://creativecommons.org/licenses/by/3.0 / ● Reproduire, distribuer et communiquer cette création au public ● Modifier cette création ● Selon les conditions suivantes : ● Paternité. Vous devez citer le nom de l'auteur original de la manière indiquée par l'auteur de l'oeuvre ou le titulaire des droits qui vous confère cette autorisation (mais pas d'une manière qui suggérerait qu'ils vous soutiennent ou approuvent votre utilisation de l'oeuvre). ● Rien dans ce contrat ne diminue ou ne restreint le droit moral de l'auteur ou des auteurs. Continuous deployment - Falguière 2
  • 3. Claude Falguière Architecte Technique @cfalguiere Java Devops Usines logicielles Performances Continuous deployment - Falguière 3
  • 4. Regrouper les développeuses Java Connecter Rendre visibles @duchessfr http://jduchess.org/duchess-france Continuous deployment - Falguière 4
  • 5. Motivation Continuous deployment - Falguière 5
  • 6.  Je fais du déploiement continu j'ai ajouté cargo pour déployer sur CI ??? Continuous deployment - Falguière 6
  • 8. Déploiement Continuous deployment - Falguière 8
  • 9. Deploiement mvn deploy mettre à disposition des utilisateurs  Avertir les utilisateurs  Arrêter le service  Installer  Vérifier  Avertir les utilisateurs Continuous deployment - Falguière 9
  • 10. Provisioning Approvisionnement L'affectation plus ou moins automatisée de ressources à un utilisateur <votre-smartphone-préféré>Store/Market Packages Linux Repo Maven Continuous deployment - Falguière 10
  • 11. Responsabilités Confidentialité, Sécurité Interdépendances Opérations planifiées assembler → approvisionner → installer → déployer Continuous deployment - Falguière 11
  • 12. Continu Continuous deployment - Falguière 12
  • 13. Batch & queue Produire un lot Livrer le lot Continuous deployment - Falguière 13
  • 14. Continuous Flow Livrer des features au fur et à mesure Continuous deployment - Falguière 14
  • 15. Batch Continuous & queue Flow Délai Réactivité Exceptionnel Banalise Volume Ciblé Continuous deployment - Falguière 15
  • 16. Periodicite Plusieurs écoles De plusieurs fois par heure à 1 fois par jour Continuous deployment - Falguière 16
  • 17. Continuous Deployment Continuous Delivery Continuous Integration Continuous deployment - Falguière 17
  • 18. Qui déclenche ? PO + SM + OPS Promote manuel Autopromote #deploy #env habilitations Continuous deployment - Falguière 18
  • 19. Déploiement Continu Pas seulement automatisé Pas forcément sans intervention humaine Continuous deployment - Falguière 19
  • 20. Jusque là tout va bien Continuous deployment - Falguière 20
  • 21. Processus Fast Fail Analyser les causes Améliorer Prévenir Impliquer Continuous deployment - Falguière 21
  • 22. Livrer au plus tôt Commiter souvent Livrer des features Feature Branching Feature flags → par environnement Feature flippers → par user Continuous deployment - Falguière 22
  • 23. Tester au plus tôt Tests automatisés Smoke test Tests en production Continuous deployment - Falguière 23
  • 24. Tester en production Déploiement progressif Déploiement green-blue Continuous deployment - Falguière 24
  • 25. Evaluer au plus tôt Inclure les retours des utilisateurs beta test (feature flippers) A/B testing (feature flags) Continuous deployment - Falguière 25
  • 26. Surveiller Pendant Juste après Après Monitoring Autodiagnostic, journaux Continuous deployment - Falguière 26
  • 27. REX (1) Continuous deployment - Falguière 27
  • 28. Contexte Startup Refonte Domaine complexe Difficile à tester en simulation Grand nombre de serveurs Continuous deployment - Falguière 28
  • 29. Continuous deployment - Falguière 29
  • 30. Idée générale Fiabiliser les livraisons Tests automatisés Analyse du code Synchronisation entre les 2 équipes Gérer la multiplicité (15 serveurs) Automatisation de l'installation Continuous deployment - Falguière 30
  • 31. L'usine Continuous deployment - Falguière 31
  • 32. Continuous deployment - Falguière 32
  • 33. e pr int Blu Continuous deployment - Falguière 33
  • 34. Flex Plus facile Moins de code Projet Agile Flex 4 Maven 2 Continuous deployment - Falguière 34
  • 35. Flex Livraisons Plus facile fréquentes  Moins de code Projet Agile Amélioration du temps de Flex 4 déploiement  Maven 2 Continuous deployment - Falguière 35
  • 36. Java Legacy Refonte SOA Conversion Agile Continuous deployment - Falguière 36
  • 37. Java Standby Pas de déploiement Legacy Refonte SOA Conversion Agile Continuous deployment - Falguière 37
  • 38. On part de loin Code, Deploy … and Pray CVS → SVN → 1 repository Commiter régulièrement Ant → Maven → Hudson Tester unitairement Continuous deployment - Falguière 38
  • 39. Les facteurs de succès Bon contact avec la production  Acceptation du PO  Manque de maîtrise des outils en dev Soutien des équipes support et QA ? Continuous deployment - Falguière 39
  • 40. REX (2) Continuous deployment - Falguière 40
  • 41. Et j'ai changé de vie Continuous deployment - Falguière 41
  • 42. iOS Continuous deployment - Falguière 42
  • 43. Distribute for enterprise voir s a p as l ez vou ne .ipas icônes + descripteurs u+ Vo + provisioning profile + des tas de clics Continuous deployment - Falguière 43
  • 44. Idée générale Eviter toutes ces manipulations Mode Agile avec le client Livraisons fréquentes Continuous deployment - Falguière 44
  • 45. Clarifier le processus Continuous deployment - Falguière 45
  • 46. Ingrédients et chefs Sylvain Rousseau Git & David Gageot Rake iWebKit une pincée de Bash quelques fichiers PHP rsync (ma touche perso) Continuous deployment - Falguière 46
  • 47. Git fetch rebase ServerLess CI Continuous deployment - Falguière 47
  • 48. Git fetch rebase Air deploy Continuous deployment - Falguière 48
  • 49. Rester simple Mono branche 300 lignes de script Ignorer les tâches peu fréquentes La gestion des certificats (développeur, provisioning profile, ...) Continuous deployment - Falguière 49
  • 50. Cachez cette feature qu'on ne saurait voir ou comment j'ai mis des feature flags ... Continuous deployment - Falguière 50
  • 51. Bilan Entièrement automatisé  Promote manuel A adapter pour la Store Son petit frère tourne sur l'Apple Store Automatisation des tests sous iOS ? Continuous deployment - Falguière 51
  • 52. Les facteurs de succès Cycles courts  Agilité du dev  Acceptation du PO ?  Au moins pour le delivery Continuous deployment - Falguière 52
  • 53. Automatiser Continuous deployment - Falguière 53
  • 54. Installer Facilement 3) Automatisé 2) Outillé 1) Processus clair Etape par étape Comprendre ses limites Continuous deployment - Falguière 54
  • 55. Installer au plus tôt Déminer Simplifier Apprendre pour réagir vite en prod Continuous deployment - Falguière 55
  • 56. Installer la même chose Tests VM Prod Continuous deployment - Falguière 56
  • 57. ci / Production Nombre  Sécurité & Confidentialité Rollback Continuous deployment - Falguière 57
  • 58. Gérer la multiplicité mcollective / RunDeck / Fabric / Capistrano vs Hudson/Jenkins vs scripts Continuous deployment - Falguière 58
  • 59. Outils utiles Git vs SVN Script vs Maven Continuous deployment - Falguière 59
  • 60. Et la base ? Tout scripter dès le dev Scripts incrémentaux Ne pas supprimer Continuous deployment - Falguière 60
  • 61. Tout automatiser ? Accepter un processus partiellement manuel - sécurisation / vérification - migration de bases - opérations peu fréquentes Continuous deployment - Falguière 61
  • 62. Conclusion Continuous deployment - Falguière 62
  • 63. Delivery / Deploiement Outillage similaire + Gérer l'automatisation de la validation Continuous deployment - Falguière 63
  • 64. Facteurs favorables Faible criticité ou totalement automatisable Agilité des équipes Convevoir par incrément Maîtrise des outils (DVCS, TDD, ...) Continuous deployment - Falguière 64
  • 65. Facteurs favorables Compréhension de son processus technique Coopération avec la production Continuous deployment - Falguière 65
  • 67. devops Une application ne rend le service prévu aux utilisateurs que si elle est déployée Continuous deployment - Falguière 67
  • 68. devops Peur des déploiements Ça marche chez moi ! Continuous deployment - Falguière 68
  • 69. devops Peur des déploiements Ça marche chez moi ! Coopérer dès le début Abattre les silos Continuous deployment - Falguière 69
  • 70. http://parisdevops.fr/ http://devops.fr Des User Groups Lille-devops Paris-devops Lyon ??? Et chez vous ? Continuous deployment - Falguière 70
  • 71. Merci pour votre attention Je vous écoute @cfalguiere Continuous deployment - Falguière 71
  • 72. Quelques Lectures http://continuousdelivery.com/ http://continuousdelivery.com/2011/05/make-large-scale-changes-incrementally- with-branch-by-abstraction/ http://continuousdelivery.com/2010/08/continuous-delivery-vs-continuous-deployment/ http://www.slideshare.net/ashmaurya/continuous-deployment-startup-lessons-learned http://programmerjoe.com/2009/02/19/the-hard-part-of-continuous-deployment/ http://programmerjoe.com/2009/02/12/continuous-deployment-with-thick-clients/ http://www.codemanship.co.uk/parlezuml/blog/?postid=955 http://www.tvagile.com/2010/08/04/continuous-integration-pipelines-and-deployment/ http://www.slicedbreaddesign.com/blog/index.php/2009/11/is-continuous-deployment-good-for-users http://code.flickr.com/blog/2009/12/02/flipping-out/ http://martinfowler.com/bliki/BlueGreenDeployment.html http://eng.wealthfront.com/2010/05/deployment-infrastructure-for.html Continuous deployment - Falguière 72
  • 73. Crédits photo http://www.flickr.com/photos/pjb2332/1892076224 http://www.flickr.com/photos/jurvetson/5126137767 http://www.flickr.com/photos/wirralwater/3304595702 http://www.flickr.com/photos/hugo90/5360024969 http://www.flickr.com/photos/grill/5704051872 http://www.flickr.com/photos/deltamike/112665695 http://www.flickr.com/photos/theplanetdotcom/4878815037 http://www.flickr.com/photos/edvvc/1972546648 Continuous deployment - Falguière 73
  • 74. Crédits photo http://www.flickr.com/photos/ecru76/2709226929 http://www.flickr.com/photos/abbot45/309058972 http://www.flickr.com/photos/seeminglee/3929959851 http://www.flickr.com/photos/publicresourceorg/4245550588 http://www.flickr.com/photos/theleticiabertin/5344450700 http://www.flickr.com/photos/pjb2332/2209369645 http://www.flickr.com/photos/pjb2332/2095801220 Continuous deployment - Falguière 74