formations/diiage/C3-6_IoT_Systèmes_distribués/20180302_Évaluation/tp.md

4.8 KiB
Raw Blame History

Évaluation - TP

Objectifs

  1. Implémenter un micro-projet dans un temps donné
  2. Respecter les consignes
  3. S'organiser pour respecter les contraintes de temps et réaliser le contrat
  4. Appliquer les concepts et principes découverts lors des sessions précédentes

Sujet

Concevoir et implémenter une architecture élastique de base de données autour des solutions CockroachDB, Docker et NATS.

Contexte

Un client souhaite mettre en place une infrastructure élastique autour d'une base de données relationnelle.

Son système d'information est dors et déjà basé sur Docker pour la conteneurisation et NATS pour l'échange de messages entre les différents services de son environnement applicatif.

Son objectif est de pouvoir (à travers l'envoi de messages NATS) d'ajouter/supprimer des instances de base de données pour s'adapter automatiquement au niveau de charge de l'environnement applicatif.

Il voudrait qu'on lui fournisse un prototype implémentant les fonctionnalités suivantes:

  • Un script bootstrap-env.sh qui créait un environnement basé sur Docker avec une instance de CockroachDB en mode cluster et un serveur NATS dans des conteneurs différents.
  • Un script add-node.sh qui démarre un nouveau conteneur CockroachDB qui rejoindra automatiquement le cluster déjà existant.
  • Un script remove-node.sh qui arrête un des conteneurs CockroachDB en cours d'exécution si il en reste plus de 1.
  • Un script db-node-add-subscriber.sh qui une fois lancé s'abonne à la publication du sujet db.node.add sur le serveur NATS et invoque automatiquement le script add-node.sh.
  • Un script db-node-remove-subscriber.sh qui une fois lancé s'abonne à la publication du sujet db.node.remove sur le serveur NATS et invoque automatiquement le script remove-node.sh.
  • Un script test.sh qui publie des messages sur le serveur NATS afin de tester le bon fonctionnement du prototype.

Un fichier README devra être fourni décrivant la procédure d'installation et d'utilisation du prototype.

Il voudrait également qu'on lui fournisse un diagramme de séquence pour les développeurs et les administrateurs opérationnels illustrant les processus suivants:

  • Ajout d'une nouvelle instance CockroachDB via un message NATS
  • Suppression d'une instance CockroachDB via un message NATS

Il aimerait enfin qu'on lui présente une potentielle solution, accompagnée d'un diagramme d'activité, pour limiter le nombre maximum d'instances CockroachDB en cours d'exécution à un instant T.

Contraintes concernant l'implémentation

  • Vos scripts doivent utiliser l'interpréteur Bash.
  • Le code doit être commenté.
  • Vous pouvez utiliser nuts (voir la section Release pour télécharger les binaires) pour la partie communication avec le serveur NATS.

Éléments attendus

  • Un répertoire nommé projet contenant les fichiers suivants:
    • bootstrap-env.sh
    • add-node.sh
    • remove-node.sh
    • db-node-add-subscriber.sh
    • db-node-remove-subscriber.sh
    • test.sh
    • README
  • Un fichier PDF nommé document_achitecture.pdf comprennant les diagrammes de séquence ainsi que la proposition de solution pour limiter le nombre maximum d'instances, accompagné de son diagramme d'activité.

Votre TP est à téléverser sur la plateforme de partage dans le répertoire défini par l'intervenant avant la fin de la journée (l'horodatage de création du fichier sur l'application fera foi). Il ne devra pas être modifié après cette journée.

L'archive (zip ou tar.gz, à votre convenance) comprenant vos fichiers devra respecter le format suivant:

[prenom]_[nom]_evaluation.[extension]

Grille de notation page suivante

Grille de notation

Critère Description Points maximum
Respect des consignes Les consignes sont respectées. 3
Implémentation Le prototype fourni est fonctionnel. 6
Documentation Le code est commenté. Le fichier README est clair et exhaustif. 3
Document d'architecture Les diagrammes de séquences sont représentatifs du comportement du prototype. La proposition de solution est claire et argumentée. Le diagramme d'activité illustre correctement la solution présentée. 6
Orthographe et vocabulaire Les règles dorthographe et le choix du vocabulaire est correct (l'usage d'anglicismes ne sera pas pénalisé). 2
Prototypage de la solution proposée Vous avez implémenté la solution de limitation des instances proposée et elle est fonctionnelle. 3 (points bonus)

Le total de vos points ne peut excéder 20.