41
Retour d'expérience de déploiement d'une infonuagique privée au sein d'une grande organisation 20 septembre 2016 Michel-Marie MAUDET - @mmaudet 1

Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Embed Size (px)

Citation preview

Page 1: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Retourd'expériencededéploiementd'uneinfonuagiqueprivéeausein

d'unegrandeorganisation20septembre2016

Michel-MarieMAUDET-@mmaudet

1

Page 2: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Quisuisje?COOdeLINAGORADirecteurdesopérations

Militantlibristedepuis1996Animateurd'unsite(plusenlignedepuis2001)surlesressourceLinuxd'Internet-->Googlem'atué!Anciendel'Arméedel'AiretamoureuxdelaCorse;-)

2

Page 3: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

EditeurOpenSourceDigitalBoosterAgilenative

PrésentàMontréaldepuis2013.Equipede10collaboreursàvotreservice.

DesmandatspourlaVilledeMontréal,HydroQuébec,laVilledeLaval...

3

Page 4: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Delalignedecodeaudéploiementduservice

enproduction

4

Page 5: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

JamesprojetApachedepuisplusdedixansplusieursdizainesdecontributeursaucoursdesonhistoireplusieursmilliersdecommitsplusde200000lignesdecodejavaplusde100projetsmavenv2enproductiondepuisdesannées,communautéd'utilisateurssatisfaitv3démarréilya10ans,projetjamaisterminéetdécouragementdelacommunautéplusd'activitédedévelopementdepuis2012

http://james.apache.org/

5

Page 6: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Jamesen2014Gestionducodesource

Envoidemodification(patch)parmailouàtraverslebugtracker

intégrationàlademandeparuncommiter

6 . 1

Page 7: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Jamesen2014Intégrationcontinue

L'intégrationcontinueestuneactivitéparticulière

Lecontributeurnepeutpasyparticiper(aucundroitsurl'administrationdeJenkins)

6 . 2

Page 8: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

DesproblématiquessimilairesenentrepriseRéactivité/TimetomarketModernisationetagilitédetouteslesphasesducycledeviedesapplicationsQualitédeserviceRéductionducoûtd'exploitation&dedéveloppement

7 . 1

Page 9: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Uneréalitéenentreprise:faiblessesduSI

Délaidemiseàdispositiond'environnementQualitédeservice(interruptiondeservices,performance)Difficultédemigration(versionsuccessivesdel'application&desdonnées)Lecassetêtedelagestiondesconfigurationsentrelesdifférentsenvironnements(dev,test,preprod,prod)Risquesurlaconcentrationdesconnaissances

7 . 2

Page 10: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Versuneinfonuagiqueprivée

StandardiserlematérieletlesinfrastructuresparlavirtualisationToutautomatiser(processus,manipulationduhardware,etc)Adopterlesméthodologiesdes"GéantsduWeb"Capitalisersurlesapprochesadoptéesautourducode(approcheDevOps)

7 . 3

Page 11: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Méthodesdedévelopementetd'exploitation

PrincipesduDevOpsCAMS(Culture,Automation,Measurement,Sharing)Agilitédeboutenbout(Intégrationcontinue,Déploiementcontinu)

8 . 1

Page 12: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Méthodesdedévelopementetd'exploitation

DevOpsStratégiequiviseàgomerlalimiteentrel'exploitationetledéveloppementenutilisantdesméthodesetdesoutils

communsentrelesdeuxmondes.

8 . 2

Page 13: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Méthodesdedévelopementetd'exploitation

DéploiementcontinuStratégiededévelopementvisantàpublierautomatiquement

enpré/productiontoutemodificationvalidantlestestsd'acceptance

8 . 3

Page 14: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Méthodesdedévelopementetd'exploitationIntégrationcontinue

automatisationdetâches(compilation,testunitaires,testsfonctionnels,...)exécutionsystématiquepeuxreposersurunebriquelogicielle(Jenkins,TravisCI,...)vérifiechaquemodificationducode 8 . 4

Page 15: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Méthodesdedévelopementetd'exploitation

Pipelinedel'intégrationd'unePull-Request

8 . 5

Page 16: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Agilitédudéveloppement

ArchitectureadaptéeAdoptationdesarchitecturemicro-servicesClusteringStatelessservices

9 . 1

Page 17: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Agilitédudéveloppement

LaPull-RequestBranchementducodesursonpropredépôtPréparationd'unhistoriquedemodification"racontantunehistoire"SoumissiondelabranchepourintégrationàmasterRelecture,validationetintégration

9 . 2

Page 18: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

9 . 3

Page 19: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Résuméd'unePRsousGitHub

PRd'unutilisateurn'ayantpassignélaCLA

9 . 4

Page 20: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Agilitédudéveloppement

LaPull-Request:automatisationexécutiondestestssurunesimulationd'intégrationducodeauditducodeparunoutilapproprié

9 . 5

Page 21: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Agilitédudéveloppement

Outillageorchestration:Jenkins

TravisCI

CircleCI

https://jenkins.io/

https://travis-ci.org/

https://circleci.com/9 . 6

Page 22: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Agilitédudéveloppement

Outillagetests:Cucumber

REST-assured

AssertJ

https://cucumber.io/

http://rest-assured.io/

http://joel-costigliola.github.io/assertj/9 . 7

Page 23: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Agilitédudéveloppement

Outillagetests:Protactor

Mocha

WebDriver

http://www.protractortest.org/

https://mochajs.org/

http://webdriver.io/9 . 8

Page 24: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Agilitédudéveloppement

Outillageaudit:Sonarhttp://www.sonarqube.org/

9 . 9

Page 25: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Agilitédudéveloppement

Outillagegit/PR:Stash

GitHub

https://www.atlassian.com/stash/

https://github.com/

9 . 10

Page 26: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Agilitédudéploiement

GénérationdeslivrablesArtifacts(package/imagesdocker)àchaquecommit:rpm,deb,dockerDéploiementdesartifacts:DockerRegistry,Artifactory,Nexus

10 . 1

Page 27: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Agilitédudéploiement

DéploiementdeslivrablesTéléchargementdesartifactsRollingupgrade/blue-greendeployment:Kubernetes,Marathon/MesosChangementsbasededonnéesActivationdesfeatures:ff4j

10 . 2

Page 28: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

AgilitédudéploiementFeatureflippingconfiguration

10 . 3

Page 29: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

AgilitédudéploiementFeatureflippingdonnéesd'utilisationdesfonctionnalités

10 . 4

Page 30: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Agilitédudéploiement

GestiondelabasededonnéesPasdemiseàjourdelabasededonnéesMaiscréationdenouvellestablesoucolonnesRapiditédemigration,ellesefaitaufuretàmesureAucunepertededonnées,lesanciennesdonnéessonttoujoursdisponibles(anciennestables)Basculementprogressif,lesnouvellesdonnéessontcrééesdanslesnouvellestables

10 . 5

Page 31: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

AgilitédudéploiementGestiondelabasededonnées

10 . 6

Page 32: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

ContinousIntegrationasCode/"ImmutableInfrastructure"

ConceptAucuneintéractionavecl'IHMApplicationdesméthodesdedévelopementFacilitéd'utilisationpourn'importequelcontributeurauprojet

11 . 1

Page 33: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

ContinousIntegrationasCode

ConfigurationdeJenkinsInstallationautomatiquedespluginsConfigurationdelaCIetdespluginsautomatique

11 . 2

Page 34: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

ContinousIntegrationasCode

Coderlebuilddevotreapplication

Lebuildfaitpartiducodedel'applicationvalidationdesmodificationsparPR

11 . 3

Page 35: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

ContinousIntegrationasCode

Extraitd'unpipelinedebuild

11 . 4

Page 36: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Jamesen2016:CIascodeLivraisoncontinue(générationetdéploiementdesimages)Déploiementcontinueàchaquecommit(miseàjoursduservice)Processdedevéloppementàl'étatdel'artNouvelledynamiquedanslacommunautécardéveloppementréellementdécentraliséRapiditédemiseàdispositiondesnouvellesversions

12

Page 37: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

C'estaussipossibleenEntreprise

EnServiceConseilAuditdesbesoins/StratégieCloudOpenSourceDesignetconceptiondel’architectureSélectiondescomposantsmatérielsetlogiciels

13

Page 38: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

C'estaussipossibleenEntreprise

EnServiceConseilAuditdesbesoins/StratégieCloudOpenSourceAccompagnementdéploiementméthodologiesAgile&DevOpsDesignetconceptiondel’architectureSélectiondescomposantsmatérielsetlogiciels

14

Page 39: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

C'estaussipossibleenEntreprise

AccompagnementetExpertiseDéploiementdel’infrastructureConfigurationdel’ensembledesfonctionsAutomatisationdelagestionFormations

15

Page 40: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

C'estaussipossibleenEntreprise

SupportetmaintenanceOSSAsurIaasOpenStack/Docker/RoboconfSupportdespilesCI/CDAccompagnementàlamigrationHébergementducloudendatacenterouchezvous

16

Page 41: Agilité / DevOps / Continuous Integration / Continuous Delivery - Présentation S2LQ 2016

Mercipourvotreattention

Questions/Réponses

Nouscontacter:[email protected] 17