Le Devops est un terme émergent qui décrit un ensemble de méthode et pratiques pour favoriser la collaboration et la communication entre les équipes de développement logiciel et les équipes d’exploitation. Il est une réponse au besoin des acteurs du Web qui, face à une course effreinée à la fonctionnalité et l’explosion de leur trafic, ont du modifier leurs méthodes et rassembler l’ensemble des protagonistes pour minimiser l’impact de l’applicatif sur l’infrastructure et maitriser les coûts ou améliorer la performance. Nous verons dans cette conférence comment ces différentes équipes peuvent avancer ensemble en gardant une relation de partenaire plutôt que de client/prestataire
1. DEV
et
Admin.
Sys
une
cohabitation
simplifiée
PHP
Tour
Lille
#2011
2. Enchanté
* Sébastien
Lucas
–
Directeur
associé
d’Oxalide
@PoMM3
* Nicolas
Silberman
–
Directeur
technique
Mediapart
@nsilberman
* Quelques
années
de
collaboration,
* De
nombreux
cas
urgents
et
difficiles
à
gérer,
* De
nombreux
chantiers
mis
en
œuvre.
4. Dev
de
base
* Je
veux
être
autonome
(j’ai
déjà
administré
un
serveur
chez
OVH)
:
je
dois
livrer
vite….
Tu
peux
te
dépêcher
?
* Je
sais
ce
que
je
fais,
et
de
toutes
façon
toi
l’admin.
Sys.
tu
comprends
rien
aux
dev
* Le
site
est
trop
lent,
tu
peux
pas
supprimer
les
limites
dans
le
php.ini
?
(et
rajouter
de
la
RAM)
* Je
veux
rester
root
(au
cas
où)
5. Dev
de
base
Le
site
rame
c’est
(presque)
toujours
«
la
faute
de
l’hébergeur
»…
6. Admin
Sys.
De
base
On
lui
demande
:
-‐ d’installer
un
truc,
-‐ de
surveiller
un
machin,
-‐ de
ne
pas
dormir
(surtout
si
mon
code
plante),
-‐ et
d’envoyer
le
mot
de
passe
root
(parce
qu’il
met
trop
de
temps
!!)
-‐ Il
pense
que
le
développeur
fait
n’importe
quoi
!
7. Admin.
Sys.
–
nos
objectifs
?
On
nous
demande
99,9999
%
de
disponibilité
mais
leurs
applis
plantent
en
permanence
!
Il
faut
livrer
la
plate-‐forme
pour
avant-‐hier
mais
elle
n’est
pas
utilisée
avant
2
mois
8. Admin.
Sys.
Le
métier
a
évolué
:
Gérer
des
mainframes
!==
Gérer
un
environnement
Web
!==
Gérer
une
plate-‐forme
web
à
fort
trafic
avec
des
développeurs
qui
cassent,
défont
et
refont
tout
toutes
les
semaines
!
10. DevOps
«
"DevOps"
is
an
emerging
set
of
principles,
methods
and
practices
for
communication,
collaboration
and
integration
between
software
development
(application/software
engineering)
and
IT
operations
(systems
administration/infrastructure)
professionals.
»
C’est
une
culture
et
un
mouvement
professionnel
11. Notice
Les
effets
du
médicament
* Améliore
le
plaisir
et
la
joie
de
vos
équipes
à
travailler
sur
le
projet,
* Améliore
l’impact
de
votre
applicatif/service
sur
les
ressources
consommée
(dette
technique),
* Améliore
la
productivité
et
la
créativité
des
équipes
* Améliore
la
qualité
et
la
disponibilité
de
votre
service/
applicatif
* Ce
produit
vous
promet
:
plus
de
ventes,
plus
de
visites
et
une
facture
d’hébergement
moins
chère.
12. Buzz?
* Ce
n’est
pas
* Cloud
computing
* Datacenter
automation
* Webperformance
* Méthodes
agiles
* Intégration
continue
13. Buzz?
Mais
c’est
pas
un
peu
tout
ça
quand
même
!
14. Qui
fait
du
DevOps
?
* Facebook
!
* Google
!
* Twitter
!!
* Mediapart
et
Oxalide
!!!
15. Je
veux
être
DevOps
* Il
n’y
a
pas
de
«
How
to
»…
* Ce
n’est
pas
une
job
Desc.
* C’est
un
état
d’esprit
(rappel)
16. Vivez
le
pleinement
!
* Soyez
fiers
et
attentifs
à
ce
que
vous
produisez
* Partagez
le
savoir
au
sein
des
équipes
et
entre
les
équipes,
* Ecoutez
les
proposition
de
chacun
(mais
exigez
de
la
qualité).
17. Chassez
les
frustrations
* Eliminez
le
travail
répétitif
et
ennuyeux,
privilégiez
l’innovant
et
le
créatif
* Supprimez
les
périodes
d’urgence
et
lancez
des
chantiers
planifiés
qui
améliore
la
qualité
technique
18. Structurez-‐vous
* Utilisez
des
outils
de
versioning,
* Iaas…
Make
world
* Déploiement
automatisé
* Intégration
continue
* Déploiement
continu
* Contrôlez
et
surveillez
toute
la
chaîne
19. Prenez
de
la
hauteur
* Objectifs
globaux
>
Objectifs
locaux
* Alignez
les
objectifs
de
l’entreprise/département
avec
ceux
de
l’équipe
et
les
objectifs
personnels
* Cassez
la
barrière
entre
les
départements
/
prestataires
* Faites
vous
des
propositions
entre
départements
(et
ne
vous
vexez
pas
quand
on
vous
en
fait
!)
* Parlez-‐vous
!
20. Contrôlez
Calculez
Mesurez
votre
disponibilité,
votre
performance,
vos
risques
la
satisfaction
Définissez
Consultez
des
seuils
de
tolérance
bas
ces
indicateurs
en
permanence
21. Avec
quoi
?
Pour
qui
?
Dev
Ops
Versioning
:
SVN,
Git,
Mercurial
rw
rx
Provisioning
:
Puppet,
Chef
rx
rwx
Déploiement
:
Capistrano
rx
rwx
Monitoring
:
Nagios,
Munin,
Cacti
r
rwx
Performance
/
Fine
tuning
:
Webgrind,
Xdebug,
Jmeter,
r
r
WebPageTest,
HAR
Tests
:
PHP
Unit,
SimpleTest,
Selenium
rwx
r
Cruise
control
:
PHP
UnderControl;
Hudson
rw
r
Base
de
connaissances
:
Basecamp,
Trac,
Mantis,
MediaWiki
rwx
rwx
22. DevOps
* Attention
aux
travers
:
* Mouvement
inclusif
positif
* Plaisir
du
travail
bien
fait
* Une
quête
commune
que
nous
allons
atteindre
ensemble,
* Ouah…
ça
rocks
ce
qu’on
a
fait
!
* Mouvement
exclusif
négatif
* Grumpy!
* Trop
orienté
techno
et
outils
à
mettre
en
place,
* Nous
contre
les
autres
(Devops
>
Webops
>
Sys.
Admin)
23. Premiers
pas
* Développeurs
?
Mettez
les
gens
du
métier
et
votre
hébergeur
dans
votre
basecamp…
* Admin.
Sys.
?
Sondez
par
le
haut.
Pensez
plus
au
service
rendu
aux
utilisateurs
finaux
qu’aux
serveurs