devops
devops
DEVOPS
NAJAH IDRISSI MOULAY RACHID
« DevOpS est une approche qui met l'accent sur un développement rapide, à petite
échelle et itératif et sur un déploiement des applications qui permet de mieux répondre
aux besoins du client. Il est caractérisé par un revirement culturel dans lequel les
Une Culture ,
C’est dans les grands principes du Lean Management, et plus précisément dans
l’amélioration continue des processus, qu’apparaît le DevOpS.
La démarche est focalisée sur l’idée que le temps de mise sur le d’une nouvelle offre pour
une entreprise doit être réduit de manière drastique (Time To Market).
L’automatisation de bout en bout est essentielle pour créer des processus itératifs, fréquents,
réutilisables et fiables. Produire, Tester, Intégrer et Livrer plus rapidement des applications ou services
permet au métier de s’adapter plus vite et d’être plus performant. Le déploiement continu est une cible.
Les processus sont essentiels et permettent d’encadrer et sécuriser les environnements exploités.
Les Processus sont partagés, adoptés et compris par toutes les équipes.
On ne laisse pas les environnements Préprod , Prod en libre accès !
La Philosophie « DEVOPS »
ITIL (IT Infrastructure Library) est une référence mondial des bonnes pratiques dédiées à l'industrie IT et
principalement utilisé pour la gestion de la production. C’est également un référentiel et un langage
commun pour les différentes équipes.
De premier abord, Planification, documentation, processus et vérifications demandées par ITIL semblent
être du côté opposé des DevOpS et Agile.
Les outils mis en place pour gérer les processus peuvent être lourds. Des tâches simples et courantes
comme redémarrer un service, modifier une planification, passer un correctif peuvent être complexes et
nécessiter des procédures formalisées et de multiples étapes de validation.
Il est possible d’automatiser et simplifier un certains nombre de tâches et de permettre une synergie
efficace de ces méthodes.
L’alignement des pratiques et l’agilification des processus
est l’essence de DevOpS.
La Philosophie « DEVOPS »
Culture de Collaboration Infrastructure As Code
Objectifs communs entre les équipes Gestion de l’infrastructure par du Code
Des Processus partagés et adoptés Même Cycle de livraison que l’applicatif
Des équipes fonctionnelles décloisonnées. Provisioning automatique ou à la demande.
Déploiement continu
Mise en place d’une chaine automatisée.
de l’intégration à la production.
Réduction des erreurs humaines
La Philosophie « DEVOPS »
Le nombre de
déploiement par jour
n’est pas une fin en
soi, l’objectif est de
.. Et vous .. ? pouvoir livrer quand
on veut livrer !
Les Processus du DEVOPS
Vision Synthétique
DEV OPS
Les Processus du DEVOPS
Vision intégrée
Accélérer le Time To Market 6
Feedback Continu
Equilibrer vitesse, coût, qualité Update du statut / préconisations
Amélioration Continue
et risque. Retour à chaque étape
Etablir une cible à atteindre
Réduire le temps de retour Client Mise en œuvre de Plan d’amélioration
Post implémentation review …
Développements Agile 5
1 Cycles itératifs (Sprint)
Surveillance continue
Backlog produit
Monitoring & Supervisions
Détection des anomalies
Intégration Continue
2 Construction package
Tests (unitaires, code…)
Méthodes utilisées par les DEV qui repose sur des cycles itératifs et adaptatifs (besoins évolutifs).
Permettent de pallier au traditionnel cycle en V ou tout doit être défini dès le début (besoins, planning …).
Préférence pour des équipes organisées par fonction (Features Teams).
Cycles de développement rapides qui apportent de nouvelles fonctions à la fin du cycle.
Valeurs Agiles (Manifeste):
L'équipe et la communication avant les outils et processus.
L'application avant la documentation.
La collaboration avant la négociation contractuelle.
L'acceptation du changement et la flexibilité avant la planification.
Objectifs
Satisfaire le Client en livrant rapidement et régulièrement des fonctionnalités à VA
Livrer fréquemment un logiciel opérationnel avec des cycles courts ( < 1 mois )
Utilisateur et développeur travaillent ensemble
Backlog Produit: Liste des éléments fonctionnels à implémenter classée par priorité
Sprint Backlog : Liste des éléments à embarquer dans un sprint (Pas de Changement pendant les Sprints)
Standup Meeting : Revue quotidienne sur l’avancement du Sprint avec les équipes
Burndown Chart : Suivi graphique de l’effort restant a faire pour finaliser le sprint.
Les Processus du DEVOPS
L’intégration Continu
La Livraison Continu
Le déploiement Continu S
U
R
T V
Focus sur les tests E E
I
Les tests continus impliquent de S
L
tester au plus tôt et en continu tout T L
au long du cycle de vie, ce qui permet S A
de réduire les coûts, de raccourcir les N
C
phases de test et de disposer de C E
retours en continu sur la qualité. Ce O
processus, appelé également shift-left N C
T O
testing vise à intégrer les activités de N
développement et de test pour que la I
T
N
qualité soit incorporée aussi tôt que I
U N
possible dans le cycle de vie et non S U
pas repoussée à une phase ultérieure E
Les Processus du DEVOPS
2 - L’intégration Continue
Tester aussi souvent que possible les non-rég pour détecter les bugs le plus tôt possible.
Développement et intégration sont réalisées en parallèle pour éliminer les bugs au fur et à mesure.
P.18
Les Processus du DEVOPS
P.19
Les Processus du DEVOPS
P.20
Les Processus du DEVOPS
P.21
Les Processus du DEVOPS
P.22
Les Processus du DEVOPS
P.23
Les Processus du DEVOPS
3 - La livraison Continue
Le but est de tester et livrer une application aux étapes suivantes du cycle de vie (recette, perfs, pré-
production).
Le passage d’un état à l’autre est entièrement automatisé : le livrable doit être constitué de tel sorte qu’il
soit déployable en production dès la mise en recette.
P.24
Les Processus du DEVOPS
P.25
Les Processus du DEVOPS
4 - Le déploiement Continu
Il est prérequis que les précédents processus aient été réalisé avec succès.
P.26
Les Processus du DEVOPS
P.27
Les Processus du DEVOPS
4 - Le déploiement Continu
Application « Smiley v1.1»
Déploiement Et Rollback
Ou RollForward (si fast fix)
P.28
Les Processus du DEVOPS
Bug Tracking
Tests automatisés
Surveillance Continue
Les Processus du DEVOPS
Serveurs
5 – Surveillance continue: Measure Everything ! (interne)
…
« If it’s not Monitored, It’s
NOT in production »
Traffic Réseau
(interne et externe)
Les Processus du DEVOPS
« Si vous rendez vos clients
5 – Focus - Analyses Prédictives mécontents dans le monde réel, ils
sont susceptibles d’en parler à 6
Anticiper les problèmes et les situations anormales ! amis. Sur Internet, vos clients
mécontents peuvent en parler chacun
à 6000 amis » Jeff Bezos,
Détection des écarts basée sur des seuils configurés
PDG d’Amazon
Détection des anomalies basée sur des tendances et les données passées.
Les Processus du DEVOPS
Et du côté de L’infa ?
Les Processus du DEVOPS
Industrialisation de l’Infrastructure
Infrastructure As Code
Procédure d’installation
Machines
Provisioning
Les Processus du DEVOPS
Industrialiser et Standardiser
Industrialiser et Standardiser :
Changements organisationnels
Modification de la Structure Organisationnelle
Les Etudes et les Opérations se sont éloignées, leurs cultures ont divergées…
Eloignement physique
Les équipes ont été cloisonnées physiquement.
Les équipes sont placées dans des directions différentes.
Aucun plateau commun.
Eloignement culturel
Les développeurs répondent à un besoin métier.
Réactivité et déploiement fréquents sont nécessaire pour les DEVs.
L’exploitation elle, doit s’assurer du maintien en condition opérationnelle du SI
Eloignement Méthodologique
Les développeurs travaillent en mode Agile.
La production travaille avec les bonnes pratiques ITIL.
Les deux méthodologies ont des objectifs partagés mais rencontrent des divergences en pratique.
Modification de la Structure Organisationnelle
Les Etudes et les Opérations se sont éloignées, leurs cultures ont divergées…
Unités
Autonome
De
Production
F. Sevestre
La collaboration entre les Devs et les Ops représente un pilier de la transformation DevOps
Organisation traditionnelle
en silo de compétence
Qu’est-ce que je
veux faire ? • Définir des objectifs mesurables et atteignables
• Inclure des personnes clés (Dev et Ops) dans la reflexion
Où suis-je
• Ce que l’on ne fait pas mais que l’on devrait faire
actuellement ? • Ce qui est compliqué à faire ou source de perte d’énergie
Qu’est-ce que je
veux faire ? • Définir des objectifs mesurables et atteignables
• Inclure des personnes clés (Dev et Ops) dans la réflexion
Define release with Improve continuously with Manage environments Automate problem isolation
business objectives development intelligence through automation and issue resolution
Measure to customer value Test Continuously Provide self-service build, Optimize to customer KPIs
provision and deploy continuously
P Plan and source Manage data and virtualize Standardize and automate Optimize applications
strategically services for test cross-enterprise
r Dashboard portfolio Deliver and integrate Automate patterns-based Use enterprise issue
resolution procedures
o measures continuously provision and deploy
g
r Link objectives to releases Link lifecycle information Plan departmental releases Monitor using business and
Centralize Requirements Deliver and build with test and automate status end user context
è Management Centralize management and Automated deployment with Centralize event notification
standard topologies and incident resolution
s Measure to project metrics automate test
PROGRES
Les Axes D’améliorations et de Transformation
Définir plusieurs type de « Quality Gates » pour la gestion du cycle de vie d’une application.
Les Quality Gates représentent toutes les étapes de validation d’une application avant sa mise en
production.
Le passage par tel ou tel Quality Gate est déterminé en fonction de la nature de la release (mineur,
majeur, nouvelles fonctionnalités) ou en fonction d’évènements (correction anomalie …)
Les règles seront établies dans un comité regroupant les études et l’exploitation.
Chaque Quality Gates contient des contrôles spécifiques (livrables, PV , prérequis, ensemble de tests …)
Le contenu des Quality Gates est défini en amont du cycle et avant le déploiement d’une release et
intégré dans un outillage opérationnel.
Les Axes D’améliorations et de Transformation
Objectif : garantir que les déploiements peuvent se faire sans impact sur le service et sa
disponibilité.
C’est là qu’intervient le Zero Downtime Deployment (ZDD), qui permet de déployer une
nouvelle version d’un système sans interrompre le bon fonctionnement du service.
La mise en oeuvre du Zero Downtime Deployment se base sur un certain nombre de patterns et
de bonnes pratiques (devant être prises en compte dès la conception logicielle)
Les Axes D’améliorations et de Transformation
Canary Release
Utilisé par Facebook pour déployer en 1er aux collaborateurs puis à tous les utilisateurs si ok
Les Axes D’améliorations et de Transformation
Canary Release
Le « testing en production » est probablement l’une des approches les plus novatrices : déployer une
nouvelle fonctionnalité dans l’application en production tout en maitrisant l’impact. Cette maitrise peut
correspondre par exemple à un déploiement sur un pourcentage d’utilisateur ayant un profil identifié ou
une localisation géographique donnée par exemple.
Features Flags
Difficultés: Maintenance du code, gestion des tests, Activation et support des fonctionnalités.
Nécessite beaucoup de rigueur et un pilotage fin de l’activité.
Les Axes D’améliorations et de Transformation
Features Flags (Modification du code applicatif)
Des use Cases plus complexes peuvent être mis en œuvre (cibler des utilisateurs selon une
multitude de critères …)
Les Axes D’améliorations et de Transformation
évènements importants.
Les Axes D’améliorations et de Transformation
Opérations
•
automatisation
• Automatisation des remontées de compte rendu d’exécution pour les programmes en erreur
• Analyses Prédictives
Les Axes D’améliorations et de Transformation
Etudes
• Prise en compte des aspects de déploiements progressif dans le développement (ex Features
automatisation
Flags )
• Gestion de version des logiciels et d’intégration qui alimentent l’outil d’installation et de
déploiement en production
• Augmentation de la robustesse des logiciels qui ne doivent pas défaillir lors de la réception
de flux de données incorrects (foolproof)
• Messages d’alertes pertinents (logs, monitoring, …) et suppression des bruits (alertes
inutiles)
Reporting et
•
Capacité
P
r
o
g
r
è
s
Les Axes D’améliorations et de Transformation
Bénéfices
Risques