CMMI [FRENCH]

CMMI permet de définir le niveau de maturité (ML) d’une organisation sous forme d’étapes, de niveaux.

Les 8 étapes du changement (modèle de Kotter) [FRENCH]

Dans l’ouvrage “Leading Change” (1996), John P. Kotter décrit en 8 étapes un modèle pour réussir durablement le changement dans une entreprise.

Les 8 phases du DevOps [FRENCH]

Le pipeline DevOps est un flux de travail continu. On peut cependant le décomposer en huit phases. Ces huit phases sont décrites dans cet article.

Modification_du_shell_Bash__french_

Modification du shell Bash

Pour améliorer la productivité, il peut être utile d’étendre le bash. Pour cela, il y a deux moyens principaux :

  • création d’alias,
  • création de fonctions.

Création d’un alias

Il y a deux fichiers dans ce répertoire :

  • un fichier normal myfile.txt,
  • un fichier caché myhiddenfile.txt.

Pour définir un alias de commande, utiliser la commande alias. Par exemple, définissons un alias myls pour la commande ls -ah.

Vérifions que nous ne voyons que le fichier non caché avec la commande ls :

ls
myfile.txt
]0;vagrant@centos71:/vagrant/test

Vérifions que la commande myls n’existe pas :

myls
bash: myls : commande introuvable

Créons l’alias :

echo 'alias myls="ls -ah"' >> ~/.bashrc

Indiquons à Bash que nous voulons utiliser cet alias dans la session courant :

. ~/.bashrc
]0;vagrant@centos71:/vagrant/test

Vérifions que l’environnement Bash reconnaît maintenant cet alias :

myls
.  ..  myfile.txt  .myhiddenfile
]0;vagrant@centos71:/vagrant/test

L’alias myls existe donc bien.

Nous aurions aussi pu créer un alias de la commande ls elle même :

echo 'alias ls="ls -ah"' >> ~/.bashrc
]0;vagrant@centos71:/vagrant/test

Recharger l’alias :

. ~/.bashrc
]0;vagrant@centos71:/vagrant/test

Vérifier que la commande ls a maintenant les arguments -ah par défaut :

ls
.  ..  myfile.txt  .myhiddenfile
]0;vagrant@centos71:/vagrant/test

Pour afficher la liste des alias, on peut utiliser la commande alias :

alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls -ah'
alias myls='ls -ah'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
]0;vagrant@centos71:/vagrant/test

Création d’une fonction

Il est également possible de créer une fonction acceptant comme paramètres les arguments de la commande. Cette fonction doit être définie dans le fichier ~/.bashrc. Par exemple, on peut définir une fonction dpull pour lancer la commande docker pull :

cat <<EOF>> ~/.bashrc
function dpull()
{
    docker pull \$1;
}
EOF

Sourçons le fichier .bashrc :

. ~/.bashrc
]0;vagrant@centos71:/vagrant/notebooks/linux

Vérifions que la commande dpull alpine a bien le même effet que la commande docker pull alpine :

dpull alpine
Using default tag: latest
latest: Pulling from library/alpine

Digest: sha256:c0e9560cda118f9ec63ddefb4a173a2b2a0347082d7dff7dc14272e7841a5b5a
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
]0;vagrant@centos71:/vagrant/notebooks/linux

Nous avons donc vu deux méthodes pour étendre Bash, afin d’améliorer notre productivité.

Surveiller_les_performances_des_conteneurs_Docker_avec_cAdvisor__french_

Surveiller les performances des conteneurs Docker avec cAdvisor

cAdvisor (https://github.com/google/cadvisor) permet de monitorer les performances d’un container. Il affiche des informations sur l’utilisation du CPU et de la mémoire. cAdvisor est écrit en Go. Il capture les métriques que la commande docker stats retourne et les agrège.

Lançons cAdvisor dans un conteneur Docker :

docker run \
  -d \
  -v=/:/rootfs:ro \
  -v=/var/run:/var/run:rw \
  -v=/sys:/sys:ro \
  -v=/var/lib/docker/:/var/lib/docker:ro \
  -p=8080:8080 \
  --privileged \
  --name=cadvisor \
  google/cadvisor:latest
Unable to find image 'google/cadvisor:latest' locally
latest: Pulling from google/cadvisor

5c916c92: Pulling fs layer 
5bb65cdf: Pulling fs layer 
Digest: sha256:815386ebbe9a3490f38785ab11bda34ec8dacf4634af77b8912832d4f85dca04
Status: Downloaded newer image for google/cadvisor:latest
f9c03c73404c04bf371fd501e5a9dab999ebddaf18084a91b4aafbf26459d37b

Pour pouvoir fonctionner, nous devons donner accès à cAdvisor aux ressources nécessaires sur l’hôte. Pour donner un accès complet aux devices de l’hôte, le conteneur doit être lancé avec l’option --privileged.

Pour accéder à cAdvisor, dans un navigateur Web, allez à l’adresse http://0.0.0.0:8080/.

cAdvisor affiche les sections suivantes :

  • Overview,
  • Processes,
  • CPU,
  • Memory.

cAdvisor

cAdvisor

cAdvisor

cAdvisor

La page résumé

Cette page Web affiche les sections suivantes :

  • La section Overview affiche des jauges pour indiquer si les ressources ont atteint leurs limites.
  • La section Processes affiche des informations issues des commandes docker ps aux, docker ps et docker top sous forme de tableau; pour trier les process, cliquez sur l’entête de la colonne correspondante. Les colonnes sont :
    • User : c’est l’utilisateur qui fait tourner le process,
    • PID : c’est l’ID du process,
    • PPID : c’est le PID du process parent,
    • Start Time : c’eest l’heure de démarrage du process,
    • CPU % : c’est le pourcentage du CPU consommé,
    • MEM % : c’est le pourcentage de RAM consommé,
    • RSS : c’est la quantité de mémoire principale consommée,
    • Virtual Size : c’est la quantité de mémoire virtuelle consommée,
    • Status : c’est l’état actuel du process (codes d’état Linux standards),
    • Running Time : c’est la durée d’exécution du process,
    • Command : c’est la commande exécuter par le process,
    • Container : c’est le conteneur auquel le process est attaché.
  • La section CPU affiche l’utilisation du CPU avec les colonnes :
    • Total Usage : c’est l’utilisation agrégée sur l’ensemble des cores,
    • Usage per Core : c’est un découpage de l’utilisation par core,
    • Usage Breakdown : c’est l’utilisation agrégée sur l’ensemble des cores mais réparti entre ce qui est utilisé par le kernel et par les process de l’utilisateur.
  • La section Memory comprend deux parties :
    • Total Usage : la quantité de mémoire totale utilisée par l’ensemble des process pour l’hôte ou le conteneur : elle est égale à Hot Memory + Cold Memory;
      • la Hot Memory correspond aux pages qui ont été touchées récemment par le kernel;
      • la Cold Memory correspond à la page qui n’a pas été touchée pendant un certain temps et qui pourrait être réclamée si nécessaire.
    • Usage Breakdown : elle donne une représentation visuelle de Total Usage et Hot Memory.
  • La section Network affiche :
    • Throughput : montre le traffic entrant et sortant sur la dernière minute;
    • Errors : ce sont les erreurs réseau; ce graphe devrait donc être plat.
  • La section Filesystem (système de fichier) montre un découpage de l’utilisation du système de fichier.
  • La section Subcontainers affiche le top des consommations en CPU (Top CPU Usage) et en mémoire (Top Memory Usage).

La page de statistiques des conteneurs

En haut de la page se trouve un lien vers les conteneurs en cours d’exécution pour afficher leurs statistiques.

cAdvisor

cAdvisor

La page Docker Containers

En haut de la page se trouve un lien Docker Containers pour afficher des statistiques sur l’hôte Docker.

cAdvisor

Cette page contient les sections suivantes :

  • La section Subcontainers affiche une liste des conteneurs dont le nom est cliquable. En cliquant sur le nom, cAdvisor affiche des détails sur :
    • l’isolation (Isolation) :
      • CPU : ce sont les allocations de CPU du conteneur; s’il n’y a pas de limites de ressources, les informations sur le CPU de l’hôte sont affichéee,
      • Memory : ce sont les allocations de mémoire du conteneur
    • l’utilisation (Usage) :
      • Overview : ce sont les jauges qui permettent de voir si on s’approche des limites de ressource,
      • Processes : ce sont les processes du conteneur,
      • CPU : ce sont les graphes d’utilisation du CPU isolé du conteneur,
      • Memory : c’est l’utilisation de la mémoire du conteneur.
  • La section Driver Status affiche :
    • les statistiques de base du process Docker principal,
    • des informations sur le kernel de l’hôte,
    • le nom de l’hôte,
    • le système d’exploitation utilisé,
    • le nombre total de conteneurs et d’images (le nombre d’images compte chaque système de fichier comme une image individuelle).
  • La section Images affiche la liste des images Docker disponibles sur l’hôte : Repository, tag, taille, date de création de l’image, ID de l’image.

Vous savez maintenant obtenir une grande quantité de statistiques très utiles sur les conteneurs Docker, permettant de diagnostique des problèmes et d’optimiser les performances des containers.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×