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


Onitu - TA2

By Yannick Péroux

Onitu - TA2

Soutenance Technique 2 - Février 2014

  • 1,070