En charge de la Transformation Agile de mon entreprise, et du Centre d’Excellence associé, il m’a semblé évident de poursuivre les travaux entamés en y associant une initiative DevOps.
En quête d’informations sur le DevOps et sur la manière de le mettre en œuvre au sein d’une organisation, je partage mes recherches et mon analyse en regard des difficultés que je constate entre mes équipes de développeurs et celles en charge des opérations.
Aujourd’hui, l’Agilité sans DevOps n’a plus de sens et une collaboration efficace doit exister entre les Dev et les Ops pour fluidifier la démarche Agile.
Sébastien Bourguignon
#PortraitDeStartuper #95 - JoinRider - Joachim Vincent
Après l’#agilité, le #DevOps, la nouvelle arme de la DSI
1. Après l’agilité, le DevOps,
la nouvelle arme de la DSI
Sébastien Bourguignon
@sebbourguignon
http://sebastienbourguignon.wordpress.com
http://monmasteradauphine.wordpress.com
✉ bourguignonsebastien@free.fr
☎ +336 88 06 21 71
2. Pourquoi cette démarche ?
• En charge de la Transformation Agile de mon
entreprise, et du Centre d’Excellence associé, il m’a
semblé évident de poursuivre les travaux entamés
en y associant une initiative DevOps.
• En quête d’informations sur le DevOps et sur la
manière de le mettre en oeuvre au sein d’une
organisation, je partage mes recherches et mon
analyse en regard des difficultés que je constate
entre mes équipes de développeurs et celles en
charge des opérations.
• Aujourd’hui, l’Agilité sans DevOps n’a plus de sens
et une collaboration efficace doit exister entre les
Dev et les Ops pour fluidifier la démarche Agile.
4. Quelques définitions
• Définition Wikipédia
• « Devops est un mouvement visant à réduire la
friction organisationnelle entre les "devs" (chargés
de faire évoluer le système d'information) et les
"ops" (chargés d'exploiter les applications
existantes). Ce que l'on pourrait résumer en
travailler ensemble pour produire de la valeur pour
l'entreprise. Dans la majorité des entreprises, la
valeur sera économique mais pour d'autres elle
sera sociale ou morale. »
• Définition DevOps.fr
• « "devops" est un terme issu de la contraction des
mots anglais "development" (développement) et
"operations" (exploitation). »
5. Quels problèmes régler ?
• Dans un monde qui bouge de plus en plus vite et avec des enjeux business de
plus en plus rapides à traiter, l’agilité s’impose comme un modèle que les
entreprises souhaitent développer.
• La démarche Agile permet de répondre à des enjeux de time-to-market de plus
en plus prégnants, une demande de collaboration forte entre les équipes
métier, MOA et MOE. L’idée est de mettre très rapidement dans la boucle le
client final, de le faire se confronter aux équipes qui sont dans la « mine ».
• Les équipes de développement sont moteurs pour être plus agiles, répondre au
plus juste aux demandes des clients, et prendre en compte les changements de
périmètres, même si cela nécessite des relivraisons régulières des
développement, mais cela fragilise forcément la production.
• Le problème est que les équipes en charge de l’exploitation n’ont pas les
mêmes attentes que le métier. Ils veulent de la rigueur, de la stabilité, limiter le
risque et limiter les livraisons qui pourraient impacter la production. Ils sont
gardien du temple et de fait leurs objectifs sont donc incompatibles.
6. Le mur de la confusion entre agilité & stabilité
• Dans un contexte projet agile, les équipes
d’exploitation sont mises sous pression plus
régulièrement que dans un contexte « waterfall ».
• Pour réconcilier les objectifs des Dev et des Ops, il
devient critique pour tous les acteurs de travailler
ensemble pour intégrer les contraintes de tous
(stabilité et agilité).
• Au-delà de l’investissement que cela peut
représenter, mais qui est incontournable, il devient
critique que les équipes partagent leurs souffrances
les unes vis-à-vis des autres.
• Nécessairement, la mise en oeuvre d’un démarche
de travail collaborative et PDCA sera un facteur clé
de succès du DevOps.
• Les axes sont multiples, mais concernent
principalement le fait de pousser au maximum la
logique d’industrialisation et d’automatisation.
8. DevOps un effet de mode ?
• Cette enquête de Rackspace menée
publiée en Octobre 2014 montre que la
dynamique DevOps n’est pas un effet de
mode.
• Sur 700 Managers IT et Leaders métier
consultés 66% ont implémenté du DevOps
et 79% de ceux qui ne l’ont pas fait vont le
faire avant la fin 2015.
9. DevOps, quels objectifs pour le métier ?
• Le DevOps n’est pas juste un enjeu pour la DSI ou
une démarche pour les geeks.
• Les objectifs pour les métiers sont principalement
les suivantes :
• À 63% d’améliorer l’efficacité du métier
• À 66% d’augmenter la satisfaction client
• À 63% d’augmenter le taux de disponibilité des
applications
• À 59% d’augmenter le taux de conversion des clients
• À 55% d’améliorer l’agilité du métier
• À 49% d’augmenter la valeur pour le métier en
introduisant de nouvelles capacités
• À 47% de réduire les coût de l’IT
• À 39% d’augmenter la productivité des salariés
• À 23% d’augmenter la satisfaction des employés
10. Quelles attentes pour la DSI ?
• Les bénéfices constatés des initiatives
DevOps auprès des sondés au niveau de
l’IT :
• 44% time-to-market plus rapide pour les
nouvelles versions d’application
• 45% plus d’innovation
• 44% amélioration de la stabilité des
applications
• 44% capacité à répondre plus rapidement
aux exigences du métier
• 34% réduction du coût de l’IT
• 17% la reconnaissance du métier quant à la
valeur ajoutée de l’IT
11. Quels sont les bénéfices constatés du DevOps ?
• Les bénéfices constatés des initiatives
DevOps auprès des sondés au niveau du
métier :
• 57% augmentation de la conversion des clients
et de la satisfaction
• 57% réduction des dépenses d’Infrastructure
• 49% réduction de l’indisponibilité des
applications et du taux de panne
• 46% augmentation de l’engagement du client
• 32% augmentation de l’engagement des
employés
• 2% il est trop tôt pour le dire
• 3% aucun changement mesurable constaté
des bénéfices du DevOps
13. De l’intégration continue au déploiement continu
• Depuis plusieurs années, les équipes de
développement ont mis en place, dans leur
processus de travail, des outils d’intégration
continue (Jenkins, CruiseControl, TFS…)
• L’enjeux étant de réaliser régulièrement, une
batterie de tests automatisés sur le code
« committé » dans le gestionnaire de code
source pour avoir un feedback rapide de la
qualité délivrée et mettre à disposition
l’application le plus tôt possible aux métiers.
• L’objectif du déploiement continue est de
pouvoir mettre en production tout aussi
régulièrement et de manière sécurisée, les
packages fraîchement validés par les métiers
et sans opération manuelle.
14. Plus de changements pour moins de risques
• L’enjeu du déploiement continu est de pouvoir
délivrer souvent (plusieurs fois par semaines, voir
par jour) des petites évolutions et des petites
corrections sur une application en production.
• L’intérêt est d’éviter les grands rendez-vous dans
les agenda de la DSI avec des mises en
production de versions / releases majeures une
fois tous les X mois.
• Les équipe rôdées aux changements réguliers
sont plus aguerris et sont moins stressés lors
d’une mise ne production que des équipes qui ne
le font que de temps en temps avec de gros
enjeux à la clé.
• L’adage du DevOps est le suivant : « mieux vaut
de petits changements souvent que de grands
changements de temps en temps ».
15. L’accélération de la fourniture d’environnements
• Un autre facteur clé de succès pour un
DevOps efficace concerne la fourniture rapide
d’environnements intégrés qu’ils soient de
développement, de recette ou de production.
• L’enjeu est de taille, il ne sert à rien de
pouvoir délivrer rapidement des applications
s’il faut encore attendre 4 à 6 semaines pour
disposer d’un environnement de recette.
• De même, un projet agile courant sur 6 à 8
semaines ne peut pas attendre le même délai
pour obtenir un environnement de production.
• Qu’il s’agisse d’environnement en SAAS,
PAAS, IAAS… Les fournisseurs doivent être
challengés pour fournir des solutions
innovantes de provisionning de ces
environnements.
16. Importance de la gestion des configurations
• Pas la peine de développer et déployer
rapidement si par ailleurs, chaque
changement de configuration d’une
application risque de générer une régression
liée à un geste technique réalisé
manuellement.
• Il n’est plus recevable dans une logique
DevOps de ne pas procéder à une gestion
automatisée et fiable des configurations
logicielles.
• Les équipe des Dev et des Ops doivent
travailler main dans la main pour identifier,
en fonction de la technologie, la bonne
manière de gérer efficacement la
configuration des applications.
17. Augmenter l’industrialisation et l’automatisation
• Les maîtres mots d’une démarche DevOps sont
automatisation et industrialisation.
• Au-delà de l’automatisation de la gestion des
configurations, les développeurs et les
exploitants doivent collaborer ensemble pour
mettre en oeuvre des solutions
d’industrialisation des applications. Cela
concerne par exemple :
• Le déclenchement des batchs en automatique
sur les plateformes de recette
• Le bouchonnage de certaines applications pour
réduire des délais de traitement
• Le travail en commun sur la gestion des sources
et le packaging des applications
• La fourniture d’applications faites par les Dev
pour les Ops pour automatiser certaines
interventions manuelles
19. Recommandations pour une initiative DevOps
• Adoptez une définition simplifiée du DevOps qui
donne une compréhension commune, et fait se
retrouver développeurs et exploitants vers un but
commun pour accélérer les livraisons
d’applications dans un contexte agile.
• Établissez les résultats business attendus, et
ensuite mettez en place des métriques IT qui
permettront de les mesurer.
• Fixez des attentes sur les objectifs initiaux qui
permettent de se « planter » rapidement, c’est une
bonne chose, il s’agit d’une démarche empirique.
• Suivez le plan en 7 étapes du Gartner pour
commencer une initiative DevOps.
20. Les 7 étapes du DevOps
1. Définissez le DevOps pour votre organisation
2. Choisissez une première application, plutôt
orientée web
3. Formez la bonne équipe avec des personnes
volontaires
4. Sélectionnez une méthode (ou deux ou trois), ITIL
s’y prête bien
5. Changez vos métriques pour mesurer la vélocité
et la qualité
6. Automatisez le plus possible
7. Considérez la mise en place d’une chaîne de
compilation
21. Attention à l’éligibilité des applications
• Il s’agit d’identifier le moyen de catégoriser les
applications pour évaluer leur éligibilité au
DevOps :
• Systems of Innovation = applications web,
application développées en mode agile
• Systems of Differenciation = applications métiers
spécifiques, composants pris sur étagère (COTS)
avec de la customisation ou du sur mesure
• Systems of Record = les applications de type ERP
• L’idée est de commencer une initiative
DevOps sur de nouvelles applications
conçues pour changer et ayant une forte
tolérance aux risques.
23. Les 7 secrets du DevOps
• Chris Rowett de CA Technologies, expliquait début
2014, ce qu’il croit être les 7 secrets du DevOps :
1. La plupart des compagnies font déjà du DevOps
2. Les problèmes des clients sont la motivation
première du DevOps
3. Les entreprises n’adoptent pas DevOps pour
faire des économies en première intention
4. Les plus gros obstacles au DevOps sont les gens
et les process
5. Quand il s’agit de mettre en place du DevOps,
les compétences métiers l’emporte sur les
compétences techniques
6. L’automatisation est la composante la plus
importante
7. Les bénéfices du DevOps sont réelles et
quantifiables
http://ow.ly/ENkkR