4. Définition
Devops est un terme inventé par le belge Patrick Debois, le co-
organisateur du premier DevOpsDay à Gent en 2009
Il est la contraction des mots Development et Operations
4
6. Son origine
Provient de l'expérience des "grands" du web : Google, Amazon,
Flickr, Yahoo, HP, 37 signals...
Ces grandes entreprises qui se livrent une course à l'innovation ont
du revoir leurs processus de production logiciel pour satisfaire les
besoins business
Car ne l'oublions pas, tant qu'un logiciel n'est pas en production, il
n'apporte pas de valeur pour l'entreprise, même pour un éditeur...
6
8. Buts
Rassembler
Outiller
Business
Qualité
Industrialisation
Mouvement qui tend à ...
8
9. Buts
Rassembler les personnes
Qui ne sont pas habitués à travailler ensemble
Qui ont des visions/approches différentes du logiciel
mais...
Qui pour être plus efficace doivent comprendre le métier
de l'autre
Le but n'est pas de rendre les gens interchangeables,
mais les impliquer dans le même sens
Finalement, nous sommes dans le même bateau !
9
10. Buts
Améliorer la qualité
Côté dev, les méthodes agiles ont amélioré la qualité
logicielle et augmenté les rythmes de livraisons
Dans la chaine, il reste néanmoins des étapes que l'on
peut encore améliorer/optimiser : La Production
donc...
On peut copier ces modèles pour l'exploitation :
Utilisation d'un VCS pour les scripts
Politique de tests sur les scripts
Outils d'aides à la gestion de parcs machines...
10
11. Buts
Outiller l'ensemble de la chaîne
L'offre d'outils Devops commence à être importante, mais
reste l'affaire de spécialistes
Ils permettent en autre :
D'assurer la cohérence d'une infrastructure
De limiter les interventions manuelles
D'avoir des vues complètes au travers d'interface
riches
mais...
Permettent surtout d'être efficace face aux exigences
business
11
12. Buts
Industrialisation
Industrialiser ses processus de livraison invite les
équipes à dialoguer entres elles
Formaliser chaque étape de livraison et expose une
cartographie précise du cycle logiciel
Réduire les coûts liés aux processus de livraison qui
peuvent sembler parfois artisanaux
12
13. Buts
Faire du Business
Satisfaire les besoins business de l'entreprise en étant
capable de livrer des fonctionnalités le plus rapidement et
sereinement possible
Engendrer un cercle vertueux, en prouvant à l'entreprise
qu'investir dans Devops, c'est investir dans de
l'informatique "utile"
13
15. Les outils
Puppet est un produit tout à fait impressionant et utile, car
il permet de décrire l’état de configuration d’un ensemble
hétérogène de stations de travail ou serveurs et de s’
assurer que l’état réel des machines correspond bien à l’
état demandé
15
16. Les outils
Un exemple de déploiement continu avec : Puppi
Il s'agit d'un module Puppet permettant d'automatiser
le déploiement d'application Web JavaEE...
Comme tout dans Puppet la configuration se code en
Ruby. Ce script suivant permet de déployer
automatiquement une application
puppi::project::war { "fxent-ng":
source_url => "http://nexus/fa/fxent/fxent-ng.war",
user => "prod_user",
deploy_root => "/srv/tomcat/fa/fxent/webapps",
report_email => "ops@financeactive.com",
enable => "true"
}
16
17. Les outils
Au même titre que Puppet, Chef maintient un état stable
de l'infrastructure d'entreprise
Système
Application
17
18. Les outils
Toujours dans la lignée de Puppet et Chef, Cfengine va
assurer le conformité de l'état de son infrastructure mais
est plus orienté sécurité
Il supporte en outre plus d'OS que ses concurrents
18
19. Les outils
Quelques exemples de configuration
Les outils utilisent généralement une syntaxe particulière pour les fichiers de
configuration. Là où Cfengine a redéfini un format de fichier spécifique, Puppet
et Chef héritent du langage dans lequel ils ont été écrits (Ruby) pour utiliser
une syntaxe déjà existante.
Chef Cfengine Puppet
file "/tmp/something" do files: "/tmp/patapouf" file { "/etc/plop":
owner "root" create => "true", owner => root,
group "root" perms => m_u_g("644", "root", group => root,
mode "644" "root"); mode => 644
action :create }
end body perms m_u_g(m,u,g) {
mode => "$(m)";
owners => { "$(u)" };
groups => { "$(g)" };
}
19
20. Les outils
Les points forts de ces outils
Installation de paquets système
Gestion de fichiers/lien symbolique à partir d'un repository
Gestion de tâches planifiées
Gestion/monitoring fin des droits/permissions sur les fichiers
Gestion des points de montages d’un FS local ou réseau
Possibilté de lancer des commandes de types :
Restart de la machine
Restart d'un service
Paramètrage et gestion d’une DB
Gestion des réplications
...
20
21. Les outils
Ce qu'il faut retenir sur ces outils
C'est qu'ils sont adaptés à la gestion de l'infrastructure
matérielle
Mais qu'ils sont peu ou pas adapté au déploiement
automatisé
21
22. Les outils
Conclusion
Les outils représentent une bonne interface entre les
dev et les ops
En pratique, les ops sont ceux qui mettent en place les
outils et veillent à leur bon fonctionnement
Les dev auront plutôt un rôle d'utilisateur
Parfois les "fonctionnels" peuvent aussi avoir un intérêt
à monitorer une application qui possèderait une sonde
"métier"
22
24. Devops chez FA
Dans un premier temps...
Devops sera donc un support de travail entre les
équipes de dev, ops et testeurs
Devops permettra de fluidifier la MEP
Devops incitera à avoir un parc de machines cohérents
et conforments au référentiel
Devops améliorera la qualité logiciel en proposant aux
équipes de dev, un environnement de travail identique
aux environnement de la prod
24