Question & Réponses
1. Combien y-a-t’il de services différents ?
L'application DockerCoins est composée de cinq services distincts :
rng
: Ce service génère des nombres aléatoires nécessaires à la création de DockerCoins. Il fonctionne comme un serveur HTTP interne qui renvoie des nombres en réponse à des requêtes. Son image est construite localement à partir du répertoirerng
.
hasher
: Ce service calcule un hash pour chaque nombre fourni parrng
. Si le hash commence par un "0", cela indique qu'un DockerCoin a été généré avec succès. Le service reçoit les nombres via des requêtes HTTP POST et retourne les résultats. Son image est construite localement à partir du répertoirehasher
.
worker
: Le cœur de l'application, ce service orchestre les interactions entrerng
,hasher
, etredis
. Il récupère des nombres aléatoires auprès derng
, les envoie àhasher
pour calculer leurs hash, et stocke les résultats valides dansredis
. Son image est également construite localement à partir du répertoireworker
.
redis
: Cette base de données NoSQL est utilisée pour stocker les DockerCoins générés. Elle sert à conserver les résultats produits par leworker
. Le service utilise l'image officielleredis:5
et expose le port 6379 pour la communication avec les autres services.
webui
: Ce service fournit une interface utilisateur accessible via un navigateur web. Il récupère les données stockées dansredis
et affiche des informations comme la vitesse de création et le nombre total de DockerCoins générés. Le service fonctionne sur le port 8000 et utilise une image construite localement à partir du répertoirewebui
.
2. Combien de ces services utilisent une image officielle ?
Un seul service utilise une image officielle :
redis
, qui utilise l’imageredis:5
.
3. Sur quel port local a lieu la redirection du service webui ?
Le service
webui
est exposé sur le port local 8000, comme spécifié dans le fichierdocker-compose.yml
. Ce fichier configure les ports de chaque service, et pourwebui
, la ligne suivante établit cette redirection :ports: - "8000:80"
Cela signifie que le port 8000 du conteneur
webui
est mappé au port 8000 de la machine hôte, ce qui permet d’accéder à l'interface web en ouvrant un navigateur sur l'URL : http://localhost:8000.
4. Quelle est votre vitesse de création de Dockercoins ?
La vitesse de création de DockerCoins, telle qu'affichée sur l'interface Web, est d'environ
4.0 hashes/second
.
5. Étudiez le résultat, et comparez avec la commande docker ps
.
docker ps
.Comparaison
docker-compose ps
Liste uniquement les conteneurs du projet Docker Compose actuel.
Ajoute des colonnes spécifiques comme
SERVICE
etSTATUS
.Exemples :
webui
: Port 8000.
rng
: Port 8001.
hasher
: Port 8002.
docker ps
Liste tous les conteneurs actifs sur l’hôte Docker, même hors Compose.
Affiche des détails comme
CONTAINER ID
etNAMES
.
Observations pour DockerCoins
Conteneurs actifs : 6 (dont 2
worker
scalés).Ports exposés :
webui
: 8000
rng
: 8001
hasher
: 8002
6. Est-ce que votre taux de génération a été multiplié par 10 ?
Réponse : Non, le taux n'a pas été multiplié par 10 malgré l'ajout de conteneurs supplémentaires pour le service
worker
.
Pourquoi ?Ce résultat montre que
worker
n'est pas le goulot d’étranglement de l’application. Cela signifie que les performances de l'application sont limitées par un autre service, probablementrng
ouhasher
.Pour confirmer cela, vous pouvez identifier le service avec la latence la plus élevée en utilisant des outils tels que
curl
ouMeasure-Command
sous Windows, comme décrit dans la section 🚦 Détection du goulot d’étranglementSi nécessaire, terminez la commande de mesure des performances ou d'analyse avec :
Ctrl+C
7. Lequel a le plus de latence, et est donc notre goulot d’étranglement?
Le service
RNG
(Random Number Generator) présente la latence la plus élevée avec96 millisecondes (ms)
, contre seulement19 millisecondes (ms)
pour le serviceHasher
. Cela indique que leservice RNG
est legoulot d’étranglement
dans la chaîne de traitement de DockerCoins.
Analyse :
Le service RNG est responsable de fournir des nombres aléatoires pour le processus de minage des DockerCoins.
Une latence plus élevée dans RNG ralentit l'ensemble du processus, car les services suivants (Hasher, Worker) dépendent de sa sortie.
8. Quelle est l’ip
de votre serveur Docker host1
?
ip
de votre serveur Docker host1
?L'adresse IP de mon serveur Docker
host1
est192.168.253.150
.
9. A quoi pouvez-vous le voir?
La sortie indique que l’hôte Docker utilisé est
host1
, avec l’adressetcp://192.168.253.150:2376
et les informations sur les conteneurs, volumes et images actifs.
10. Qu’est-ce qui vous indique que tous les nœuds sont majeurs.
Le statut MANAGER STATUS de chaque nœud est soit Leader soit Reachable.
11. Quel est l’état de la plupart de vos nœuds ? Que cela signifie-t’il ?
Les nœuds présentent un mélange de statuts :
host2 : Les tâches Elasticsearch sont Running.
host3 et host1 : Les tâches échouent avec des statuts Shutdown et des erreurs comme
non-zero exit (1)
etnon-zero exit (137)
.Signification : Cela indique que certains nœuds ne parviennent pas à exécuter Elasticsearch, probablement en raison d’un manque de ressources (mémoire) ou d’une configuration système inadaptée. Cela déséquilibre la charge du cluster, forçant les tâches à s’exécuter uniquement sur les nœuds fonctionnels comme host2.
12. Quelle est la différence de notre réseau dockercoins
comparé aux autres ?
dockercoins
comparé aux autres ?
SCOPE :
swarm
signifie que ce réseau est partagé entre les nœuds du cluster.Contrairement à un réseau
bridge
local, l’overlay
permet une communication multi-hôtes.
13. Quel est le taux de génération de Dockercoins
?
Dockercoins
?Une fois les services en cours d'exécution, le taux de génération indiqué dans l'interface est d'environ
4.0 hashes/second
.
14. Quel est le taux de génération de dockercoins
?
dockercoins
?Après l’augmentation des réplicas, le taux de génération atteint environ
6.0 et 12 hashes/second
.
15. Ouvrez la webui
, quel est votre vitesse de génération de Dockercoins
?
webui
, quel est votre vitesse de génération de Dockercoins
?Grâce à la répartition globale, la vitesse augmente considérablement et atteint environ
16.0 et 30 hashes/second
.
16. Une fois toutes les instances de worker
mises à jour, quel est le taux de génération de dockercoins
?
worker
mises à jour, quel est le taux de génération de dockercoins
?Le taux devient plus stable, atteignant environ
25.0 et 35 hashes/second
.
17. Attendez que les instances soient downgradées, quel est le taux de génération de Dockercoins
?
Dockercoins
?La génération diminue légèrement, oscillant entre
10.0 et 30 hashes/second
.
Last updated