deploiement continu breizh camp
Post on 19-Jun-2015
1.989 Views
Preview:
TRANSCRIPT
Déploiement continu en production
Claude FalguièreBreizhCamp le 17 Juin 2011
Continuous deployment - Falguière 2
Copyright notice
● Vous êtes libre de :● 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.
http://creativecommons.org/licenses/by/3.0/
Continuous deployment - Falguière 3
Claude Falguière
@cfalguiereArchitecte Technique
Usines logiciellesPerformances
DevopsJava
Continuous deployment - Falguière 4
Regrouper les développeuses
Java
ConnecterRendre visibles
http://jduchess.org/duchess-france@duchessfr
Continuous deployment - Falguière 5
Motivation
Continuous deployment - Falguière 6
Je fais du déploiement continu j'ai ajouté cargo pour déployer sur CI
???
Continuous deployment - Falguière 7
Source : Thoughtworks
Continuous deployment - Falguière 8
Déploiement
Continuous deployment - Falguière 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 10
Provisioning
L'affectation plus ou moins automatisée de ressources à un utilisateur
<votre-smartphone-préféré>Store/Market Packages LinuxRepo Maven
Approvisionnement
Continuous deployment - Falguière 11
Responsabilités
Confidentialité, SécuritéInterdépendances
Opérations planifiées
assembler → approvisionner
→ installer → déployer
Continuous deployment - Falguière 12
Continu
Continuous deployment - Falguière 13
Batch & queue
Produire un lotLivrer le lot
Continuous deployment - Falguière 14
Livrer
des features
au fur et à mesure
Continuous Flow
Continuous deployment - Falguière 15
DélaiExceptionnelVolume
RéactivitéBanaliseCiblé
Batch & queue
Continuous Flow
Continuous deployment - Falguière 16
Periodicite
Plusieurs écoles
De plusieurs fois par heure à 1 fois par jour
Continuous deployment - Falguière 17
ContinuousIntegration
ContinuousDelivery
ContinuousDeployment
Continuous deployment - Falguière 18
Qui déclenche ?
PO + SM + OPSPromote manuel
Autopromote#deploy #envhabilitations
Continuous deployment - Falguière 19
Déploiement
Continu
Pas seulement automatisé
Pas forcément sans intervention humaine
Continuous deployment - Falguière 20
Jusque là tout va bien
Continuous deployment - Falguière 21
Processus Fast Fail
Analyser les causes
AméliorerPrévenirImpliquer
Continuous deployment - Falguière 22
Livrer au plus tôt
Commiter souventLivrer des features
Feature BranchingFeature flags → par environnement
Feature flippers → par user
Continuous deployment - Falguière 23
Tester au plus tôt
Tests automatisés
Smoke test
Tests en production
Continuous deployment - Falguière 24
Tester en production
Déploiement progressif
Déploiement green-blue
Continuous deployment - Falguière 25
Evaluer au plus tôt
Inclure les retours des utilisateursbeta test (feature flippers)A/B testing (feature flags)
Continuous deployment - Falguière 26
Surveiller
Pendant Juste après
Après
MonitoringAutodiagnostic, journaux
Continuous deployment - Falguière 27
REX (1)
Continuous deployment - Falguière 28
Contexte
StartupRefonteDomaine complexe
Difficile à tester en simulation
Grand nombre de serveurs
Continuous deployment - Falguière 29
Continuous deployment - Falguière 30
Idée générale
Fiabiliser les livraisonsTests automatisésAnalyse du code
Synchronisation entre les 2 équipes
Gérer la multiplicité (15 serveurs)Automatisation de l'installation
Continuous deployment - Falguière 31
L'usine
Continuous deployment - Falguière 32
Continuous deployment - Falguière 33
Blueprint
Continuous deployment - Falguière 34
Flex
Plus facileMoins de code
Projet Agile
Flex 4Maven 2
Continuous deployment - Falguière 35
Flex
Plus facileMoins de code
Projet Agile
Flex 4Maven 2
Livraisons fréquentes
Amélioration du temps de déploiement
Continuous deployment - Falguière 36
Java
LegacyRefonte SOA
Conversion Agile
Continuous deployment - Falguière 37
Java
LegacyRefonte SOA
Conversion Agile
StandbyPas de déploiement
Continuous deployment - Falguière 38
On part de loin
Code, Deploy … and Pray
CVS → SVN → 1 repository
Ant → Maven → HudsonCommiter régulièrement
Tester unitairement
Continuous deployment - Falguière 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 40
REX (2)
Continuous deployment - Falguière 41
Et j'ai changé de vie
Continuous deployment - Falguière 42
iOS
Continuous deployment - Falguière 43
Distribute for enterprise
.ipa + icônes + descripteurs+ provisioning profile + des tas de clicsVous ne
voulez p
as savoir
Continuous deployment - Falguière 44
Idée générale
Eviter toutes ces manipulations
Mode Agile avec le clientLivraisons fréquentes
Continuous deployment - Falguière 45
Clarifier le processus
Continuous deployment - Falguière 46
Ingrédients et chefs
GitRakeiWebKitune pincée de Bashquelques fichiers PHPrsync (ma touche perso)
Sylvain Rousseau & David Gageot
Continuous deployment - Falguière 47
Git fetchrebase
ServerLess CI
Continuous deployment - Falguière 48
Git fetchrebase
Air deploy
Continuous deployment - Falguière 49
Rester simple
Mono branche
300 lignes de script
Ignorer les tâches peu fréquentesLa gestion des certificats (développeur, provisioning profile, ...)
Continuous deployment - Falguière 50
Cachez cette feature qu'on ne saurait voir
ou comment j'ai mis des feature flags ...
Continuous deployment - Falguière 51
Bilan
Entièrement automatisé Promote manuel
A adapter pour la StoreSon petit frère tourne sur l'Apple Store
Automatisation des tests sous iOS ?
Continuous deployment - Falguière 52
Les facteurs de succès
Cycles courts
Agilité du dev
Acceptation du PO ? Au moins pour le delivery
Continuous deployment - Falguière 53
Automatiser
Continuous deployment - Falguière 54
Installer Facilement
Etape par étapeComprendre ses limites
3) Automatisé 2) Outillé
1) Processus clair
Continuous deployment - Falguière 55
Installer au plus tôt
Déminer Simplifier
Apprendre pour réagir vite en prod
Continuous deployment - Falguière 56
Installer la même chose
Prod
Tests
VM
Continuous deployment - Falguière 57
ci / Production
Nombre
Sécurité & Confidentialité
Rollback
Continuous deployment - Falguière 58
Gérer la multiplicité
mcollective / RunDeck / Fabric / Capistrano
vs Hudson/Jenkins
vs scripts
Continuous deployment - Falguière 59
Outils utiles
Git vs SVN
Script vs Maven
Continuous deployment - Falguière 60
Et la base ?
Tout scripter dès le dev
Scripts incrémentaux
Ne pas supprimer
Continuous deployment - Falguière 61
Tout automatiser ?
Accepter un processus partiellement
manuel
- sécurisation / vérification- migration de bases
- opérations peu fréquentes
Continuous deployment - Falguière 62
Conclusion
Continuous deployment - Falguière 63
Delivery / Deploiement
Outillage similaire
+
Gérer l'automatisation de la validation
Continuous deployment - Falguière 64
Facteurs favorables
Faible criticité ou totalement automatisable
Agilité des équipesConvevoir par incrément
Maîtrise des outils (DVCS, TDD, ...)
Continuous deployment - Falguière 65
Facteurs favorables
Compréhension de son processus technique
Coopération avec la production
Continuous deployment - Falguière 66
DEVOPS
DEVOPS
Continuous deployment - Falguière 67
Une application ne rend le service
prévu aux utilisateurs que si
elle est
déployée
devops
Continuous deployment - Falguière 68
devops
Peur des déploiements
Ça marche chez moi !
Continuous deployment - Falguière 69
Coopérer dès le début
Abattre les silos
devops
Peur des déploiements
Ça marche chez moi !
Continuous deployment - Falguière 70
Des User Groups
Lille-devopsParis-devopsLyon ???
Et chez vous ?
http://parisdevops.fr/http://devops.fr
Continuous deployment - Falguière 71
Merci pour votre attention
Je vous écoute
@cfalguiere
Continuous deployment - Falguière 72
Quelques Lectureshttp://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 73
Crédits photo
http://www.flickr.com/photos/jurvetson/5126137767
http://www.flickr.com/photos/pjb2332/1892076224
http://www.flickr.com/photos/wirralwater/3304595702
http://www.flickr.com/photos/deltamike/112665695
http://www.flickr.com/photos/grill/5704051872
http://www.flickr.com/photos/hugo90/5360024969
http://www.flickr.com/photos/theplanetdotcom/4878815037
http://www.flickr.com/photos/edvvc/1972546648
Continuous deployment - Falguière 74
Crédits photohttp://www.flickr.com/photos/ecru76/2709226929
http://www.flickr.com/photos/seeminglee/3929959851
http://www.flickr.com/photos/publicresourceorg/4245550588
http://www.flickr.com/photos/pjb2332/2209369645
http://www.flickr.com/photos/theleticiabertin/5344450700
http://www.flickr.com/photos/abbot45/309058972
http://www.flickr.com/photos/pjb2332/2095801220
top related