Home - Jonathan-Granier/DevOps GitHub Wiki

Projet DevOps : STOCKAGE CLÉ-VALEUR

Fonctionnalités implémentées

  1. Connexion client-serveur
  2. Plusieurs clients pour un serveur (multithread des clients)
  3. Manipulation de structures complexes (incrémentation, ajout/suppression dans une liste)
  4. Cache avec principe LRU (suppressions des plus anciennes données au profit des nouvelles)
  5. 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

  1. Utilisation de Maven pour compiler , exécuter, lancer les tests et faire la couverture de code.
  2. 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.
  3. Utilisation JUnit pour faire les tests.
  4. 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.