Save tuto corrections
This commit is contained in:
parent
f5ee6b8534
commit
10448a6c8d
115 changed files with 1423 additions and 1289 deletions
|
|
@ -1,23 +1,9 @@
|
|||
\newpage
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
Aujourd'hui, nous allons travailler avec un mineur de pépites ... de chocolat !
|
||||
|
||||
<!--Alors, on se fait un bon thé, on prend sa boîte de gâteaux pour tenir le coup,
|
||||
et c'est parti !-->
|
||||
Comme c'est notre dernier cours ensemble, de véritables cookies sont à
|
||||
gagner pour celles et ceux qui auront amassé le plus de pépites d'ici
|
||||
la fin du TP[^cookies] ! Vous pouvez suivre votre progression sur
|
||||
[cette page](https://virli.nemunai.re/scores.html).
|
||||
|
||||
[^cookies]: Dans la limite des stocks disponibles.
|
||||
\
|
||||
|
||||

|
||||
|
||||
Fier de respecter le paradigme des micro-services, notre ChocoMiner fonctionne
|
||||
ainsi :
|
||||
ainsi :
|
||||
|
||||
* le `worker` demande à `rng` de générer un grand nombre aléatoire,
|
||||
* le `worker` envoie ce grand nombre au `hasher`, qui lui retourne un hash,
|
||||
|
|
@ -31,8 +17,9 @@ Une interface graphique (`chronograf`) permet d'interroger la base de données
|
|||
pour afficher des statistiques.
|
||||
|
||||
|
||||
Obtenir l'application
|
||||
---------------------
|
||||
### Obtenir l'application
|
||||
|
||||
Les micro-services sont regroupés sur le dépôt suivant :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
|
|
@ -41,57 +28,64 @@ git clone https://git.nemunai.re/srs/chocominer.git
|
|||
</div>
|
||||
|
||||
|
||||
Rappels sur la découverte de services
|
||||
-------------------------------------
|
||||
### Rappels sur la découverte de services
|
||||
|
||||
Dans Docker, nous avions vu que nous n'avions pas besoin de connaître les IP
|
||||
des conteneurs : un serveur DNS nous permettait de se connecter aux différents
|
||||
des conteneurs : un serveur DNS nous permettait de se connecter aux différents
|
||||
services à partir de leurs noms.
|
||||
|
||||
Dans Kubernetes, le même principe s'applique : dans aucun cas, nous ne devrions
|
||||
Dans Kubernetes, le même principe s'applique : dans aucun cas, nous ne devrions
|
||||
inscrire en dur des adresses IP. Il convient d'utiliser au maximum le système
|
||||
DNS, car les IP sont susceptibles de changer !
|
||||
DNS, car les IP sont susceptibles de changer !
|
||||
|
||||
|
||||
Tester avec `docker-compose`
|
||||
----------------------------
|
||||
### Tester avec `docker-compose`
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
docker-compose up
|
||||
```
|
||||
</div>
|
||||
|
||||
Une fois le docker-compose lancé, nous devrions pouvoir accéder à l'interface
|
||||
de chronograf pour voir l'avancement de recherche de pépites :
|
||||
Une fois le `docker-compose` lancé, nous devrions pouvoir accéder à l'interface
|
||||
de chronograf pour voir l'avancement de recherche de pépites :
|
||||
|
||||
<http://localhost:8888/sources/1/dashboards/1>
|
||||
|
||||
|
||||
Montée en puissance
|
||||
-------------------
|
||||
### Montée en puissance
|
||||
|
||||
Avec `docker-compose`, on peut facilement monter en puissance. Commençons en
|
||||
augmentant doucement le nombre de `worker`, pour voir si cela a un impact :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
docker-compose up -d --scale worker=2
|
||||
```
|
||||
</div>
|
||||
|
||||
On remarque que le nombre de hashs calculés augmente ! Génial !
|
||||
On remarque que le nombre de hashs calculés augmente ! Génial ! Continuons
|
||||
d'augmenter alors :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
docker-compose up -d --scale worker=10
|
||||
```
|
||||
</div>
|
||||
|
||||
Mais ça atteint un palier au bout d'un moment...
|
||||
Mais l'augmentation n'est plus aussi nette, on semble atteindre un palier au
|
||||
bout d'un moment...
|
||||
|
||||
|
||||
Identification du goulot d'étranglement
|
||||
---------------------------------------
|
||||
### Identification du goulot d'étranglement
|
||||
|
||||
De nombreux outils existent pour réaliser des tests de performance, essayons
|
||||
`httping` sur nos différents services pour voir si un service ne serait pas
|
||||
la cause des ralentissements :
|
||||
la cause des ralentissements :
|
||||
|
||||
- Testons `rng` : `httping -c 3 localhost:8001`,
|
||||
- puis testons `hasher` : `httping -c 3 localhost:8002`.
|
||||
- Testons `rng` : `httping -c 3 localhost:8001`,
|
||||
- puis testons `hasher` : `httping -c 3 localhost:8002`.
|
||||
|
||||
Il semblerait que notre application `rng` nécessite d'être exécutée en parallèle
|
||||
! Mais on ne peut pas faire de répartition de charge facilement avec
|
||||
`docker-compose` !
|
||||
Il semblerait que notre application `rng` nécessite d'être exécutée en
|
||||
parallèle ! Mais on ne peut pas faire la répartition de charge facilement avec
|
||||
`docker-compose` !
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue