Start working on tuto 5
This commit is contained in:
parent
50132f3a8f
commit
4fe5c78d9b
10 changed files with 868 additions and 0 deletions
87
tutorial/k8s/intro.md
Normal file
87
tutorial/k8s/intro.md
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
\newpage
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
Notre application du jour
|
||||
-------------------------
|
||||
|
||||
Aujourd'hui, nous allons travailler avec un mineur de pépites ... de chocolat !
|
||||
De véritables cookies sont à gagner pour celles et ceux qui auront amassés le
|
||||
plus de pépites avant la pause !
|
||||
|
||||

|
||||
|
||||
Fier de respecter le paradigme des micro-services, notre ChocoMiner fonctionne
|
||||
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,
|
||||
* si le condensat respecte les contraintes pour obtenir une pépite, on est content,
|
||||
* et on recommence, ainsi de suite, pour avoir le maximum de pépites.
|
||||
|
||||
Chaque seconde, le `worker` envoie à `influxdb` le nombre de hashs et de
|
||||
pépites qu'il a ainsi pu obtenir.
|
||||
|
||||
Une interface graphique (`chronograf`) permet d'interroger la base de données
|
||||
pour afficher des statistiques.
|
||||
|
||||
|
||||
Obtenir l'application
|
||||
---------------------
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
git clone git://git.nemunai.re/chocominer.git
|
||||
```
|
||||
</div>
|
||||
|
||||
|
||||
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
|
||||
services à partir de leurs noms.
|
||||
|
||||
Dans Kubernetes, le même principe s'applique : dans aucun cas, nous ne devrions
|
||||
coder en dur des adresses IP. Il convient d'utiliser au maximum le système de
|
||||
DNS, car les IP sont susceptibles de changer !
|
||||
|
||||
|
||||
Tester avec `docker-compose`
|
||||
----------------------------
|
||||
|
||||
`docker-compose up`
|
||||
|
||||
Se connecter à chronograf sur le port qui va bien
|
||||
|
||||
|
||||
Monté en puissance
|
||||
------------------
|
||||
|
||||
`docker-compose up -d --scale worker=2`
|
||||
|
||||
Ok :-)
|
||||
|
||||
`docker-compose up -d --scale worker=10`
|
||||
|
||||
Argh :-(
|
||||
|
||||
|
||||
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.
|
||||
|
||||
`rng`
|
||||
: `httping -c 3 localhost:8001`
|
||||
|
||||
`hasher`
|
||||
: `httping -c 3 localhost:8002`
|
||||
|
||||
Il semblerait que notre application `rng` nécessite d'être exécuté en parallèle
|
||||
! Mais on ne peut pas faire de répartition de charge facilement avec
|
||||
`docker-compose` !
|
||||
Loading…
Add table
Add a link
Reference in a new issue