3. Le déroulement
Durée : 20 minutes
Questions : volontiers après la
présentation
Le contexte : tant de missions où j’ai
appris à automatiser,
casser, réparer,
apprendre…
Le fil rouge : ma cartographie
mentale des outils DevOps
4. Qui suis-je pour en parler ?
Noël Bardelot
Ingénieur chez Valeuriad
Architecte DevOps et Java
« couteau-suisse »
11 ans d’amélioration continue
11 ans d’automatisation des processus
mais seulement 2 ans depuis que les gens appellent ça DevOps…
14. Requêter un serveur HTTP
curl http://webserver/
Vérifier qu’un flux passe le firewall
curl –v telnet://host:port
… et vérifier le code retour?
-X HEAD -w %{http_code}
Tester un Webservice SOAP
-X POST –d @request.xml
… ou REST avec jq
16. sed
Travailler sur
un document
au format complexe,
pour, par exemple,
rechercher ou remplacer
des mots ou des motifs
à l’aide d’une
expression rationnelle.
awk
WR O
C
L
U
M
N
17. JSON avec du map filter reduce
et un peu d’amour…
19. Avantages Limitations/Inconvénients
Outils du système à portée de main :
/proc, ps, ss, mkfifo …
Bashismes
Scripts simple à écrire, porter, exécuter Limité à la programmation impérative
Démons faciles à écrire : nohup … & Pas adapté à la programmation concurrente
BOURNE AGAIN SHELL
22. [07:48 PM] noel@webserver :tests> bats poststart.bats
✓ le processus doit être up
✓ option -Xmx de la JVM à la valeur prévue
✓ port en écoute : tcp 8080
3 tests, 0 failures
25. « Mauvais outil, mauvais ouvrier. »
Alain Autin
professeur à l’ENSIIE,
issus d’un proverbe du 13ème siècle
ces propos précèdent le plus souvent
un sale moment…
Notes de l'éditeur
Trois composantes à DevOps : l’humain à travers la collaboration des équipes, la technique à travers le choix des outils, et l’organisation à travers les processus et leur automatisation.
Trois composantes à DevOps : l’humain à travers la collaboration des équipes, la technique à travers le choix des outils, et l’organisation à travers les processus et leur automatisation.
Il faut séparer déploiement et installation. Malgré la tentation d’utiliser des outils « modernes » pour piloter des installations et gérer des dépendances, la solution historique reste cependant souvent la meilleure : les gestionnaires de paquets.
Yum (et les paquets au format RPM) combinent le meilleur des mondes : pour le poste de développeur il y a moyen d’utiliser Fedora/CentOS et les outils communautaires, et pour la production il est possible d’opter pour le support RedHat avec RHEL.
Docker constitue l’assemblage au sein d’un même outil de nombreuses techniques de cloisonnement applicatives : réseau, processus, fichiers…
Sa force est d’avoir apporté une API, et un outillage relativement simple d’utilisation.
SSH est au cœur de l’utilisation de Linux. Il permet notamment l’authentification par clé publique, et donc par extension les traitements à distance à l’aide de comptes système de manière plus pérenne et automatisée qu’avec des mots de passe, et sans la lourdeur qui consiste à devoir installer des agents.
IPTables est une brique « firewall » fondamentale sous Linux. Elle permet de filtrer/traiter les flux réseaux entrants, sortants, et internes au serveur. C’est sur cette brique que s’appuient les outils les plus utilisés comme Fail2Ban pour se protéger contre les intrusions et/ou les attaques, ou firewalld. On l’utilise aussi pour réaliser le NAT (Network Address Translation) sur les routeur qui délimitent les zones réseau.
Même si Firewalld est installé par défaut sous CentOS, il faut envisager de lui préférer IPTables pour des raisons de compatibilité avec Docker.
« "
Ma vision des outils DevOps que j’utilise quasiment au quotidien.