SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Profiling Ansible
et lib Mitogen
Accélérer les déploiements Ansible
Qui suis-je
Yannig Perré
Admin système et J2E
Fan des outils de déploiement continue
Qui suis-je
Yannig Perré
Admin système et J2E
Fan des outils de déploiement continue
Spoiler alerte : cette
conférence donne
certaines astuces
présentes dans le livre
ANSIBLE
Présentation
Retour sur le fonctionnement d’Ansible
Description vs réalisation
Création d’un utilisateur
- name: "Create group"
group:
name: "test"
state: present
- name: "Create user"
user:
name: "test"
group: "test"
state: present
Communication Ansible
Plateforme Git
Inventaires
Playbooks
DMZ
Zone1
Zone2
bastion
Exemples de lancement d’Ansible
Les différentes étapes (1ère fois et en réentrance)
Où est-ce qu’Ansible perd du temps
Où est qu’Ansible perd du temps
ansible -m copy -a "content=test dest=/tmp/test" localhost -vvv
1er lancement
Où est qu’Ansible perd du temps
ansible -m copy -a "content=test dest=/tmp/test" localhost -vvv
réentrance
Pour résumer
Lancement de commande shell : 8 opérations sur une machine vierge, 7 en réentrance
Sur une connexion SSH, c’est la même chose
1 connexion ~ 300 ms
Réutilisation des connexions (ControlMaster=auto)
Variable d’environnement ANSIBLE_KEEP_REMOTE_FILES=1
ANSIBLE
Stratégie et temps d’exécution
Suivi des temps : les callbacks Ansible
Activation par variable d’environnement
Exemple d’utilisation
cowsay
Colorisation sortie sous Jenkins
Suivi des temps : les callbacks Ansible
Activation par variable d’environnement
Exemple d’utilisation
cowsay
Colorisation sortie sous Jenkins
Et si on faisait une démo
?
Default callback / whitelist
Changement sortie (yaml)
Centralisation (logstash, syslog)
Profile (profile_tasks, timer)
export ANSIBLE_STDOUT_CALLBACK=[yaml|dense|...]
export ANSIBLE_CALLBACK_WHITELIST=profile_tasks,timer,...
Default callback / whitelist
Changement sortie (yaml)
Centralisation (logstash, syslog)
Profile (profile_tasks, timer)
export ANSIBLE_STDOUT_CALLBACK=[yaml|dense|...]
export ANSIBLE_CALLBACK_WHITELIST=profile_tasks,timer,...
Et si on faisait une démo
?
Stratégie d’exécution
Notion de stratégie Ansible
Stratégie linear/free/debug
Avantages/inconvénients
Stratégie d’exécution
Linear
Stratégie d’exécution
Free
Avantages / inconvénients
Linear
Avantages : Simple, sortie plus propre
Inconvénients : Attente des retardataires
Free
Avantages : va au plus vite
Inconvénients :
- Sortie pouvant devenir compliquée
- Attention au runonce, delegate et register
Debug : pour la mise au point.
MITOGEN
Accélérer Ansible
Librarie Mitogen
Émulation de SSH
Délégation d’exécution
Pas de dépendances
Mitogen pour Ansible
Ansible Host
SSH
Python
Agent bootstrap
exec 1 exec 2 ...
Bootstrap auto de l’agent
Nécessite un interpréteur Python
Ce qu’il faut retenir de Mitogen
Utilisation d’un agent temporaire
Réutilisation des connexions
Cache du code des modules
export ANSIBLE_STRATEGY_PLUGINS=$HOME/dev/mitogen/ansible_mitogen/plugins
export ANSIBLE_STRATEGY=mitogen
Quelques chiffres sur Mitogen
Environ 25% de gagné sur une installation Kubespray (2min40 -> 2min)
Gain potentiel énorme sur certains types d’opérations (supérieur à 4x voir beaucoup plus)
Réduction consommation bande passante et CPU
Réduction bruit syslog
Moins de création de fichier temporaire
https://mitogen.readthedocs.io/
https://github.com/dw/mitogen
Démo
Installation Wordpress avec et sans
Démo driver Kubernetes
Prochaines versions
Amélioration performances
Gestion des libs de module
Driver communication Kubernetes
Délégation communication
Proxy d’exécution
Pour conclure
Gain potentiel énorme
Attention toutefois à certains changements de comportement (bug ?)
En bref, il faut tester
https://github.com/Yannig/meetup-octo
Merci !
Vous avez des questions ?

Weitere ähnliche Inhalte

Ähnlich wie Profiling Ansible et présentation lib mitogen

Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
cyrilgandon
 
Django Hacking : Comment dresser les serpents guitaristes
Django Hacking : Comment dresser les serpents guitaristesDjango Hacking : Comment dresser les serpents guitaristes
Django Hacking : Comment dresser les serpents guitaristes
Paris, France
 
Mise à jour d’un système Linux embarqué « Over The Air »
Mise à jour d’un système Linux embarqué « Over The Air »Mise à jour d’un système Linux embarqué « Over The Air »
Mise à jour d’un système Linux embarqué « Over The Air »
Pierre-jean Texier
 
Gestion-des-parcs-informatiques Windows et Linux.pptx
Gestion-des-parcs-informatiques Windows et Linux.pptxGestion-des-parcs-informatiques Windows et Linux.pptx
Gestion-des-parcs-informatiques Windows et Linux.pptx
ssusercbaa22
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - Specflow
Mathias Kluba
 
Guide scilab
Guide scilabGuide scilab
Guide scilab
zan
 
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdfAGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AbdellahELMAMOUN
 

Ähnlich wie Profiling Ansible et présentation lib mitogen (20)

Développeur ta prod tu respecteras !
Développeur ta prod tu respecteras !Développeur ta prod tu respecteras !
Développeur ta prod tu respecteras !
 
VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
Support Formation Samsung - Python - Session 1 - 2022.pptx
Support Formation Samsung - Python - Session 1 - 2022.pptxSupport Formation Samsung - Python - Session 1 - 2022.pptx
Support Formation Samsung - Python - Session 1 - 2022.pptx
 
C# et .NET : Enigmes et puzzles
C# et .NET : Enigmes  et puzzlesC# et .NET : Enigmes  et puzzles
C# et .NET : Enigmes et puzzles
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
 
Django Hacking : Comment dresser les serpents guitaristes
Django Hacking : Comment dresser les serpents guitaristesDjango Hacking : Comment dresser les serpents guitaristes
Django Hacking : Comment dresser les serpents guitaristes
 
Mise à jour d’un système Linux embarqué « Over The Air »
Mise à jour d’un système Linux embarqué « Over The Air »Mise à jour d’un système Linux embarqué « Over The Air »
Mise à jour d’un système Linux embarqué « Over The Air »
 
WS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - XebiaWS User Group - Spring Batch - Xebia
WS User Group - Spring Batch - Xebia
 
Subversion - Utilisation et bonnes pratiques
Subversion - Utilisation et bonnes pratiquesSubversion - Utilisation et bonnes pratiques
Subversion - Utilisation et bonnes pratiques
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 
20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif20120110 paris jug-packaging-natif
20120110 paris jug-packaging-natif
 
Gestion-des-parcs-informatiques Windows et Linux.pptx
Gestion-des-parcs-informatiques Windows et Linux.pptxGestion-des-parcs-informatiques Windows et Linux.pptx
Gestion-des-parcs-informatiques Windows et Linux.pptx
 
Webinar Smile : Comment industrialiser votre SI avec Ansible ?
Webinar Smile : Comment industrialiser votre SI avec Ansible ?Webinar Smile : Comment industrialiser votre SI avec Ansible ?
Webinar Smile : Comment industrialiser votre SI avec Ansible ?
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - Specflow
 
Netapp
NetappNetapp
Netapp
 
Guide scilab
Guide scilabGuide scilab
Guide scilab
 
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdfAGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 

Profiling Ansible et présentation lib mitogen