Vous êtes sur la page 1sur 52

D E VO PS

LE S EC R ET D E L’AGI LI TÉ DES START-U PS


À LA P O RT ÉE DES GRAN DS CO MPT E S
www.wavestone.com

Wavestone est un cabinet de conseil, issu du rapprochement de Solucom et des activités européennes
de Kurt Salmon (hors consulting dans les secteurs retail & consumer goods en dehors de France).
La mission de Wavestone est d’éclairer et guider ses clients dans leurs décisions les plus stratégiques
en s’appuyant sur une triple expertise fonctionnelle, sectorielle et technologique.
Fort de 2 500 collaborateurs présents sur 4 continents, le cabinet figure parmi les leaders indépen-
dants du conseil en Europe et constitue le 1er cabinet de conseil indépendant en France.

2
ÉDITO

DEVOPS : VERS L’AGILE DE BOUT-EN-BOUT pratiques des GAFA. Ces géants du web ont
en effet eu la chance de pouvoir construire
À l’heure des disruptions digitales, les leur informatique en mode green field,
entreprises cherchent par tous les moyens en pensant dès le départ la modularité et
à gagner en agilité et à améliorer le time- l’agilité.
to-market de leurs produits.
Ce qu’ils nous apprennent, c’est que le
Avec un leitmotiv pour y parvenir : l’agilité ! Devops est un subtile mélange de modularité
Mais l’agilité ne se décrète pas. Elle implique et de grande autonomie d’un côté, et de
une transformation à tous les étages, depuis règles et cadre de fonctionnement très
les méthodes de travail jusqu’à l’architecture stricts de l’autre, pour assurer l’assemblage
même des systèmes d’information, en de l’ensemble.
passant par les organisations et les Cette publication présente les principes de
processus de décision. mise en place du Devops et nos convictions
Si les méthodes agiles commencent pour bien entamer cette transformation en
effectivement à se déployer dans la profondeur que doivent mener toutes les
conception et le développement des DSI.
produits, elles se heurtent encore à un mur Excellente lecture à tous !
infranchissable qui sépare les « dev » et les
« ops ».

Ce mur s’est créé progressivement à travers


la construction de systèmes d’information
de plus en plus lourds, monolithiques et
fortement imbriqués entre eux. À cela se
sont ajoutés des silos organisationnels
éloignant les équipes de développement
et de production.

Pour changer, et aller vers le DevOps à


grande échelle, il faut nous inspirer des

LAURENT BELLEFIN
Directeur Associé

3
AUTEURS

Maximilien Moulin Hasmik Manouchian


Maximilien est manager en Architecture des Hasmik est manager chez Wavestone dans
Systèmes d’Information, spécialisé sur les sujets la practice IT Data Architecture. Elle est
Cloud et Agilité. Diplômé de l’INSA de Lyon, spécialisée sur les sujets d’architecture
il débute sa carrière dans l’architecture du SI technique, d’agilité et de gouvernance.
interne d’Orange. Après une aventure entre- Diplômée à l’IAE Lyon 3, elle rejoint
preneuriale il rejoint Wavestone où il conseille Wavestone. il y a 6 ans. Elle accompagne ses
depuis 4 ans les grands comptes sur leur stra- clients dans leurs projets de transformation.
tégie Cloud & Agilité.
hasmik.manouchian@wavestone.com
maximilien.moulin@wavestone.com

Pascal Bour
Pascal est manager spécialisé en architecture
technique et industrialisation de la production.
Diplômé de l’ENSEIRB, il accompagne depuis
8 ans les clients de Wavestone lors des phases
de conception de leurs projets structurants,
ainsi que pour sécuriser et optimiser leurs
exploitations.

pascal.bour@wavestone.com

Cette p u bl i cat i o n a été ré di gé e en co llabo rat io n avec Matt hieu B arret , Franck Lenor mand et R i yad Ya k i ne.

4
SOMMAIRE

06 DEVOPS : être agile de bout-en-bout

08 Améliorer le time-to-value en rapprochant


les O ps et les Devs

17 Pilier I : des applications modulaires et faiblement couplées


entre elles

25 PILIER II : le Continuous Delivery pour des


livraisons auto-magiques

31 PILIER III : l’Infrastructure as Code , une infrastructure


pilotée par le code applicatif

36 PILIER IV : casser les silos, développer l’agile et le travail


collaboratif

40 Mobiliser quelques champions pour amorcer


la transition vers le DEVOPS

47 Vers un modèle opérationnel pour la DSI

51 Conclusion

5
DEVOPS
ÊTRE AGILE DE BOUT-EN-BOUT

La fourniture rapide, fiable et pertinente de services IT est devenue, quel que soit le
secteur d’activité, une composante essentielle de la compétitivité des entreprises.

Pour gagner en réactivité, sans pour autant perdre en fiabilité et qualité, les grandes
structures doivent transformer en profondeur leurs pratiques sur tout le cycle de
production IT, de la conception au déploiement.

Cette transformation est déjà bien entamée à travers la démocratisation des


méthodologies agiles, comme Scrum, qui a permis d’accélérer et d’augmenter le
nombre de livraisons applicatives. Pour autant, freiné par des temps de livraison
en production trop longs, ces méthodes ne tiennent pas encore toutes leurs
promesses. Pour vraiment améliorer le time-to-value, c’est-à-dire le temps entre
l’expression du besoin du métier et l’ouverture du service idoine, c’est l’intégralité
de la chaîne de valeur IT, du métier aux opérations, qui doit être transformée.
La démarche DevOps étend les pratiques agiles venues du développement au passage
en production pour bénéficier pleinement de l’accélération des livraisons applicatives.

POUR VRAIMENT AMÉLIORER LE TIME-TO-VALUE ,


C’EST-À-DIRE LE TEMPS ENTRE L’EXPRESSION DU
BESOIN DU MÉTIER ET L’OUVERTURE DU SERVICE
IDOINE, C’EST L’INTÉGRALITÉ DE LA CHAÎNE DE
VALEUR IT, DU MÉTIER AUX OPÉRATIONS, QUI DOIT
ÊTRE TRANSFORMÉE

6
7
AMÉLIORER LE TIME-TO-VALUE
EN RAPPROCHANT LES OPS ET LES DEVS

Le DevOps est une démarche d‘alignement des parties prenantes de la chaîne


d e v a l e u r I T ( b u s i n e s s , d é ve l o p p e m e n t , o p é r a t i o n s m a i s a u s s i s é c u r i t é ,
architecture, compliance et autres fonctions transverses) sur un objectif métier
commun, dans le but d’accroître la réactivité de l’entreprise sur son marché.

8
Cette démarche se matérialise par
un ensemble de bonnes pratiques,
méthodologies et outils qui servent deux D E VO PS WA S H I NG
objectifs :

// Aligner les objectifs entre Dev et Ops


I l n’y a p a s à ce j o u r d e d éf i n i t i o n
// Automatiser l’ensemble du cycle de uni q ue fa i s a nt co n s en s u s s u r l e term e
production Dev Op s . Cert a i n s , co m m e Fo rrester,
l e d éf i n i s s ent co m m e l a créat i o n
ALIGNER LES OBJECTIFS ENTRE DEV ET OPS d ’un pi pel i n e d e l i vra i s o n l o g i ci el l e
a uto m at i s é  ; d ’a u t res , co m m e
Le terme DevOps est né de la contraction G a r t n er, i n s i stent s u r l ’a d o p t i o n d e
des termes « Development » (équipes p rat i q u es Lea n et a g i l es p o u r l i vrer
de développement) et « Operations » ra pi d em ent u n s ervi ce I T. Cette
(équipes d’ingéniérie de l’infrastructure a b se n ce d e d éf i n i t i o n p réci s e et l e
et d’exploitation de la production « b ra n di n g  » d e n o m b reu x o u t i l s
i n fo r m a t i q u e) . H i sto r i q u e m e n t l e s sous l a term i n o l o g i e D evOp s , d o n n e
équipes assurant la construction et cl a ire m ent l a s en s at i o n d e vi vre u n
l’exploitation du SI ne faisaient qu’une, « DevOps wa sh i n g  » , s u ccéd a nt l es
mais la complexité des architectures et la va g u es d e «   Green wa sh i n g  » p u i s
croissance importante du SI ont poussé « Cl o u d wa sh i n g  » d es d ern i ères
à une séparation nette entre ceux qui a nn ées . I l co nvi ent d o n c d ’êt re
font évoluer le SI (les Devs) et ceux qui v ig i l a nt et d e n e p a s s e l a i s s er
assurent son exploitation et son bon p ren d re a u j eu d es ét i q u ettes .
fonctionnement (les Ops).

9
Le mur de la confusion

APPLICATION
DÉPLOYÉE

ÉQUIPE «DEVELOPMENT» ÉQUIPE «OPERATIONS»


CULTURE PRODUIT CULTURE SERVICE
Avec des objectifs : Avec des objectifs :

d’ INNOVATION & FONCTIONNALITÉS de STABILITÉ & RATIONALISATION

Adapter le SI aux demandes du marché Maintenir la disponibilité en contrôlant


en faisant régulièrement évaluer le les évolutions pour réduire les risques
produit de pannes
= =
MAXIMISER LE CHANGEMENT MINIMISER LE CHANGEMENT

10
Aujourd’hui, la collaboration entre l e s é q u i p e s d e d éve l o p p e m e n t e t
les équipes de développement et les d’exploitation.
opérations est souvent douloureuse.
Les pratiques et outils DevOps permettent
Leurs mandats respectifs a priori peu
d’intégrer l’ensemble des acteurs de la
compatibles – innovation, évolution et
chaîne de valeur IT au sein d’un processus
réactivité pour les Devs, stabilité et fiabilité
unique, intégré et continu reposant sur
du SI pour les Ops – ainsi que leurs fortes
les principes agiles (itérations, forte
dépendances mutuelles expliquent la
collaboration business, test & learn…)
complexité de leur relation. Cet état peut
e t s u r u n e vé r i t a b l e c u l t u re d e l a
se traduire par un manque de performance
collaboration entre les Devs et les Ops.
mais aussi par un « agacement » mutuel.

Parce qu’elles n’impliquent que trop


A U TO M AT I S E R L’ E N S E M B L E D U C YC L E D E
peu les équipes d’exploitation, les PRODUCTION
méthodologies agiles, telles qu’appliquées Le DevOps repose également sur la mise
dans la plupart des grandes entreprises, en place d’outils d’automatisation sur tout
n’ont pas remédié à ce problème. Au le cycle de production IT : automatisation
contraire, l’accélération du rythme de de la fourniture d’infrastructure, de la
livraison applicative et la philosophie construction applicative, des tests et du
test & learn ont parfois creusé encore plus déploiement applicatif.
le fossé. Les équipes d’exploitation doivent
déployer en production un nombre Cette automatisation a pour intérêt
croissant d’évolutions, avec souvent une premier d’absorber l’augmentation du
augmentation des taux d’erreurs alors que volume et du rythme des tests découlant
l’exigence de fiabilité reste constante. du fonctionnement itératif. Elle est donc
indispensable pour garantir la qualité du
Cela mène non seulement à la création code applicatif à chaque itération sans
d’un goulot d’étranglement au niveau créer un goulot d’étranglement en aval
du passage en production, mais aussi de la construction applicative.
à toujours plus de « frottement » entre

11
EXEMPLE DE KPIs

QUELQUES EXEMPLES D’INDICATEURS : ET LES GAINS ESCOMPTÉS * :

Nombre de livraisons applicatives 200x plus de livraisons

Temps de mise en production 2 555x plus rapide

Nombre d’incidents 3x fois moins d’incidents

Temps de résolution (MTTR) 24x plus rapides à résoudre

Nombre de rollbacks 0 rollback

... * Puppet & DORA 2016 State of DevOps Report

Parce qu’elle permet de réduire les erreurs Le DevOps met en avant l’automatisation
humaines et de faciliter la mesurabilité de l’ensemble du cycle de fabrication et
à chaque étape, l’automatisation dans de déploiement. De ce fait, avec l’outillage
la démarche DevOps est également approprié tout devient mesurable sur
un levier pour fiabiliser et améliorer de l’ensemble du cycle. La mesure est la
manière continue l’ensemble du cycle de clé qui permet l’adhésion des parties
fabrication et de déploiement. prenantes à la démarche et à son
amélioration continue. C’est par là même
Une automatisation performante et
que l’on pourra lutter contre le « DevOps
adaptée de l’ensemble du cycle est le
washing », mais aussi disposer des bons
principal levier pour éviter le goulot
indicateurs pour démontrer les gains sur
d’étranglement entre le développement
tout le cycle.
et la mise en production. C’est la clé pour
sortir les équipes d’exploitation du rôle
de « pompier » (gestion d’incidents en
continu) dans lequel elles tendent à être
poussées suite à la démocratisation des
pratiques agiles.

12
LE DEVOP S , N’EST PAS  :

• U N P RO D UI T F I N I ou une d é m a rche g é né r iq ue. I l n’y a p a s u n e t h éo ri e


g én éral e a p p li ca b le à tous, il e st né ce ssa i re d ’a d a p ter l es b o n n es
p rati qu e s Dev O p s à un contexte d ’e nt re p r i se.

• U N E FU S I O N d e s m issi ons d e s Devs et d e s O p s. En co ro l l a i re,


D evO ps n’ i nd ui t p a s né ce ssa i re m e nt un cha ngem ent d e l a st ru ct u re
o rg an i s at ionne ll e ; Devop s n’ im p ose p a s non p l u s l e reg ro u p em ent d es
d eu x éq ui p e s a u se in d e l a m ê m e.

• U N E A P P RO CH E Q UI CK & DI RTY i g nora nt l e s p roces s u s o u i n d u i s a nt u n e


p er te d e cont rôl e. La m i se e n p rod uct i on re ste d ’a i l l eu rs g én éra l em ent à
l a m ai n d e s O p s.

13
4 PILIERS POUR CONSTRUIRE LE DEVOPS
EN RAPPROCHANT LES OPS ET LES DEVS

Pour bien appréhender ce qu’est le DevOps, il faut comprendre ce sur quoi il


repose :
// Un brin d’automatisation

// Et beaucoup de collaboration !

14
S I L A CO L L A B O R AT I O N S E D O I T D ’ Ê T R E O M N I P R É S E N T E , L’A U TO M AT I S AT I O N P E U T S E
DÉCLINER DANS TROIS COMPOSANTES

LA COLLABORATION qui est le liant de tous ces piliers en


favorisant l’alignement entre Devs et Ops.

CULTURE DE LA COLLABORATION

APPLICATION CONTINUOUS DELIVERY


L’APPLICATION EN ELLE-MÊME qui
doit être modulaire, intégrer les in-
FILE 1 MANIFEST
formations concernant l’infrastruc- BUILD
Env a : Desc Infra a
ture à déployer, les éléments liés
FILE 2 Env b : Desc Infra b
à l’exploitation ainsi que les tests
automatisés à réaliser.
DEPLOY ENVY

API TEST

INFRASTRUCTURE AS CODE

L’INFRASTRUCTURE AS CODE, qui doit délivrer de façon LE CONTINUOUS DELIVERY qui doit
automatisée et via une interface standardisée des offrir un pipeline permettant
environnements d’exécution pour l’application en fonction de tester l’application de façon
des besoins exprimés au sein de son code source. automatisée et de la déployer
sur le bon environnement au bon
moment.

15
Ainsi, pour réussir sa transformation // L’Infrastructure as Code : tendre
DevOps, il est nécessaire de travailler sur vers une infrastructure service
4 axes en parallèle, qui constituent les consommable, puis intégrable à la
4 piliers du DevOps : livraison applicative

// L ’A p p l i c a t i o n : p r é p a r e r l a // La Collaboration : changer la culture


transformation des applications et les pratiques pour tendre vers une
e n l e s re n d a n t m o d u l a i re s e t organisation sans silos et tirée par
automatisables des méthodologies agiles

// Le Continuous Delivery : automatiser


la chaîne de livraison de la phase
de développement à la mise en
production

L’application une fois construite


CULTURE DE LA 1 (compilée) doit être déployée
sur un environnement (de test,
COLLABORATION d’intégration, de production, …).

Le pipeline de Continuous Delivery


APPLICATION CONTINUOUS 2 fait appel à l’API de l’infrastructure
DELIVERY pour demander la construction de
l’environnement.
FILE 1 MANIFEST
Env a : Desc Infra a BUILD
L’infrastructure utilise le fichier
Env b : Desc Infra b
FILE 2 1 de configuration (Manifest)
3 de l’application pour créer
l’environnement adapté à
DEPLOY ENVY l’application.
3 2

5
6 L’infrastructure orchestre dès
API 4 lors la création effective de
4 TEST
l’environnement.

INFRASTRUCTURE Une fois l’environnement en


AS CODE 5 question créée, l’application est
déployée dessus.

L’application peut alors être testée


6 comme indiquée à partir des tests
indiqués dans le code applicatif.

16
PILIER I
DES APPLICATIONS MODULAIRES ET FAIBLEMENT
COUPLÉES ENTRE ELLES

17
UNE ARCHITECTURE NÉCESSAIREMENT PLUS Une application ainsi construite est un
MODULAIRE assemblage de modules (jusqu’à plusieurs
dizaines), qui sont autant d’éléments
Être plus agile implique de livrer de de code indépendants, chacun sous la
nouvelles versions applicatives plus responsabilité d’une « feature team » :
s o u ve n t e n ré p a r t i s s a n t l e t rava i l petite équipe autonome qui réalise le
sur plusieurs équipes (petites et think, le build et le run du module.
pluridisciplinaires, des « feature teams »).
Cela nécessite dès lors de découpler Les échanges entre modules sont
leur travail pour plus d’efficacité et donc standardisés et s’appuient sur des
d’utiliser des architectures applicatives interfaces (API) permettant de les
plus modulaires. découpler. Ces APIs pourront utiliser des
solutions de gestion (API management)
Si les architectures orientées services afin de rendre les développeurs
ont été étouffées par une gouvernance autonomes sur leur création, publication et
centralisée et rigide, il s’agira ici de consommation. Cela nécessitera toutefois
privilégier des approches décentralisées de mettre en place des solutions de
redonnant de l’autonomie aux cartographie des services pour éviter
développeurs dans leur publication et toute perte de contrôle du SI.
consommation.

ARCHITECTURE MONOLITHIQUE ARCHITECTURE MODULAIRE

HS HS

 X X   

Équipe A Équipe B Équipe C Équipe A Équipe B Équipe C

Sur une architecture monolithique, une seule intervention Sur une architecture modulaire, plusieurs équipes peuvent
est possible à un instant t, chaque livraison travailler en même temps sur différents modules.
embarque le monolithe.

18
Au-delà de la tendance, cette approche doivent pas définir la structure de la
est aussi un facilitateur important dans couche applicative.
une démarche de développement Agile,
à la fois pour améliorer la qualité du code, // Entre modules de l’application
faciliter le travail en équipe, accélérer et vis-à-vis de l’extérieur pour
l’exécution des tests, etc. simplifier la réalisation de tests.
Les modules de l’application
doivent être testables de manière
unitaire sans nécessiter d’interface
L E C AS D E S MICRO-S ERV ICES utilisateur, de base de données ou
d’autres applications. Ceci impose
d’accorder une grande importance
aux tests unitaires au sein du code
Parad i g m e i s s u d e s p rat i q ue s d e s de chaque module de l’application,
acteu rs B 2 C à t rè s l a rg e a ud ie nce, ainsi qu’à la constitution de bouchons
l ’arc h i tect u re m icro-se r v ice of f re pour permettre de tester un service
n ot am m ent u n e ré p onse à un b e soi n unitairement.
d ’ext rêm e s cal a b i li té d e fonct i ons
préc i s es d’u n systè m e. Da ns une // Vis-à-vis de l’Interface utilisateur.
l o g i q u e de d é com p osit ion d ’un Celle-ci doit pouvoir être remplacée
pér i m èt re fo n ct i onne l e n se r v ice s sans aucun impact sur la couche
à fi n e m ai l l e a utonom e s m a i s applicative et ses fonctions.
co l l ab o rant ent re e ux , le s p rat iq ue s
d’arc h i tect u re, d ’ inf ra st r uct ure // Vis-à-vis de la persistance des
et d’ex pl o it at ion d oive nt données. Pour pouvoir être scalable,
s i g n i fi cati vem ent évol ue r p our g é re r ce type d’architecture requiert
u n e co n stel l at ion d e m icro-se r v ice s un fonctionnement stateless des
i n stan c i abl es à l a vol é e et volat i le s. services. La persistance des données
et des sessions doit être gérée de
façon à pouvoir assurer une montée
Dans une approche modulaire, les ou une baisse de charge tout en
éléments constituants l’application doivent garantissant la cohérence des
donc être très faiblement couplés, et ceci données.
à tous les niveaux :
// Vis-à-vis de toute autre fonction
// Vis-à-vis de framework ou de externe à l’application issue d’autres
bibliothèques, qui peuvent être applications ou services.
utilisés comme des outils mais ne

19
UNE MISE EN PRODUCTION RAPIDE ET partiellement ou de façon ciblée, certaines
MAÎTRISÉE fonctionnalités.

La conception d’applications en mode De la même façon, cela induit de concevoir


DevOps nécessite de renforcer les l’application pour qu’elle soit directement
tests réalisés (notamment par leur exploitable et ne pas attendre le moment
automatisation) et de prendre plus de d e l a m i s e e n p ro d u c t i o n p o u r s e
risques dans les mises en production. préoccuper de sa mise sous supervision,
Cela signifie une évolution des méthodes sous sauvegarde, de la conception de
de développement et l’introduction de nouveaux scripts d’automatisation, des
nouvelles démarches comme l’approche problématiques de performance, de
«   Te s t D r i v e n D e v e l o p m e n t   » , l e scalabilité et autres problématiques
« Feature Flipping » ou le « Blue-Green d’exploitabilité.
Deployment » pour mettre en production,

20
TESTS UNITAIRES : L’APPROCHE TEST-DRIVEN DEVELOPMENT

LORSQUE LE DÉVELOPPEUR CODE UNE FONCTION, IL SUIT GÉNÉRALEMENT 3 ÉTAPES :

1 Écrire le code source de la fonction ;

2 Écrire le code source du test unitaire relatif à la fonction ;

3 Exécuter le test unitaire relatif à la fonction pour vérifier qu’il passe.

AVEC UNE APPROCHE TEST DRIVEN DEVELOPMENT, LE DÉVELOPPEUR FAIT L’INVERSE :

1 Écrire le code source du test unitaire relatif à la fonction à développer ;

2 Écrire le code source de la fonction permettant de passer le test ;

3 Retravailler le code pour l’améliorer tout en s’assurant que le test continue


de passer.

Cette méthode permet de s’assurer que chaque fonction est bien associée à un ou
plusieurs test(s) unitaire(s) et facilite ainsi les tests de non-régression tout en
précisant les spécifications puisque le test décrit le comportement attendu.

TEST-DRIVEN DEVELOPMENT

1 TEST FIRST 2 DEVELOP 3 REFACTOR

Rédaction du test Écriture du code minimal Réécriture du code


correspondant à la fonctionnel pour de manière optimisée
fonctionnalité à développer passer le test

Vérification de l’échec Vérification de la validation Vérification de la validation


du test du test du test

Répéter le cycle pour les nouvelles fonctionnalités

21
EXEMPLE DES MÉTHODES DE DÉPLOIEMENT

Web Server App Server DB Server


Version n

BLUE/GREEN Version n+1


DEPLOYMENT

Déploiement d’une version n+1 sur un environnement parallèle à la version de


production n et bascule facilitée de n vers n+1 et de n+1 vers n (rollback).

Version 3

UTILISATEURS
INTERNES

Version 2

petit groupe
d’utilisateurs

CANARY
RELEASE Version 1
CLIENTS

Déploiement de plusieurs versions en parallèle, certaines versions (voire


fonctionnalités) ne sont ouvertes qu’à certaines populations (alpha puis beta testeurs)
avant d’être (ou pas) généralisées.

22
Version 1A
67%
50% de conversion

Version 1B
A/B TESTING CLIENTS
50%
11%
de conversion

Déploiement de 2 variantes d’une même version en parallèle pour en comparer


les résultats et en déduire laquelle conserver.

NEW FEATURE FEATURE FLAG OR CONSUMERS


TOOGLES

ON

OFF
FEATURE
FLIPPING OFF

Déploiement de fonctionnalités activables via une interface de l’application.


Permet notamment de ne pas activer certaines fonctionnalités si les tests ne passent pas
sans pour autant freiner la mise en production. Peut être couplé à canary release.

23
Les tests fonctionnels (ou recettes)
d o i ve n t e u x a u s s i ê t re l a rg e m e n t
automatisés pour pouvoir vérifier l’absence L’ANO NY M I S ATI O N D E S
de régressions fonctionnelles à chaque D O NNÉ E S
itération et valider le bon comportement
des fonctions nouvellement créées ou
modifiées.
Da ns ce r t ai n s s ecteu rs ( b a n q u e et
Cela n’est pas trivial et suppose d’être a ssura nce n ot a m m ent ) l e b es o i n
en capacité de tester les appels aux d ’a nony m i s at i o n d e l a d o n n ée
fonctions ainsi que les interactions d ev i e nt d e p l u s en p l u s p ro n o n cé.
homme-machine, de pouvoir récupérer Da ns ce contexte, l a m i s e en p l a ce
et analyser les éléments (données ou d u Dev O p s d o i t i n cl u re l a ca p a ci té
éléments graphiques) retournés et de d ’a utom at is at i o n d e l ’a n o ny m i s at i o n
maintenir et faire évoluer l’ensemble des d e s d onné e s d e p ro d u ct i o n u t i l i s ées
jeux de données nécessaires à l’exécution p our les test s fo n ct i o n n el s .
des tests.
Ce ci re prés ente u n ef fo rt n o n
La mise en place de cette automatisation, né g l ig e a bl e à ce j o u r, l e m a rch é
encore plus que pour les tests unitaires, n’of f ra nt p as en co re d ’o u t i l s m at u res .
p e u t re p ré s e n t e r u n e c h a rg e n o n
négligeable pour une application existante
et peut entraîner un allongement des
Pour autant, les études montrent qu’une
charges et délais à mettre sous contrôle.
approche DevOps permet de réduire
jusqu’à 22%* le temps passé sur du travail
non planifié (bugs) ou sur la reprise de
LA D E T T E T EC H N I Q U E N ’ E ST PA S G Ê N A N T E code.
SI ELLE EST SOUS CONTRÔLE
Dette Totale
L a co n st r u c t i o n p l u s ra p i d e d ’ u n e
application amène forcément à faire Dette toxique
des compromis. On « contracte » ainsi (ancienne)
rapidement et naturellement une dette
technique (code, infrastructure, outils
de gestion) que l’on «  rembourse  »
t o u t a u l o n g d e l a v i e d u p ro j e t .

En revanche il n’est pas utile de chercher à


atteindre le zéro dette, au-delà du risque Dette saine
de surqualité, c’est aussi un frein réel à (récente)
l’agilité.
Atteignable en pratique Temps
* Puppet & DORA 2016 State of DevOps Report Idéalement

24
PILIER II
LE CONTINUOUS DELIVERY POUR DES
LIVRAISONS AUTO-MAGIQUES

Le Continuous Delivery (CD) est une chaîne de construction logicielle


a u t o m a t i s é e . I l s ’a g i t d ’ u n e n s e m b l e d e p ro c e s s u s , o u t i l s e t t e c h n i q u e s
permettant de gérer les livraisons applicatives, depuis la production du code
à la livraison de la fonctionnalité en passant par le build, le déploiement, les
tests, le packaging… L’objectif ? Augmenter la fréquence et la rapidité des
livraisons de manière fiable, rapide et continue.

DÉVELOPPEMENT D’UNE
NOUVELLE ITÉRATION

TEST BUILD
1
3

2
DEPLOY

25
On considère habituellement que le infrastructures, l’opportunité du moment
Continuous Delivery s’appuie sur deux pour déployer une nouvelle version, etc.
chaînes d’automatisation :
Une fois ceci géré, ne lui reste plus qu’à
// La chaîne de Continuous Integration déclencher le déploiement de l’application
(CI), ciblée pour le développement (déploiement « push-button »).
intégrant les processus de build, de
En revanche, le déploiement sur d’autres
mesure de la dette technique (qualité
environnements (hors-production, pré-
du code), des tests unitaires et de
production) peut être complètement
user acceptance ;
automatisé.
// La chaîne de Continuous À partir d’un certain niveau de maturité,
Deployment, étendant la chaîne il est tout à fait envisageable d’imaginer
CI par l’automatisation de la mise un déploiement automatique de bout-en-
à disposition des environnements bout (cf. schéma ci-contre).
d’infrastructure et des livraisons
applicatives. Cette extension est
prise en charge par les exploitants
C H O I S I SS E Z L’O U T I L LAG E E N FO N C T I O N D E
en s’appuyant sur des méthodologies VOTRE CONTEXTE, PAS DE SON ÉTIQUETTE
et outils quasi-identiques à ceux Aujourd’hui, l’outillage de la chaîne de
des développeurs. L’exploitant gère Continuous Delivery est assez hétérogène :
ainsi la consommation d’éléments chaque fonction a son outil à choisir parmi
d’infrastructure, de configuration une myriade de solutions, le marché
management et le déploiement de l’outillage DevOps étant en pleine
applicatif. effervescence.

Jusqu’à la mise en production, l’ensemble La première raison tient en l’absence


de la chaîne est automatisée. L’Ops de définition claire et partagée de
doit dans un premier temps valider un DevOps ce qui permet à de nombreux
certain nombre de prérequis, comme éditeurs d’appliquer l’étiquette DevOps
l’adhérence de l’application avec le sur tout outil ayant trait à la conception
reste du SI, la disponibilité suffisante logicielle, à l’usine logicielle, à la gestion
des ressources au sein des équipes pour de configuration ou toute autre forme
réagir en cas d’incident, la disponibilité des d’orchestration (« DevOps washing »).

26
CODE BUILD TEST DEPLOY

Continuous Integration

Source Code Builds Tests


Management automatisés automatisés

Continuous Deployment
Un commit déclenche Un build réussi lance Si les tests passent,
le build les tests le build est validé

À ce stade, le code Déploiement


est déployable à automatisé
tout moment

Continuous Delivery

27
De plus, beaucoup d’outils essaient d’étendre leur scope au-delà de leur champs
technico-fonctionnel traditionnel, ce qui contribue à complexifier les réels apports
respectifs des différents outils sans pour autant offrir une vraie suite logicielle de
bout-en-bout.

Pour s’y retrouver, nous proposons de classer les outillages selon la matrice suivante :

CONTINUOUS INTEGRATION

SOURCE CODE MANAGER CONTINUOUS INTEGRATION SERVER

• git • Bitbucket • Github


• AWS CodePipeline • XL
• CodeCommit • CVS
Release • TC • B amboo
• Subversion • Mercurial •
•Travis CI •
Helix •

BUILD TEST

• J Unit • Selenium
• Maven • Gradle • Grunt •
• S auce Labs • Test
Apach ANT • NPM •
Complete•

CODE QUALITY

• SonarQube • Kiuwan •
Semmle •

28
DEPLOYMENT CONFIGURATION MANAGEMENT

• IBM Active Deploy • XL


• Vagrant • Puppets Labs •
Deploy • Google Cloud
Chef • Ansible • S altstack •
Deployment Manager •
Terraform • CF Engine •
Container & orchestration

Docker • Kubernetes • Mesos •

COLLABORATION

• Trello • Slack • Jira• HipChat •

Continuous Integration Continuous Deployment Collaboration

L’absence de consensus sur la mise en œuvre de DevOps empêche l’industrie logicielle


de proposer aujourd’hui des solutions dédiées. Pour autant, ces solutions feront leur
apparition dans les prochaines années tout en imposant leur mode de fonctionnement
(et donc certaines pratiques).

29
Le choix du type d’outillage se fera en fonction du contexte de l’entreprise : selon si
elle est de type  « early adopter » elle préfèrera un modèle Best of Breed ou une solution
se basant sur un Cloud public et son outillage associé ; si elle est de type « follower »
elle pourra choisir la suite intégrée d’un fournisseur du marché ou la solution clé en
main d’un infogérant.
EARLY ADOPTERS

CLOUD PUBLIC BEST OF BREED


ADOPTION

SUITE ÉDITEUR
INFOGÉRANT
COMPLÈTE

COMPÉTENCES INTERNES
EXPERTISE

Enfin, certains outils doivent naturellement // Les outils de publication des résultats
être centralisés quand d’autres peuvent d’analyse.
être instanciés par équipe pour que
chacune puisse garder la main sur le Tandis que les outils que l’on est amené à
rythme de mise à jour de l’outil en question instancier par équipe peuvent être :
ou pour en gérer certaines spécificités de // Le builder d’applications ;
configuration.
// Les outillages de tests unitaires, cou-
Généralement les outils centralisés et
verture de code, respect des normes
partagés par tous sont :
de codage ;
// L e g e s t i o n n a i re d e s o u rc e s /
artefacts (librairies, fichiers de // Les outils de déploiement (configu-
configuration…) ; ration management et déploiement
applicatif).
// Les outils de gestion de la couverture
des tests ;

30
PILIER III
L’INFRASTRUCTURE AS CODE, UNE INFRASTRUCTURE
PILOTÉE PAR LE CODE APPLICATIF

L’Infrastructure as Code (IaC) est l’étape ultime d’agilité et de banalisation


de l’infrastructure.

31
Depuis plusieurs années beaucoup l’infrastructure n’est plus que simple
de progrès ont été faits sur le marché puissance de calcul, scalable sans
pour tendre vers l’automatisation et la difficulté, manipulable par les Devs à
consommation de l’infrastructure : on parle travers des langages de codes applicatifs
« as a service », « on demand », catalogue habituels.
de services, Cloud, API… L’Infrastructure as
Code pousse plus loin encore cette idée.
COMMENCER À RENDRE L’INFRASTRUCTURE
AGILE EN L’AUTOMATISANT
Le but de l’IaC est de permettre la
c ré a t i o n e t l a c o n f i g u ra t i o n d ’ u n B i e n e n te n d u , l ’a u to m at i s at i o n d e
environnement d’exécution complet l’infrastructure reste un prérequis à
(éléments d’infrastructure et middleware) l’IaC : pour manipuler de l’infrastructure
automatiquement au travers du code au travers du code applicatif, il faut que
applicatif. Les développeurs manipulent l’infrastructure soit exposée à travers des
ainsi l’infrastructure dans le code même interfaces programmatiques (APIs).
de l’application, au même titre qu’une Cette automatisation peut se faire en
fonctionnalité. 3 étapes, qui correspondent à 3 niveaux
L’IaC permet donc de définir de maturité.
l’infrastructure d’une manière nouvelle :

L a m is e en œ u v re d ’u n I a C à l ’ét at d e l ’a rt n’e st p a s u n p ré- req u i s au D ev Op s :


vo u s p o u vez d ém a r re r vos p re m ie rs p roj et s e n aya nt a u to m at i s é s eu l em ent u n e
par ti e d e vot re i nf ra st r uct ure et te nd re ve rs une I nf ra st ru ct u re a s Co de
d e b out-e n-b out p a r i té rat ions succes s i ves .

32
La première étape de fourniture Ces trois étapes peuvent être réalisées
1
de l’enveloppe de la machine séquentiellement ou en une fois
virtuelle est souvent la plus simple. selon le degré d’automatisation de
Dans une optique DevOps, il faudra l’infrastructure.
cependant lever les derniers freins
Il est également nécessaire de tendre
à une automatisation complète
vers une automatisation des services
(souvent la configuration réseau) et
d’infrastructure : sauvegarde, supervision
être en mesure de provisionner en un
technique et applicative, ordonnancement,
clic cet environnement.
sécurité. La cible étant que la résilience, la
La deuxième étape de sécurité, les services d’exploitation soient
2
déploiement des middlewares directement gérés dans l’application
est déjà plus complexe. par les développeurs eux-mêmes, il est
Pour faire simple on pourra par important que les développeurs puissent
exemple, créer des modèles de s’abonner à ces services directement au
m a c h i n e s v i r t u e l l e s a ve c d e s travers d’une API.
middlewares préinstallés mais cette
méthode atteint vite ses limites
(difficulté à gérer le cycle de vie LE PAA S ,
du modèle, à ajouter un nouveau UN ACCÉ LÉ R ATE UR
m i d d l ewa re , e tc . ) . I l e s t d o n c
préférable de s’outiller pour être en Le s o u t i l l a g es Pa a S ( P l at fo rm a s
mesure de provisionner directement a Servi ce) s o nt d e fo rm i d a b l es
les machines et middlewares requis a ccél érateu rs p o u r p eu q u e l ’o n
de façon automatisée éventuellement re lève l e d éf i d e l eu r i ntég rat i o n
en ayant même défini des topologies a u S I et n ot a m m ent à l a ch a î n e
applicatives (déploiement d’un d ’exp l o i t at i o n .
ensemble d’éléments suivant un
schéma défini au préalable). O n se m éf i era a i n s i d es s o l u t i o n s d e
Pa a S P ri vés (d ével o p p ées en i ntern e
Enfin la troisième étape est souvent
3 ou s o l u t i o n s éd i teu rs d ép l oyées
la plus complexe puisqu’elle requiert
on-p rem i s es) s o u vent p eu m at u res ,
d’interagir avec d’autres éléments de
q ui n’ i ntèg rent p a s s i m p l em ent
l’infrastructure (un firewall, un load
l e s p ro b l ém at i q u es d es s ervi ces
balancer, une passerelle d’échanges,
d ’ i nf ra st ru ct u res (s a u veg a rd e,
etc.) pour fournir à l’application un supervi s i o n , rés ea u & s écu ri té) .
environnement d’exécution complet.

33
B A N A L I S E R L’ I N F R A S T R U C T U R E P O U R UTILISER LE CLOUD PUBLIC EN CAS DE
RENDRE LES DÉVELOPPEURS AUTONOMES PROJET PARTANT D’UNE PAGE BLANCHE
L’automatisation de ce processus ne L’outillage est avant tout une question de
suffit pas à elle-seule à constituer une contexte. Les outils sont nombreux : de
Infrastructure as Code, il est nécessaire celui bien limité à une fonction particulière
de rendre accessible ce déploiement via à la suite complète de grands éditeurs
une API et de pouvoir définir, dans le code en passant par les solutions pure-player
source de l’application, l’infrastructure Cloud, il en existe pour tous les contextes.
requise pour faire fonctionner
Ainsi une organisation avec de fortes
l’application :
compétences techniques en interne n’aura
// Nombre de serveurs et middlewares pas la même stratégie qu’une entreprise
associés ; ayant l’habitude de s’appuyer sur des
ressources externes. De la même façon
// Services applicatifs à déployer (cache une entreprise prête à prendre des risques
mémoire, queue de messages, etc.) ; pour se différencier (« early adopter »)
ne réagira pas de la même façon qu’une
Ce l a d o i t p e r m e t t re d e b a n a l i s e r
entreprise qui cherche de la stabilité et
l’infrastructure pour ne plus offrir aux
des solutions matures pour assurer son
développeurs qu’une simple puissance
fonctionnement.
de calcul.
EARLY ADOPTERS

SOLUTION CLOUD PUBLIC SOLUTION BEST OF BREED


composée de plusieurs logiciels

Microsoft • Azur • Heroku • Acquia •


Engine Yard • SAP • ORACLE Cloud • Chef • CF Engine • Ansible • Puppets
Google Cloud platform • IBM • Labs • S altstack •
Amazon web services •
ADOPTION

PLATEFORME DE SON INFOGÉRANT SUITE ÉDITEUR COMPLÈTE

IBM • Atos • Linkbynet • Sygma • HCL


• Capgemini • GFI • CGI • Tata • Wipro
BMC • WM Ware • IBM• HP• CA
• Cloud Temple • Accenture • Orange
• Atlassian •
Business Service • Sopra • Steria • CSC •
Claranet • HP Enterprise •

COMPÉTENCES INTERNES
EXPERTISE

34
L’approche Cloud public est quoiqu’il Enfin lorsque l’on conçoit une IaC,
arrive une approche à considérer, tant il est indispensable de standardiser
les acteurs de ce type de Cloud sont en l’infrastructure et donc faire des choix :
avance sur le marché. Amazon, Microsoft,
// Choisir où investir l’effort pour auto-
Google atteignent un niveau de maturité
matiser et industrialiser des compo-
qui ne saurait être rattrapé par des équipes
sants qui font sens.
internes d’entreprises dont ce n’est pas le
cœur de métier. Il convient donc dans une // Accepter de ne pas intégrer les
stratégie Cloud privé de savoir pourquoi workloads qui n’entreraient pas dans
et pour quels workloads l’on adopte cette ce standard. Ce qui implique égale-
stratégie. ment que toute nouvelle application
doit être conçue pour suivre ces
standards.

35
PILIER IV
CASSER LES SILOS, DÉVELOPPER L’AGILE
ET LE TRAVAIL COLLABORATIF

La culture DevOps puise ses sources dans les méthodes Agiles et le Lean (responsabiliser,
faire confiance, respecter, communiquer avec transparence) ainsi que sur une approche
« Business-centric », catalyseur d’une plus grande collaboration entre les Métiers,
le Développement et la Production.

36
Ce changement culturel ne peut pas se // Faire évoluer les indicateurs pour
faire du jour au lendemain, et il convient ne plus objectiver les développeurs
de l’échelonner sur 2 grands paliers : sur la seule qualité de leur code ou
fréquence de leur release mais aussi
sur leur bonne compréhension de la
SUR UN PROJET production (et vice-versa pour les
1
exploitants).
// Former une équipe qui embarque toutes
les compétences (Dev, Ops mais aussi // Tirer parti des outils collaboratifs
architecture, sécurité, compliance…) (type Trello ou Jira agile) pour faci-
// Orienter le métier d’Ops sur la construc- liter et renforcer le lien entre les Dev
tion de nouveaux services automatisés
et les Ops
// Responsabiliser les Dev sur l’exploita-
bilité de leur produit
« IT IS ALL ABOUT PEOPLE » #HUMANFIRST
Une transformation DevOps est avant tout
DANS L’ENTREPRISE une question de personnes, d’humains, de
2 collaboration.

Les premiers freins à lever seront donc des


// Généraliser ce mode de fonctionnement
à la majorité des projets questions de collaboration, des personnes
// Diffuser la culture DevOps à tous en par- à convaincre que l’on peut faire mieux
tageant les enjeux et les success stories différemment, des process à casser, des
// Planifier l’évolution des modèles et l’or- objectifs (y compris ceux de fournisseurs)
ganisation de la DSI
à revoir, des outils à changer, etc. Tout
cela ne peut se faire qu’en s’appuyant
sur des personnes fiables, motivées, très
compétentes (Google parle de « Highly
Pour ce faire, il faut adopter un langage,
Skilled Engineers » dans sa méthodologie
des indicateurs et des outils communs et
« Site Reliability Engineering » - SRE), avec
partagés :
de fortes capacités d’adaptation.
// Avoir une vision « produit » et non
De plus comme dans tout projet de
plus « projet » : les équipes réalisent
conduite du changement, il sera nécessaire
un produit qui sera utilisé par un
de beaucoup communiquer, sur les
client final et ne contribuent plus
réussites et les échecs, sur les objectifs, sur
seulement à un projet lambda.
les impacts, l’organisation et les métiers.

37
L E S O R G A N I S AT I O N S S ’A G I L I S E N T E N émerger des principes et des méthodes
S’ I N S P I RA N T D E S P RAT I Q U E S D E S G É A N TS plus ou moins complexes pour développer
l’agilité à l’échelle de l’entreprise.
DU WEB
Les pratiques popularisées par Google
(SRE), Spotify, Amazon, Facebook et
consorts font aujourd’hui des émules.
Ces pratiques sont le prolongement du
chemin vers le « tout agile ». Elles ont fait

// Spotify est à l’initiative d’une méthodologie dont le pilier principal est


l’autonomie donnée aux équipes (feature teams). Afin de maintenir la
cohérence de son SI, Spotify a mis en place des communautés regroupant
les sachants d’une thématique (chapters, tribes, guilds) qui forment une
SPOTIFY
sorte de hiérarchie matricielle.
// Reconnue comme l’état de l’art des organisations Agiles, c’est aussi une
méthodologie assez peu documentée et demandant un haut niveau de
maturité tant en termes d’agilité qu’en termes de management des équipes.

// SAFe est un cadre de travail développé en 2011 par une équipe d’experts
Agile pluridisciplinaires. Il a été conçu pour les organisations traditionnelles
(par opposition aux pure-players web) pour adresser des programmes com- SAFe
plexes impliquant de nombreuses équipes. Scale Agile Framework

// Il s’adresse à des entreprises maîtrisant déjà la méthode Agile Scrum.

// Le Scrum of Scrums est une technique permettant de synchroniser très


simplement plusieurs équipes Scrums entre elles sans mettre en place un
framework très complexe.
SCRUM OF SCRUMS
// Si cette technique ne permet pas réellement de développer l’agilité à
l’échelle de l’entreprise, elle peut être une étape pour la développer à
l’échelle d’un projet d’envergure.

38
ORGANISATION ORGANISATION
TRADITIONNELLE AGILE

SILOS organisationnels et EQUIPES ET UNITÉS


fonctionnels PLURIDISCIPLINAIRES

IMPLICATION À TEMPS PARTIEL dans IMPLICATION À TEMPS PLEIN DANS


les projets UNE ÉQUIPE ET SUR UNE TÂCHE

STRUCTURE HIÉRARCHIE COMPLEXE


multi-niveaux MOINS DE NIVEAUX HIERARCHIQUES

CENTRALISATION DES DÉCISIONS


CONFIANCE ET DÉLÉGATION
au niveau management

CHANGEMENT ET LIVRAISON
Process de gestion de projet CONTINUS
LOURDS

PROCESS CYCLE EN V et gestion des Développement de MINIMUM


VALUABLE PRODUCTS et RETOURS
changements en BIG BANG
CLIENTS RAPIDES

Nombreux KPIs INDIVIDUELS Plus de KPIs COLLECTIFS

AVERSION AU RISQUE et culture du PROCESS FLEXIBLES S’ADAPTANT AUX


contrôle BESOINS DU MÉTIER

PERSONNES

39
MOBILISER QUELQUES CHAMPIONS
POUR AMORCER LA TRANSITION
VERS LE DEVOPS

IaC, CD, Culture… Par où commencer ? Comment initier une démarche DevOps ?

40
Le passage des méthodes classiques La stratégie de déploiement du DevOps
au DevOps représente une véritable peut se décliner selon les 3 axes suivants :
rupture dans l’organisation du travail.
// Le choix du premier périmètre
Son déploiement est une entreprise
progressive et délicate qui exige des // Le déploiement du socle1
investissements humains et techniques à
ne pas sous-estimer. // Le développement des compétences

Les premiers temps de cette


transformation sont clés pour embarquer
les acteurs, justifier des investissements CHOISIR UN PROJET VITRINE DE LA
f u t u r s e t c ré e r u n e d y n a m i q u e d e T R A N S FO R M AT I O N , A M B I T I E UX E T «   S A F E
transformation durable. La trajectoire TO FAIL »
adoptée peut et doit permettre de réaliser
La priorisation du portefeuille projet
des retours sur investissement dès les
doit permettre d’embarquer les Métiers
premiers temps de la transformation.
dès le démarrage et de pérenniser
Une trajectoire projet par projet permet l a d y n a m i q u e p ro j e t a p rè s p ro j e t .
ainsi d’échelonner l’effort sur le long terme
et dégager rapidement des gains visibles
Pour cela, il est clé de choisir en priorité un
et mesurables.
périmètre qui concentre de fortes attentes
des Métiers et pour lesquels les bénéfices
du DevOps seront réellement significatifs
et simples à mettre en œuvre.

« La trajectoire adoptée peut Dans la démarche DevOps, l’approche


itérative associée à une forte proximité des
et doit permettre de réaliser équipes, du Métier jusqu’à la production,
des retours sur investisse- permet de s’adapter rapidement aux
évolutions en réduisant les freins liés
ment dès les premiers temps
aux opérations. Le DevOps garantit
de la transformation » donc pleinement une réponse adaptée
au besoin même si celui-ci se précise
– voire change – au fur et à mesure du
projet. Ce sont par ailleurs les projets ou
produits dont le besoin évolue souvent qui

1- Est entendu par déploiement du socle : le déploiement d’outils collaboratifs, le déploiement de plateformes de développe-
ment/déploiement (Continuous Delivery), et l’automatisation (Infrastructure as Code, automatisation des tests…).

41
permettront de démontrer que le DevOps Pour autant le périmètre choisi doit
fait mieux, et plus vite, que les méthodes être sécurisé («  Safe to Fail  »). Le
classiques, y compris sur des périmètres risque d’échec n’étant pas négligeable
embarquant fortement les opérations. il est important d’avoir un plan B, ce qui
facilitera d’autant plus l’acceptation du
risque.

TOUS LES PROJETS PEUVENT TROUVER DES BÉNÉFICES AUX MÉTHODES AGILES, LE GRAAL ÉTANT
POUR LES PROJETS DONT LE BESOIN ÉVOLUE RAPIDEMENT
Les projets dont le besoin est instable (le résultat final n’est pas prédictible), sont très
naturellement éligibles aux méthodologies Agiles et DevOps puisque bénéficiant directement
du caractère itératif de ces démarches.

Les projets simples et stables peuvent sans grand risque être traités par les méthodes
classiques. À terme, ils seraient aussi bien couverts par des méthodologies Agiles.

Enfin les projets complexes mais dont le besoin est stable sont éligibles à l’un ou l’autre si
l’on est sûr de la compréhension du besoin. Dans le cas contraire, mieux vaut privilégier des
méthodologies Agiles.
complexe

AGILE OU CYCLE EN V
AGILE
AGILISÉ
COMPLEXITÉ

CYCLE EN V AGILE

INSTABILITÉ DU BESOIN
Instable

42
CO M M E N C E R PA R L E S A P P L I C AT I O N S celles dont le processus de livraison
FACILEMENT AUTOMATISABLES est déjà un frein identifié au regard des
enjeux de time-to-market et de qualité
Le choix des premiers projets doit de service, ainsi que celles qui ont des
é g a l e m e n t p re n d re e n co m p te l e s cycles d’évolution relativement courts.
applications impliquées. Les bénéfices de la refonte de telles
L’effort d’intégration d’une application applications seront d’autant plus évidents
à la chaîne du continuous delivery est que le frein est important. Ils serviront à
rarement négligeable. Du côté des justifier les investissements engagés pour
Devs, il faut opérer la transformation l’automatisation de la livraison applicative.
des processus d’intégration habituels PRIORISER LA CONSTRUCTION DU SOCLE IAC
et parfois le changement d’une partie
& CD SELON VOS POINTS DE DOULEUR
de l’outillage. Du côté des Ops, tous les
scripts d’automatisation des processus Le déploiement du socle va demander
de livraison doivent être revus pour qu’ils des investissements importants sur le
soient gérés par les même outils que long terme, alors que paradoxalement
ceux utilisés par les Devs (versionning, il est peu visible du Métier. Pour autant,
build, testing…). Eviter les ruptures dans c’est sur lui que repose la pérennisation
la chaîne de delivery est au cœur des du succès de la démarche.
principes du DevOps.
Pire encore, s’il est mal ou trop timidement
Pour minimiser les investissements réalisé, on peut à la fois accentuer les
au démarrage, il est donc important points de douleur des Ops et mettre en
de sélectionner les applications pour danger la réussite des projets, jusqu’à
lesquelles l’effort d’intégration à la chaîne entraîner un rejet du DevOps et un retour
de continuous delivery est minimal. aux méthodes classiques.

Typiquement, des progiciels qui imposent Les premiers projets seront ceux qui
une intervention quasi manuelle pour permettront de construire un premier
l’acquisition d’une clé de licence ou socle pour l’Infrastructure as Code et
re q u i è re n t l ’ u s a g e d ’ u n e i n te r fa ce le Continuous Delivery. Le périmètre de
graphique pour leur installation sont à ce socle sera élargi dans la durée, projet
mettre de côté dans les premiers temps après projet.
de la transformation.
Chaque projet DevOps doit être vu
De même, certaines applications se prêtent comme une occasion de dégager du
par nature très mal à l’automatisation des budget pour faire évoluer les briques du
tests. socle – et chaque transformation du socle
comme un moyen de réduire l’effort pour
Parmi les applications éligibles identifiées,
les projets suivants. Pour rester dans ce
il est intéressant de cibler en priorité
cercle vertueux, la priorisation est clé.

43
Une bonne pratique est de se fixer, Enfin, certaines organisations, face à la
pour chaque projet, un objectif complexité de gestion d’un SI très ouvert
d’automatisation qui sera traité et hétérogène (multipliant par exemple
a u s e i n d ’ u n s p r i n t a u m ê m e t i t re les socles IaC) auront besoin de pousser
q u ’ u n e fo n c t i o n n a l i té a p p l i c a t i ve. l’automatisation jusqu’à la mise en place
Dans certains cas, si le projet en question d’une couche d’orchestration de leurs
est suffisamment long et complexe, il différents IaC (internes et externes s’ils
est même possible d’observer un retour s’appuient sur des socles infrastructures
sur investissement avant même qu’il se externes) et d’une plateforme
termine. d’orchestration des chaînes de delivery.

Comme pour l’automatisation Un Meta-Orchestrator (ou BPM) peut


d e s l i v ra i s o n s a p p l i c a t i ve s , i l e s t également être nécessaire pour gérer
particulièrement efficace de profiter des les processus de déploiement sur un
projets pour transformer en priorité les ensemble d’applications en garantissant
briques déjà identifiées comme des points la cohérence Métier. Le déploiement
de douleur par les équipes. d’un Meta-Orchestrator est le plus haut
niveau d’automatisation des livraisons - il
Le déploiement d’outils collaboratifs,
permet d’automatiser la prise en compte
que ce soit pour la gestion de projet
des dépendances de livraisons entre
ou du code applicatif, doit être réalisé
les différentes applications d’un même
en priorité. Ces outils sont clés pour
périmètre Métier.
améliorer les interactions entre les équipes
et les aligner sur des objectifs communs.

LE CLOUD P UBLIC
U N ACCÉLÉRATEUR DE LA TRANS FO RMATIO N D EVO P S

La création d’u n so c le à p a r tir d ’u n ex ista nt p e u t être lo ng ue et co üte us e.


Le C loud P ublic peut d é s lo rs être u n a ccé lé rate u r fo r t à m o ind re co ût p o ur d é mar re r
une expérim e ntatio n DevO p s e n u tilisa nt u n e su ite d é j à i nté g ré e.
Tous les grands C lo u d Pu b lic s ( Mic ro so f t A z u re, A m a zo n We b Se r v i ce s , G o o g l e Ap p
Engine) propos ent leu r p ro p re su ite co m p o sé e d ’Ia C et d ’o u tils p e r mett a nt d e co nst i t ue r
une bas e de Continu o u s De live r y e n la co m p léta nt ave c q u e lque s o ut i l s l i b re s (p o ur l e
te stin g et la q u a lité d u co d e n ota m m e nt ).
Nous recommando n s fo r te m e nt d e d é m a r re r a in si p o u r b é n é fi c i e r p l us ra p i d e me nt
de rés ultats concrets et d ’u n e tra n sfo r m atio n p lu s a m b itie u s e q ui ne p ré j ug e p as d e
l’ex ista nt et d e s p ro ce ssu s in sta llé s.

44
DÉMARRER AVEC 3 « FEATURE TEAMS » DE La feature team IaC et la feature team
C H A M P I O N S P O U R CO N ST R U I R E L E S O C L E CD vont, en parallèle du premier projet,
mettre en place les premiers éléments de
E T L A P R E M I È R E A P P L I C AT I O N E N M O D E
socle nécessaires au lancement de ces
DEVOPS
projets en mode DevOps. Elles seront
Afin d’assurer le succès du premier projet dimensionnées en fonction de la vitesse
et la bonne diffusion des pratiques, trois à laquelle on souhaite faire aboutir ces
équipes doivent être réunies – et leurs premiers éléments, et bien sûr, des moyens
membres choisis parmi les champions de engagés.
leurs domaines. (cf schéma ci-dessous)
A u d é m a r ra g e , i l e s t co n s e i l l é d e
regrouper ces équipes dans un même
lieu, ou a minima de les lier par des outils
collaboratifs efficaces. Dans la même
logique, il est conseillé de leur dispenser
des formations communes afin de créer
des liens dès le démarrage.

U NE FE ATU RE TE A M IAC , en c h a rg e d e co n str u ire


l e so cl e de l’Infrastructure as Co d e (o rc h e stratio n ,
API, tem plates de déploiement) .

INFRASTRUCTURE APPLICATION
AS CODE

U NE F EAT U RE T EAM
U NE FE ATU RE TE A M C D, e n AP P L I C AT I ON (o u é q ui p e P ro d ui t )
ch arge de construire le pipelin e à l a q ue l l e o n a d j o i nd ra un O p s
de Co nti nuous D elivery (s erve u r p o ur s e ns i b i l i s e r l e s D evs a ux
de Co nti nuous Integration, m ise p ro b l é mat i q ue s d e s O p s .
en pl ace des outils de SVN, d e
testing, etc . ) .
CONTINUOUS DELIVERY

45
L’ O R G A N I S A T I O N S E R A C O N T R E V O U S :
PROUVEZ-LEUR QU’ILS ONT TORT ! LES ER R E UR S À É VI TE R
La transformation vers un modèle agile
va nécessairement se confronter à une Le s p re mi è re s t ransfo r mat i o ns
co n sé q u e nte s p e r mette nt d e re s s o r t i r
résistance au changement. Le premier
q u e lq ue s é cue i l s à év i te r :
projet doit absolument communiquer
largement sur ses réussites.
• L E SYST ÈME SE RA CONTRE VOUS : i l est
Il est aussi indispensable de mettre en d on c n éce s s ai re d’e n fai re res s orti r l e
place, dès le premier projet, les indicateurs ROI.
chiffrés permettant de factualiser la • PROUVEZ QUE VOUS AVE Z RAI SON : dans
réussite du DevOps. cette op ti que i l faut donc me s ure r l e s
b én éfices de l a transformati on.
Les outils mis en œuvre dans la démarche
• VOUS A L LE Z ÉCHOUE R : i l est i ndi s pe ns abl e
permettent d’analyser finement la qualité d ’a ccep ter l ’é che c et l ’e rreur dans une
du code, les temps de déploiement, le d ém a rc he i té rati ve «  test & l e arn » .
nombre de livraisons applicatives, le • «  ONE SIZE D OE S NOT FI T ALL  » : chaque
nombre de bugs, etc. Ces éléments sont d ém a rc he D evOps doi t être adapté e au
autant de points de mesure qui permettent contexte et aux enj e ux de l ’e ntre pri s e.
de prouver l’intérêt de la démarche et son • RESPECTE Z LE MONOLI THE : i l e st
retour sur investissement. in d isp ens abl e de s ’i nté grer avec
les systè me s hi stori que s / l egacy et
Il s’agira de bien mettre en valeur ces d e resp ecte r un ce rtai ns nombre de
p rocessus ex i stants . Ne pas che rcher à
gains, en faire la promotion pour justifier
tou t ca sse r.
les investissements réalisés et futurs.

FACTEURS CLÉS DE S UCCÈS

D e la mê m e fa ço n l’o n p e u t re sso r tir q u e lq u e s c lé s d u s uccè s :

• S I M P LI F I E Z : l e s p rocessu s, les infra str u ctu res, etc . Tou t d oit être standard.

• AU TO M AT I SE Z : vo s infra str u ctu res, vos p rocessu s et tou tes les a cti ons ré péti ti ves où à fai bl e
va l e u r a j o u té e.

• R ECRU T E Z D E S I N GÉ NIEURS ET DES DÉVELOPPEURS DE H AUT NIVEAU : pour e n fai re de s Ops


q u a l i f i é s e n c h a rge d e la con cep tion d es n ou vea u x ser vices et b r ique s du SI .

46
VERS UN MODÈLE OPÉRATIONNEL
POUR LA DSI

Une fois que les premiers projets auront démontré l’intérêt de la démarche, il
s’agira alors d’étendre ces bonnes pratiques à l’échelle de l’entreprise.

Les membres des premières équipes doivent servir de coachs, d’ambassadeurs,


pour diffuser les pratiques au sein des équipes produits qui se formeront au
fur et à mesure au sein des DSI.

L e s é q u i p e s aya n t c o n t r i b u é à l a c o n s t r u c t i o n d u s o c l e I a C e t C D d o i ve n t
constituer les premières briques des centres de compétences qui feront évoluer
ce socle en fonction des besoins des équipes produits et qui appuieront les Ops.

47
Afin d’assurer une certaine « pollinisation » (diffusion du savoir entre les équipes), il est
important d’aider à la construction de communautés pour partager les bonnes pratiques
entre Ops, Dev, mais aussi Architectes, etc.

Ces communautés doivent également permettre d’enrichir un cadre de référence commun


sur les méthodologies agiles (projet, management, animations de communautés, etc.).

Enfin cette transformation devra respecter le legacy et les personnes qui continueront
de le maintenir. Il ne faut donc pas seulement prévoir de gérer les aspects techniques
(interopérabilité, évolutivité, maintenance, etc.) mais également les aspects humains
(attractivité des postes, gestion des compétences, etc.) pour éviter de mettre en risque

LE S ÉQ U IP E S P RO D U ITS VO N T SE DÉ V E LO PPE R PO UR CR É E R DE M U LT I P L ES ÉQU I P ES


PA R FO NC TIO N N A L ITÉ AU SE I N DE S DSI :
Au plus proche des Métie rs p o u r s’a d a p te r à le u rs b e so in s
I nté grant des D evs et de s O p s et u tilisa nt l’Ia C et le C D p o u r livre r p l us rap i d e me nt et p l us
fréq uemment de nouvelle s fo n ctio n n a lité s

LA C RÉ ATIO N D ’ U NE CO UCH E D’ I N T ÉG RAT I O N E T DE G E ST I O N DES S ERVI C ES


S’ap puyant s ur des centre s d e co m p éte n ce s Ia C et C D co n stitu é s d e s é q ui p e s ayant
co ntribué s ur les premie rs p ro jets Dev O p s
En charge également de la co h é re n ce d ’e n se m b le ( a rc h ite ctu re, sé cur i té, o ut i l l a g e… )

DE S L IGN E S D E S E RVIC ES D’ I N F RAST RUCT UR E S SI M PLE S , m o d u l ai re s , «   se c ure d by


d esign » , et des opération s a u to m atisé e s

Le développement de C A PACI T É S D’ I N N OVAT I O N E T DE R& D p o u r g ard e r une l o ng ue ur


d’avance et un lien étroit ave c le s Métie rs

Mai s aus s i une CO H A BITAT I O N DURAB LE ave c le s m o d è le s o p é rati o nne l s t rad i t i o nne l s

48
cette partie. Dans un second temps, il sera nécessaire de le faire évoluer également,
soit en le « rafraichîssant » (avec de nouvelles technologies), soit en le transformant
complètement (réécriture morceau par morceau dans une philosophie agile).

MÉTIER

SKILLS NETWORK FEATURE TEAM FEATURE


FETAURE TEAM ÉTUDE «LEGACY» TRANSVERSE

MOA MOE

UX Build/ Build/ Études (SI&Process) RH


Dev Dev (GPEC)
Product Product
owner owner
FRONT-END Pilotage projet & conception de solutions
Ops Ops
Scrum Scrum
Master Master
OPS Archi Archi
Développement et maintenance
VMO
Appli/ Appli/
TMA TMA
ARCHITECTURE Architecture

Intégration et gestion des services Recette


Idéation, croquis ,prototytage

PILOTAGE
S upport ÉCONOMIQUE
Infrastructure Continuous Centre de
Architecture
as Code Delivery commande

LAB MÉTHODE
DE QUALITÉ
INFRASTRUCTURE
Lignes de services

IaaS PaaS Workplace Sécurité Legacy Outils PORTEFEUILLE


LAB

opérations PROJET
ARCHITECTURE

DÉVELOPPEMENT
CATALOGUE DE
OPERATIONS SERVICES

COUCHES HARDWARE Feature Feature Feature Feature Feature


Teams Teams Teams Teams Teams

HÉBERGEMENT ET TÉLÉCOMS CONFORMITÉ

49
ACCOMPAGNER VOS DEVS & OPS DANS LEUR la variabilisation de la matière applicative
CHANGEMENT DE MÉTIER pour la rendre déployable quel que soit
l’environnement visé, sans surcoût de
La nouvelle organisation de travail a gestion. Ils vont désormais s’intégrer
nécessairement un impact sur les métiers dans une chaîne complète de continuous
des exploitants et des développeurs. Il ne d e l i ve r y , i n té g re r ( à l a d i f fé re n ce
s’agit pas de transformer les Ops en Devs, des habitudes prises jusqu’ici) les
ou l’inverse, mais bien de faire évoluer les processus de build, la mesure de la dette
deux métiers vers de nouvelles pratiques. technique (qualité du code), ainsi que
Ainsi l’Ops va évoluer vers la préparation les tests unitaires et de user acceptance
d’éléments d’infrastructure réutilisables automatisés.
et automatisés. Tout en continuant, le Cela induit pour eux de :
temps de la montée en compétence
des Devs d’assurer le développement // mieux comprendre la production
des scripts de déploiement de chaque et les modèles de déploiement
application et ce en utilisant les mêmes applicatifs afin de « variabiliser
outils que les Devs. l’application » pour permettre son
déploiement différencié en fonction
Les compétences de développement et la de l’environnement visé ;
connaissance des outils de configuration
management deviennent ainsi // s’inscrire dans une démarche dite
particulièrement importantes. Les Ops de « test driven development » pour
ont déjà une culture de scripting. L’enjeu assurer un haut niveau de qualité et
pour eux sera de passer des pratiques « à de contrôle de non-régression.
l’ancienne » - scripts peu réutilisables, peu
commentés et difficilement maintenables
- à des pratiques et outils uniformes sur
toute la chaîne de valeur IT.

En contrepartie, le renforcement de
l’automatisation et de la qualité des
déploiements va entraîner une diminution
du nombre d’incidents et de demandes de
changement gérés par les Ops jusqu’ici.

De leur côté, les Devs ne peuvent


plus se contenter de produire le code
d e l ’a p p l i c a t i o n . I l s vo n t i n té g re r
les contraintes de déploiement des
environnements, concevoir les modèles
de déploiement applicatif et permettre

50
CONCLUSION

S’il est aujourd’hui impératif pour les Il faut donc démarrer dès maintenant,
entreprises d’être plus Agile, de déployer adopter ces pratiques progressivement,
plus vite, les pratiques DevOps à mettre en test & learn, en s’inspirant des pratiques
en œuvre n’en ont pas moins des impacts des pure-players du web. Cela requiert un
profonds sur les DSI : changement d’état d’esprit : il faut être
orienté résultat, penser produit et non plus
// Transformation de la façon de
projet, faire des pas plus petits mais en
concevoir une application en la ren-
plus grand nombre. C’est un changement
dant plus modulaire et en intégrant
profond qui ne se fera pas en quelques
les infrastructures et les opérations
mois, mais qui donnera des résultats très
dans son code ;
rapidement.
// Automatisation et «  softwarisa- Et il faut le faire d’autant plus vite que
tion » des infrastructures, ainsi que la cible est loin : le NoOps. Ce concept
la mise à disposition des services selon lequel ce sont les développeurs
d’infrastructures via des interfaces eux-mêmes qui assurent l’exploitation
programmables directement dans le de l’application quand les opérations se
code ; concentrent sur l’automatisation (et la
supervision de bout-en-bout). Cela peut
// Évolution des métiers d’Ops vers
paraître une utopie mais c’est déjà une
le développement et vice-versa (et
réalité pour des géants comme Amazon
donc nécessité de recruter différem-
qui en tire de vrais bénéfices en recentrant
ment, de former, d’accompagner au
les personnes sur la valeur ajoutée qu’elles
changement).
peuvent apporter.
// Modification des façons de travail-
ler avec les métiers, via des « feature
teams » intégrant toutes les parties
prenantes et modifiant également
l’organisation et le modèle opéra-
tionnel de la DSI.

51
www.wavestone.com

Vous aimerez peut-être aussi