Académique Documents
Professionnel Documents
Culture Documents
CDC Appli Ouvaton PDF
CDC Appli Ouvaton PDF
Introduction
Lobjet de ce cahier des charges est dune part de dfinir la liste des
fonctionnalits dvelopper afin de disposer dun logiciel permettant de grer
compltement la plate-forme dhbergement cooprative Ouvaton, autant pour ce
qui est de laccs des utilisateurs, que des administrateurs, de la gestion des
ressources dune part, et de la facturation, le paiement, et la comptabilit des
recettes dautre part.
Ce cahier des charges spcifie galement les diffrentes phases du projet, quil
sera obligatoire de suivre afin dassurer une transition douce entre Gloux et le
nouveau systme. Ouvaton est effectivement un service dhbergement
actuellement en production, avec plus de 5000 sites web, 6000 adresses email,
3000 bases mysql, etc ... Le futur logiciel permettant de grer cette plate-forme doit
donc permettre un passage sans migration (interruption de service ncessitant le
lancement de scripts de migration, reconfigurations diverses irrversibles pour lancer
la production du nouveau logiciel). La transition doit tre douce, les deux logiciels
(Gloux et le logiciel crer) pourront fonctionner cte cte un certain temps, ce qui
nous donnera, tous, utilisateurs, dveloppeurs, administrateurs, les moyens de
dbuguer le nouveau logiciel, de rdiger la documentation utilisateurs,
daccompagner les cooprateurs dans le nouveau fonctionnement du logiciel, avec
tout le temps et la tranquillit ncessaires.
Ce cahier des charges spcifie aussi la mthode selon laquelle le projet devra
tre conduit. Outils logiciels, de gestion de projet, documentation, livraison du code
source et de la documentation pour dveloppeur...
. Recration de Gloux
La premire phase du projet consiste redvelopper, depuis le dbut, un logiciel
permettant la gestion de la plate-forme Ouvaton. Gloux, le logiciel actuel, a t livr
sans documentation et abandonn par ses dveloppeurs initiaux. Le code est
opaque et pratiquement sans commentaires. De nombreuses lourdeurs font quil a
finalement t jug plus efficace sur le long terme, de redvelopper un logiciel
similaire plutt que de maintenir un systme si obscur.
Le temps de faire le tour des fonctionnalits, corriger les bugs, critiquer et amliorer
lergonomie, rdiger la documentation utilisateurs, et accompagner les cooprateurs
dans la migration, on peut raisonnablement penser que cette phase stalera sur un
deux mois.
Une fois les modules dvelopps, les premiers testeurs seront les administrateurs
de la plateforme, qui sont les personnes qui ont la meilleure exprience du
fonctionnement de Gloux, de ses forces, et de ses faiblesses. Une fois l'quipe
d'administration satisfaite du
fonctionnement du nouveau module, il sera mis en service de faon ouverte, et un
petit groupe de cooprateurs motivs mais moins expriments, pourra son tour,
utiliser le module. Ce deuxime chantillon d'utilisateurs moins impliqu dans le
fonctionnement
interne d'Ouvaton, plus "naf" concernant les aspects techniques et administratifs,
apportera certainement des remarques plus centres sur l'ergonomie et le caractre
intuitif et comprhensible de l'outil. Une fois les remarques de ce second panel
prises en compte, et mises en application, le module pourra enfin tre ouvert tous
les cooprateurs.
Le transfert dune ressource dune plaque de base une autre sera tudi. Il sera
implment dans les cas simples comme le transfert dune adresse email ou dun
espace web en @ouvaton.org. Pour les ressources associes un domaine autre,
les implications en terme de cohrence des donnes en base, ainsi que des fichiers
sur les serveurs, sont trop complexes pour sintgrer dans le cadre de ce cahier des
charges.
Il peut sembler idiot de devoir dj r-crire requtes SQL et code PHP sur un projet
tout juste mis en production, mais cest le prix payer pour :
- dans un premier temps, permettre le fonctionnement en parallle de Gloux et du
nouveau logiciel, ce qui nous autorise la transition douce de Gloux au nouveau
logiciel.
- dans un second temps, aboutir un logiciel simple maintenir, travaillant sur une
base de donnes lisible.
Lobjectif est ainsi de ne pas ajouter un ticket dentre trop coteux aux personnes
qui voudraient sapproprier et faire voluer lapplication. De nombreux framework
(Symfony, Zend Framework, ...) obligent hlas un gros effort dauto-formation de la
part de nombreux dveloppeurs.
Subversion et Trac
Le code du logiciel sera livr sur le systme de versioning Subversion. Un Trac
permettra dajouter une interface web permettant de grer le projet : consultation du
source, ajout de ticket, wiki pour la documentation, ...
Chaque bug sera ainsi consultable par tous, ainsi que chaque commit sur le code,
rendant ainsi lvolution du projet visible autant par lquipe dadministration
dOuvaton, que par les cooprateurs eux-mmes.
Gestion web
Ce module permet aux cooprateurs de grer leur hbergement web, et aux
administrateurs dOuvaton, de superviser les hbergements des cooprateurs. Il
manipule les espaces web (virtual hosts), les comptes FTP, les comptes MySQL, les
DNS et les sauvegardes des utilisateurs. Ce module permet galement de transfrer
son compte utilisateur du cluster vers un des nodes isols, et donnera lutilisateur
une vision synthtique de son utilisation disque, de faon laider mieux grer son
hbergement.
Les scripts (souvent des shell scripts) qui permettent la cration effective des
ressources (utilisateurs systme / bases MySQL, utilisateurs FTP, rpertoire de
vhost, ...) ont majoritairement t raliss par la socit Diabolocom, qui effectue
linfogrance de la plateforme dOuvaton. Les scripts accessibles Ouvaton devront
tre disponibles dans le dpt des sources. Linterface avec ces scripts sera souvent
effectuer en accord avec linfogrance, de faon ce que les commandes
envoyes par les cooprateurs soient mises en pratique par le systme. Ces scripts
ne seront pas r-crire, mais simplement r-utiliser.
Il est noter quOuvaton est une plateforme en cours de production hbergeant plus
de 5000 sites, totalisant plus de 2 millions de hits par jour, pour un trafic quotidien
dpassant les 30 Go. De nombreux scripts, librairies, outils, qui fonctionnent dans un
environnement lger ne comportant que quelques dizaines de sites, cassent
souvent lorsque le nombre de sites grer tourne autour de 5000, avec presque
autant dutilisateurs.
Comptes FTP :
Ce sous-module devra permettre de grer les diffrents comptes FTP du
cooprateur. Cration, listing, modification (du mot de passe ou du rpertoire racine)
et ventuellement suppression. Il existe trois types de comptes FTP :
1 le compte matre associ lhbergement complet du cooprateur. Ce
compte permet davoir accs tous les sites du cooprateur.
2 les comptes associs chaque espace web.
3 les comptes supplmentaires, qui ne sont associs aucun site
particulier, mais permettent de disposer dun accs restreint une partie dun
site.
Seuls les comptes supplmentaires sont supprimables. Les comptes associs un
espace web sont supprims lors de la suppression de lespace concern. Les
comptes matres sont supprimer lorsque le cooprateur ferme son hbergement.
Bases MySQL :
Ce sous-module permet chaque utilisateur de grer sa ou ses bases MySQL. Il
permet le listing, la cration et la modification des bases, laccs phpMyAdmin
pour travailler dessus.
La cration dune base ncessite lachat dune option base MySQL. Il sera donc
ncessaire de le mentionner correctement aux cooprateurs, et dajouter toute
nouvelle base la liste des ressources facturer la prochaine date anniversaire du
cooprateur.
Laccounting disque des bases mysql sera galement effectuer, ainsi que
laffichage synthtique de lespace disque utilis par toutes les bases, afin quune
fois de plus, les cooprateurs puissent surveiller lutilisation de leurs quota disque.
Les slow queries seront aussi afficher aux cooprateurs, ce qui leur permettra de
diagnostiquer leurs requtes mal optimises.
Noms de Domaines :
Ce sous-module permet aux cooprateurs de grer leurs noms de domaine :
ajouter / modifier / supprimer des domaines, grer les enregistrements (sous-
domaines, A, CNAME, MX records, ...), le TTL, ...
Ouvaton utilisant MyDNS, la gestion des noms de domaine seffectue principalement
sur deux tables (soas et rrs) de la base de Gloux.
La rservation propre de noms de domaine auprs dun registrar nest pas
implmenter.
Sauvegardes :
Ce sous-module permet chaque utilisateur de programmer des sauvegardes
rgulires (quotidiennes, hebdomadaires ou mensuelles) de nimporte lesquels de
ses rpertoires et bases de donnes. Il faudra donc implmenter les possibilits
dajouter, modifier et supprimer des sauvegardes automatiques. Lespace disque
pris par ces sauvegardes sera comptabilis et restitu aux cooprateurs de faon
synthtique.
Tableau de bord :
Ce module grera correctement une priode dessai dun mois pour chaque nouvel
utilisateur. La cration dun nouveau compte utilisateur ne devra plus forcment
ncessiter de validation manuelle.
Il est souligner quOuvaton vendant des services stalant sur deux annes,
chaque paiement devra tre correctement rparti entre le produit de lanne N et les
produits constats davances de lanne N+1. Dautre part, comme de nombreuses
factures sont aussi payes avec un peu, voir beaucoup de retard, chaque paiement
sera aussi susceptible dtre partiellement allou aux produits dexploitation de
lanne N-1. Le dveloppement de cette rpartition des encaissements sur les
annes N-1, N et N+1 sera mticuleusement vrifi, car il en va de la fiabilit de la
comptabilit dOuvaton.
Les chiffres manipuls par le module facturation devront pouvoir tre exports dans
un format compatible Open Office.
La modification du taux de TVA applicable chaque produit devra tre possible sans
introduire de bug dans la comptabilit antrieure.
Dautre part, il ne sera pas forcment ncessaire de reprendre une gestion des
listes de droits daccs (ACL) aussi complexe que celle de Gloux. Un systme plus
clair pourra tre envisag.
D'autres modules sont imaginer, mais les deux modules prsents ici sont la fois
importants pour le service qu'ils rendront aux cooprateurs, ainsi que pour les
nouvelles rentres qu'ils apporteront la cooprative, c'est pourquoi ils seront
traiter de faon prioritaire.