# TP Final Docker ## L'esclave (hash_extractor) ```shell sudo docker login sudo docker pull servuc/hash_extractor docker build -t servuc/hash_extractor:latest . ``` ## Application ```shell cd app sudo docker build -t app:latest . sudo docker swarm init sudo docker stack deploy --prune --compose-file docker-compose.yml app sudo docker service logs -f app_application ``` ## Scalabilité ```shell cd scalabilite sudo docker build -t scalabilite:latest . sudo docker stack deploy --prune --compose-file docker-compose.yml scalabilite sudo docker service logs -f scalabilite_scalabilite ``` ## Arrêter l'application ```shell sudo docker stack rm app sudo docker stack rm scalabilite ``` ## Images d'utilisation - Notre interface web est accessible à l'adresse suivante: http://localhost:30001 ![Interface web](images/interface_web.png) - On rentre un mot de passe et on clique sur "Submit" et le serveur ws le recoit et le hash en md5 et l'envoie à l'esclave, ou on genere un mot de passe aléatoire avec un mode de complexité. ![Envoi du mot de passe](images/envoi_mot_de_passe.png) - Une fois on a deux mots de passe en attente et que l'esclave n'a pas trouvé le hash, la scallabilité crée un autre esclave. ![Scallabilité](images/scallabilite.png) ![Scallabilité](images/scallabilite_2.png) - Et une fois que l'esclave a trouvé le hash, il l'envoie au serveur ws et le serveur le stocke dans la base de données. ![Suppression d'un esclave](images/hash_trouve.png) - Et si l'esclave n'a aucun hash à resoudre, la scallabilité supprime l'esclave. ![Hash trouvé](images/suppression_esclave.png) ![Hash trouvé](images/suppression_esclave_2.png) - Si on cherche un hash qui est déja trouvé, le serveur ws le trouve dans la base de données et le renvoie, et l'esclave n'a pas besoin de le chercher. ![Hash trouvé dans la base de données](images/hash_trouve_base_de_donnees.png)