3. « Devs » contre « Ops »
La frontière classique des organisations qui
sépare les équipes de développement (« Devs »)
et les équipes d’exploitation («Ops »).
• Conflits et objectifs contradictoires entre les
équipes
• « Je ne comprends pas, moi ça marche en
dev, il faut voir les Ops.. » VS « Tous les
services sont Up, pas de charge, ça vient du
Dev… »
• Livraisons avec beaucoup d'erreurs, voire
d’échecs
• Administration manuelle, lente et source
d’erreurs
4. Le mur de la confusion
Adapter le SI aux demandes
du marché en introduisant des
évolutions dans le code
= Maximiser le changement
Maintenir la disponibilité en
contrôlant les évolutions pour
réduire les risques de pannes
= Minimiser le changement
Équipe de développement
d’application
Équipe système et
infrastructure
Application
déployée
« Composants,
couches logicielles,
services,… »
« Clusters, fermes,
pare-feu, réseau,
stockage,,… »
Fonctionnalités
Culture
Produit
Innovation
Stabilité
Culture
du Service
Rationalisation
5. Pourquoi DevOps ?
“DevOps is
development
and operations
collaboration”
“DevOps is
treating your
infrastructure
as code”
“DevOps
is using
automation”
“DevOps
is feature
toggles”
“DevOps
is Kanban
for Ops?”
“DevOps
is small
deployments”
L’objectif du mouvement DevOps est de
fluidifier les processus et de créer une
synergie en favorisant la collaboration entre
les équipes de développement (« Devs ») et les
équipes d’exploitation (« Ops »).
En supprimant les frictions et les blocages, on
améliore la productivité et l’efficacité du
système d’information de l’entreprise.
Cela apporte des logiciels de très haute qualité
et desmeilleurs services aux clients.
6. Facteurs clés de succès
• Forte réactivité sur la correction d’anomalies et
la gestion des incidents
• Les livraisons sont les plus petites, simples et
fréquentes possible
• Les besoins et contraintes opérationnelles sont
prises en compte dès les premières phases des
projets
• Confiance mutuelle et coopération entre
équipes, voire réorganisation et mutualisation
des équipes
7. La culture DevOps
• Valeurs fondamentales :
▪ Respect mutuel, confiance réciproque, et
systématisation du partage de l’information
• Vision positive de l’échec :
▪ Les organisations doivent apprendre de
leurs échecs et prendre des risques pour
anticiper de nouveaux besoins opérationnels
• Développement des compétences des
acteurs du système(« Kaizen »).
• Démarche d’introduction volontaire de
défauts dans le système :
▪ Capacité du système à se remettre en
service après un dysfonctionnement.
▪ « Failsafe: Guidance for Resilient Cloud
Architectures
▪ http://msdn.microsoft.com/en-us/
library/windowsazure/jj853352.aspx
10. Le processus de « Continuous Delivery »
Elimination des déperditions | Réduction de la durée du cycle | Intégration et visibilité
Apprendre
Apprentissage actionnable
Rétroaction en continue | Qualité en continu | Livraison en continu
11. Continuous Delivery & DevOps
Plan Develop Release Operate
The Wall of
Confusion
Business Development Operations
Méthodes Agiles DevOps
12. Continuous Delivery & DevOps
Optimisation
des
ressources
Amélioration
de la qualité
et de la
disponibilité
Hypothesis-driven
development
& continuous
learning
13. Les outils DevOps
Cycle de développement logiciel
Release Management Monitoring
Déploiement
Provisionning
d’infrastructure
Configuration
d’application
Configuration
du système
Télémétrie
Supervision
technique
Storyboarding
Source Control
Management
Software
Design
Agile Portfolio
Management
Build Tests
Reporting et
BI
Analyse de
code
Intégration
continue
16. Stratégie de branches et gestion des releases
DEV
MAIN
Développement
de nouvelles
Branch
features
Branch
Correctifs liés à la production
RELEASE
Report correctifs
Integration
Continue DEV
NightIy
Builds
INTEG
QA
PROD
Manual
Builds
19. Optimisation de l’utilisation des ressources
• Une gestion unifiée des ressources qu’elles soient à
demeure ou dans le Cloud
• Automatisation des environnements
• Support des technologies tiers-parties
20. Provisioning dans Azure
• Windows Azure Platform PowerShell
cmdlets
▪ http://www.windowsazure.com/en-us/
documentation/articles/install-configure-
powershell
▪ https://github.com/Azure/azure-sdk-
tools
• REST API & Management Library
• Windows Azure command-line tool
for Mac and Linux
▪ http://www.windowsazure.com/en-us/
documentation/articles/comman
prompt> azure topic verb options
account
account location
account affinity-group
vm
vm disk
vm endpoint
vm image
service
service cert
site
config
download
import
list
show
delete
start
restart
shutdown
capture
create
attach
detach
browse
set
username
password
dns-prefix
vm-name
lb-port
target-image-name
source-path
disk-image-name
size-in-gb
thumbprint
value
-v
-vv
d-line-tools/
21. DSC (« Desired State Configuration »)
Technology
Specific
Traditional Scripts
Configuration
DSC Engine
Intent
Dependency Resolution
Logging & Error Handling
Reboot Resiliency
Repeatable Automation
Resources
Technology Specific
22. Groupe de ressources
• Entité de gestion dans
laquelle sont intégrés des
regroupements de multiples
ressources de même type
ou non.
• L’appartenances à un
groupe de ressources est
exclusive
• Les ressources peuvent
être multi-régions
RESOURCE GROUP
25. Amélioration de la qualité et de la disponibilité
• Supervision de la performance, de la disponibilité, des
exception et des usages
• Autoscaling
• Debugging en production
• Load testing
26. Les outils de mesure Windows Azure
Windows Azure
Diagnostics
Cloud Service
monitoring
27. Les outils Visual Studio Online
Application
AVAILABILITY
USAGE
PERFORMANCE
Tests de charge
30. Apprendre de la production avec les
remontées de l’application
• Data Driven
Development
• Prendre facilement
des décisions
d'investissement
basées sur des
données objectives
Apprendre
Apprentissage actionnable
33. DevOps et Microsoft
Test
Develop Build
Production
Pre-Production
Integration
Deploy Environments Monitor and Learn
Processes
Dev/Test
DE
V
BI
Z
OP
S