Académique Documents
Professionnel Documents
Culture Documents
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 ».
LAURENT BELLEFIN
Directeur Associé
3
AUTEURS
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
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.
6
7
AMÉLIORER LE TIME-TO-VALUE
EN RAPPROCHANT LES OPS ET LES DEVS
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 :
9
Le mur de la confusion
APPLICATION
DÉPLOYÉE
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.
11
EXEMPLE DE KPIs
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 :
13
4 PILIERS POUR CONSTRUIRE LE DEVOPS
EN RAPPROCHANT LES OPS ET LES DEVS
// 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
CULTURE DE LA COLLABORATION
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
5
6 L’infrastructure orchestre dès
API 4 lors la création effective de
4 TEST
l’environnement.
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.
HS HS
X X
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.
20
TESTS UNITAIRES : L’APPROCHE TEST-DRIVEN DEVELOPMENT
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
21
EXEMPLE DES MÉTHODES DE DÉPLOIEMENT
Version 3
UTILISATEURS
INTERNES
Version 2
petit groupe
d’utilisateurs
CANARY
RELEASE Version 1
CLIENTS
22
Version 1A
67%
50% de conversion
Version 1B
A/B TESTING CLIENTS
50%
11%
de conversion
ON
OFF
FEATURE
FLIPPING OFF
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 .
24
PILIER II
LE CONTINUOUS DELIVERY POUR DES
LIVRAISONS AUTO-MAGIQUES
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.
26
CODE BUILD TEST DEPLOY
Continuous Integration
Continuous Deployment
Un commit déclenche Un build réussi lance Si les tests passent,
le build les tests le build est validé
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
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
COLLABORATION
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
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
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 :
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
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.
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
// 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
38
ORGANISATION ORGANISATION
TRADITIONNELLE AGILE
CHANGEMENT ET LIVRAISON
Process de gestion de projet CONTINUS
LOURDS
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
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.
LE CLOUD P UBLIC
U N ACCÉLÉRATEUR DE LA TRANS FO RMATIO N D EVO P 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.
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.
• 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.
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.
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.
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
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
MOA MOE
PILOTAGE
S upport ÉCONOMIQUE
Infrastructure Continuous Centre de
Architecture
as Code Delivery commande
LAB MÉTHODE
DE QUALITÉ
INFRASTRUCTURE
Lignes de services
opérations PROJET
ARCHITECTURE
DÉVELOPPEMENT
CATALOGUE DE
OPERATIONS SERVICES
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.
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