One version to rules them all

Preview:

Citation preview

One version to rules them all

bertrand.paquet@gmail.com

Pourquoi ?

• Continuous deployment

• Déployer

• Souvent

• Facilement

• Sans angoisse

Qu’est ce qu’on déploie ?

Peux t on passer la version X en production ?

Qu’est ce qu’une version ?• Ce qu’il faut pour garantir sa reproductibilité

Application Heroku Back office @

Orange

Plateforme Cloud

Site E-Commerce en PHP

Version ?

Package OS

CodeSocle

Monitoring / Supervision

Configuration Plateforme

Configuration Socle / OS Application compilée

Schémas SQL / LDAP

Application iPhone / Android

Description Plateforme

Dépendances compilée

Données éditoriales

Package OS

CodeSocle

Monitoring / Supervision

Configuration Plateforme

Configuration Socle / OS Application compilée

Schémas SQL / LDAP

Application iPhone /

Description Plateforme

Dépendances compilées

Données éditoriales

Repo binaire Git Repo Apt

Concrètement

DoncFichier de

version

Capistrano

Git Repos binaire

Plateforme

Contrôleur

Socle

GitGit HTTP

API

Chef soloApplicatif

Processus de « labelisation »

Jira

EquipesJenkins

Job de livraison Git

V0.148

V0.149

V0.150

Déploiement intégration

Tests automatisés

OK / KO

DéploiementTAG=1.149 ./run.rb prd1 chef apps:deploy:all

Working from /jenkins/workspace/Deploy labelized platform Launching cap command on env : prd1 Searching for tag : last_prd1 Using hash_code for releases : fcd64f1339b5bb09c8ff4bb4a7304239db6e7f4e Current tags : last_prd1 1.168.1 Using Release file : labelized_v1.yml Loading config from releases/labelized_v1.yml Using hashcode for deploy.git 3a0200955c1e2f18b2e4ca63c1a34ba0c7036dfc

Workflow

Labelisation

Tests de non régression automatisés

Décision

Intégration

Pré productionDécision

Production

Recette manuelle

Décision

Tout automatique ?

• Tout est gérable en version ?

• Toutes les équipes respectent le processus ?

• Qui décide de labéliser ?

• Quid des recettes manuelles ?

• Qui décide quel bug par en prod ?

Recommended