Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parSerge Papineau Modifié depuis plus de 9 années
1
MP2P PROTOCOLE & SYSTÈME DE STOCKAGE REDONDANT COACHING 4 – « DRY-RUN » – 18/06/2015 Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
2
Table des matières 1.Présentation 2.Le périmètre projet initialement défini 3.Les détails techniques 4.La plateforme technique 5.Les résultats obtenus 6.Résumé du travail réalisé durant la totalité du projet 7.Taux d’avancement par rapport aux prévisions initiales 8.Démonstration 9.Le suivi des risques 10.Les difficultés rencontrées 11.Ce que nous a apporté ce projet 12.Ce que nous prévoyons pour la suite du projet 13.Conclusion Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
3
1 - Présentation MP2P, QU’EST-CE QUE C’EST ? Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
4
L’équipe Trois étudiants en ING1 surmotivés : Julien DUBIEL Mathieu CORRE Francis VIS OIU MISTRIH Équipe homogène par leurs connaissances et par leur rôle dans le projet Équipe avide de connaissances techniques Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
5
Le projet : MP2P, c’est… Un système de stockage redondant Un système de stockage avec transferts améliorés pour utiliser toute la bande passante du client Un protocole Un couple d’applications Client/Server Un système adapté pour de grosses infrastructures (hébergeurs – Datacenters…) Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
6
Le projet : MP2P, ce n’est pas… Un site web Un front-end Un système sécurisé (Intégrité & disponibilité, mais pas encore confidentialité) Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
7
Les motivations Découvrir par nous même de nouveaux outils de programmation non vus en cours Travailler en groupe dans un projet de longue durée Travailler sur un projet très intéressant et très instructif car choisi selon nos préférences techniques Gérer son propre planning et faire un suivi des risques et des difficultés Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
8
2 - Le périmètre projet initialement défini MP2P, QU’ÉTAIT-IL INITIALEMENT PRÉVU ? Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
9
Rappel du périmètre Notre projet se limitait aux éléments suivants : Upload d'un fichier sans perte de données Download d'un fichier sans perte de données Download d'un fichier avec une augmentation de vitesse Upload d'un fichier avec réplication de X parties sur Y serveurs différents Suppression d'un fichier sans laisser de mémoire occupée inutilement Possibilité d'ajouter autant de serveurs que souhaité Gestion des mises à jour Gestion d'une configuration à l'aide d'un fichier Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
10
3 - Les détails techniques MP2P, COMMENT ÇA MARCHE ? Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
11
MP2P, comment ça marche ? Upload vers l’infrastructure MP2P Download depuis l’infrastructure MP2P Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
12
Détails techniques et technologies utilisées Les outils utilisés: Utilisation du langage C++ Utilisation de la bibliothèque boost::asio Utilisation d’une base de données avec réplication : Couchbase Utilisation d’un build system : CMake Utilisation d’un outil d’intégration continue : TeamCity Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
13
Structure logique des éléments du projet
14
Données à conserver en BDD Nous avons défini que les données suivantes sont à conserver : Storage_sizes (correspondance file_size -> nb_parts) Storage (ID, addr, port, available_space) File (ID, part[] parts, hash, redundancy, size) Part (ID, hash, size, storage[] locations) Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
15
Suivi du bon fonctionnement du projet Utilisation d’un outil d’intégration continue : TeamCity Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
16
4 - La plateforme technique QUELLE PLATEFORME UTILISONS-NOUS ? Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
17
La plateforme technique Pour réaliser nos tests, nous avons utilisé : Runabove (PAAS) pour héberger nos bases de données en réplication Des Raspberry pi déjà en notre possession pour effectuer des tests de transferts Un nom de domaine déjà en notre possession pour simplifier l’accès aux serveurs. Un Kimsufi (serveur dédié) déjà en notre possession pour héberger Teamcity Seul l’hébergement Runabove aura impliqué des coûts supplémentaires non prévus. (2 * 2,88€/mois par instance sur 3 mois, - 10€ offerts, soit 7,28€ de coûts supplémentaires) Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
18
5 - Les résultats obtenus QU’AVONS-NOUS ACCOMPLI ? Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
19
Résultats obtenus Parmi les éléments attendus du périmètre, voici ceux atteints : Upload d'un fichier sans perte de données Download d'un fichier sans perte de données Download d'un fichier avec une augmentation de vitesse Upload d'un fichier avec réplication de X parties sur Y serveurs différents Suppression d'un fichier sans laisser de mémoire occupée inutilement Possibilité d'ajouter autant de serveurs que souhaité Gestion des mises à jour Gestion d'une configuration à l'aide d'un fichier Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
20
6 - Résumé du travail réalisé durant la totalité du projet QUEL TRAVAIL AVONS-NOUS FOURNI ? Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
21
Travail réalisé de manière globale Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH Les développements réalisés : Bibliothèque contenant les fonctionnalités suivantes : Transferts réseau multi-threadés (boost.asio) Traitement des fichiers Un logger Développement d’une application « Master » Développement d’une application « Storage » Développement d’une application « Client » Mise en place et utilisation d’un système de bases de données avec réplication : Couchbase
22
Travail réalisé en détails Mise en place d’un « build system » Créer la bibliothèque d’outils Définir le protocole Division, envoi multi-threadé, reconstitution et écriture d’un fichier (à optimiser) Vérifications du hash d’un fichier avec SHA-1 Lecture d’un fichier de configuration (format JSON) Créer la base de données Mettre en place une base de données Couchbase avec réplication (redondance X) Faire un wrapper au dessus de l’interface pour simplifier les échanges avec le reste du code en cours Créer l’application Serveur Lier la bibliothèque avec serveur Faire l’interface entre le C++ et la base de données Développement de l’application en cours… Créer l’application Client Lier la bibliothèque avec client Développement de l’application en cours… Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
23
7 - Taux d’avancement par rapport aux prévisions initiales OÙ EN SOMMES-NOUS ? Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
24
Avancée du projet par rapport au planning Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
25
8 - Démonstration READY ? Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
26
9 – Le suivi des risques READY ? Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
27
Les risques envisagés Glissement du planning Gestion des erreurs complexe Dépendance bloquante Robustesse de la plateforme Plateforme de test insuffisamment grande pour les tests Coûts directs et indirects liés au projet trop élevés Protocole inadapté Désintéressement personnel d’un ou de plusieurs membres du groupe Désertion d’un des membres du groupe pour cause personnelle Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH Le suivi des risques
28
Les risques rencontrés Glissement du planning à partir du 22/05/15 – toujours en cours Dépendance bloquante à partir du 21/04/15 – résolu Installation de la base de données sur Archlinux problématique -> Résolution : Installation sur des VMs Ubuntu Robustesse de la plateforme à partir du 30/04/15 – résolu Les 3 Raspberry Pi à notre disposition sont insuffisamment puissant pour Couchbase -> Résolution : Installation sur des VMs Ubuntu Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
29
10 – Les difficultés rencontrées QU’EST-CE QUI NOUS A POSÉ PROBLÈME LORS DU DÉVELOPPEMENT ? Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
30
Difficultés rencontrées et résolues Modification du planning La prise en main de boost::asio pour tout ce qui est réseau. Le transfert d’un fichier en plusieurs parties avec reconstitution. La mise en place de la BDD Couchbase. La plateforme de test insuffisante. Séparation de la base de données et du Master. Avoir un protocole valide est plus compliqué que prévu. Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
31
11 – Ce que nous a apporté ce projet QU’EST-CE QUE NOUS A APPORTÉ CE PROJET ? Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
32
Ce que nous avons appris… …du côté technique Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH Conception d’une application scalable. Conception d’un protocole applicatif au dessus de TCP. Des concepts avancés de c++ : threads intégrés dans des objets le modèle producteur/consommateur, la gestion des accès concurrents aux données. L’utilisation de boost::asio : Serveur multi-threadé écoutant sur le même port Réception asynchrone des données Cross-compiling Mise en place d’un cluster Couchbase avec réplication (BDD) Gestion de l’intégration continue
33
Ce que nous avons appris… …du côté gestion de projet Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH Dès qu'un problème émerge, il est important de discuter avec tous les membres du groupe concernés, afin de le résoudre rapidement et d'un commun accord. Il faut se réunir fréquemment pour définir la répartition des tâches afin de ne pas effectuer de travail redondant. Réfléchir techniquement au projet avant de planifier les grandes parties. Gérer des risques et des difficultés, en les prévoyant et en se concertant pour les résoudre. Gérer un planning et l’utiliser le plus fréquemment possible pour éviter les retards.
34
12 – Ce que nous prévoyons pour la suite du projet QUELS CHANGEMENTS ET ÉVOLUTIONS PRÉVOYONS- NOUS ? Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
35
Prévisions pour la suite du projet Coroutines Sécurité (SSL, VPN) Compression (transfert, stockage) Gestion d’utilisateurs DHT Automatisation des tests fonctionnels en intégration continue Google Protocol Buffers Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
36
13 - Conclusion Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
37
Conclusion Un projet qui nous a permis d’apprendre, mettre en place et maintenir des outils que nous n’aurions pas vu dans le cursus EPITA classique. Un sujet passionnant pour nous trois à réaliser sur une longue période qui nous a permis d’apprendre à nous autogérer, à la fois sur la partie gestion de projet et sur la partie technique, et plus précisément sur les décisions techniques. Un projet qui nous a tenu a cœur, et dont la réalisation fut gratifiante Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
38
Des questions ? DES REMARQUES ? Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.