Soutenance Technique 2
--
Février 2014
Qu'est-ce qu'Onitu ?
- Serveur de synchronisation de fichiers
- Multiples services (Dropbox, Drive, Amazon S3, SSH, FTP…)
- Configurable grâce à des règles
- Utilisation des clients existants
L'architecture
L'architecture est séparée en plusieurs éléments, chacun isolé dans un processus différent :
- Le Referee, qui répartit les fichiers en suivant les règles
-
Chaque Driver fait la liaison entre Onitu et un service tiers
-
La communication interne se fait via ZeroMQ
-
Toutes les données sont stockées dans Redis
L'avancement
-
Les Drivers :
- Fonctionnels : Fichiers locaux, ssh/sftp
- En cours : Dropbox, Google Drive
- En attente : Ubuntu One
- Le Referee gère les règles de configuration simples
- Le cœur du serveur fonctionne, mais est en cours de stabilisation
Les tests fonctionnels
- ~20 tests pouvant être lancé pour chaque Driver
- Intégration continue sur Travis-ci
- Classes d'aide pour écrire des tests
- De nombreux problèmes corrigés grâce aux tests
Les tests de performance
- Possibilité de mesurer aussi bien la vitesse de transfert que la consommation mémoire
- Une même base pour tous les tests
- Plusieurs tests déjà développés
- Réflexion sur le meilleur moyen de lancer automatiquement les mesures
- Mise en place d'un outil de visualisation : Codespeed
Les règles de synchronisation
- Configuration simple en JSON (ou YAML)
- Répartition selon les attributs des fichiers
- Suffisant pour la très grande majorité des use-case
- Flexible de façon à pouvoir rajouter des règles plus complexes dans le futur
Les règles de synchroniSATION
{
"rules": [
{
"match": {"path": "/"},
"sync": ["first_backup", "second_backup"],
},
{
"match": {"path": "/public_data/"},
"sync": ["public_ftp"],
"ban": ["second_backup"],
},
]
}
Title
FONCTIONNALITÉS manquantes
- Suppression de Redis
- Stabilité des tests
- Interface web
- Couche de sécurité
- Règles de configuration avancées
Le futur proche
- Déploiement d'une version 0.1
- Finalisation des drivers en cours
- Suppression de Redis (en cours)
- Amélioration des règles de configuration (en cours)
- Amélioration de la stabilité (en cours)
- Début d'interface Web
Liens utiles
- Github : https://github.com/onitu/onitu
- Issues : https://github.com/onitu/onitu/issues
- Documentation : http://onitu.readthedocs.org/en/latest/
- Site vitrine : http://onitu.github.io
- Travis-CI : https://travis-ci.org/onitu/onitu
- Tests de performance : http://onitu.khady.info
- IRC : #onitu sur Freenode
Onitu - TA2
By Yannick Péroux
Onitu - TA2
Soutenance Technique 2 - Février 2014
- 1,120