Home - Jonathan-Granier/DevOps GitHub Wiki
Projet DevOps : STOCKAGE CLÉ-VALEUR
Fonctionnalités implémentées
- Connexion client-serveur
- Plusieurs clients pour un serveur (multithread des clients)
- Manipulation de structures complexes (incrémentation, ajout/suppression dans une liste)
- Cache avec principe LRU (suppressions des plus anciennes données au profit des nouvelles)
- Manipulations de données basées sur le modèle Redis
- Basiques : set / get / remove
- Complexes : getAtIndex / increment / list_add / list_remove
Mise en place du projet
- Utilisation de Maven pour compiler , exécuter, lancer les tests et faire la couverture de code.
- Création de deux modules, un pour le client , un pour le serveur. Chaque module a son propre pom.xml qui hérite du pom.xml principal.
- Utilisation JUnit pour faire les tests.
- Utilisation Travis pour tester chaque push sur le dépot git.
Utilisation de l'application : Client-Serveur
Exécuter le projet :
Lancer le serveur : aller dans le dossier Serveur et faire :
$ mvn exec:java
Lancer un client : aller dans le dossier Client et faire :
$ mvn exec:java
Pour avoir la liste des commandes client, taper "man"
Pour lancer les tests :
A la racine :
$ mvn test
Pour regénérer la couverture de code :
A la racine :
$ mvn prepare-package
Remarques éventuelles
Il manque principalement la mise en place des tests client-serveur de manière automatique.
Il aurai falut faire un systeme avec 2 dockers. Un pour le client , un pour le serveur. Avec des scripts qui lance des suites de commande et vérifie à chaque fois que le résultat attendu est le bon.
On aurai pu aussi tester l'accés concurent avec plusieurs clients qui se connectent en même temps et qui essayent d'acceder et de modifier les même choses.