-
Architecture n tiers
Salut
je suis actuellement sur la mise en place d'un système de Video on Demand en local. J'ai un serveur Apache (+ PHP) avec lequel tourne VLC qui met à disposition les flux vidéo. Associée à ça, j'ai une base de données MySQL qui stocke les infos des vidéos et les profils des utilisateurs. Pour finir, j'ai une partie transcodage avec ffmpeg.
Les vidéos proviennent de stations de montage et sont uploadées sur un FTP. Un script transcode tout ça et le média est ajouté aux objets VoD de VLC.
Mon problème : Tout est sur la même machine. C'est trés simpliste et peu optimisé. :?
J'entend parler d'architecture n-tiers. Est-ce une solution? Comment puis-je répartir les tâches?
Merci d'avance
-
Ba en fait, ca dépend de pas mal de choses......
Tu parles de n-tiers, mais qu'est ce que tu proposerais, toi, comme différents tiers ?
Tu as l'air d'avoir bien analysé la situation : as-tu pensé à ce que tu allais gardé et refaire ? Tu as raison sur un point : une seule machine pour de la vidéo, c'est un peu "just" je pense.....
Tu pourrais dissocié Apache/php/mysql de VLC et ffmpeg, les charges de travails étant à mon avis pas du tout du même niveau....
Note : l'architecture n-tiers est une dissociation franche et net des composants.... Mais sache que l'architecture que tu as déjà, EST du n-tiers !!! (on peu même dire que tout site dynamique est un 3-tiers, enfin en ce qui concerne php/mysql.... :D )
-
D'abord merci pour ta réponse.
En fait, je pensais utiliser un poste pour l'upload et le transcodage des videos provenant des stations de montage, et un autre poste avec le trio infernal LAMP et VLC (que j'aimerais bien déporter aussi sur une autre machine :lun: , utile?).
Mais physiquement, comment ça se passe? Si j'ai deux tours, l'une sert de passerelle et posséde deux cartes réseau? Est-ce que ça a encore un rapport avec le n-tiers? :?
Bonne journée
-
Le n-tiers est un concept, rien à voir avec le "hardware".
Que tu ais 1 poste ou 10, le principal est la notion de serveur.
Quand tu mets un serveur WEB sur une machine, tu y accède via sont adresse IP, ce qui sera ton cas.... Si tout est sur la même machine, tu va utiliser un "loopback" (le fameux 127.0.0.1), et si tu es sur plusieurs machines, tu te servira des adresses IP données à tes machines.....
Pourquoi plusieurs cartes ? Le mieux serait d'avoir un routeur, ce qui te permettrais d'avoir un controle plus fin des routes utilisés, et de pourquoi pas "masquer" ta partie traitement (un seul serveur donne vers l'exterieur, l'autre serveur ne sera accessible que via le premier....)
Ton idée de séparation à l'air bonne, mais vérifie les traitements mis en jeux (pour savoir quel puissance te seras utile pour tel ou tel partie) Ainsi, un serveur Apache/PHP/Mysql n'a pas besoin d'énormément de puissance, alors que pour tes traitements vidéo, c'est autre chose !!!! (la dedans, je ne m'y connais pas....)
Pour la connexion entre les deux postes, (ou trois, peu importe...) un routeur et des cables pour chacun, et c'est bon.... Tes requêtes HTTP doivent juste être formé avec l'adresse IP de la mavhine que tu veux atteindre.
Si tu prévois des traitements "bi-latéraux", il faudra que tu pense a mettre le serveur approprié sur les machines..... VLC est un serveur ?
Bref, si tu vois un peu le concept, c'est le principal !!!!:D
-
J'y vois plus clair à présent 8O
L'idée du routeur me semble très appropriée. Des tests sont en prévision pour peu, je vais pouvoir jauger la consommation des traitements.
En ce qui concerne VLC, il peut mettre à disposition une série de flux en RTSP à disposition (VoD), et il intégre même un serveur Web pour les contrôles, en alternative à l'interface Telnet (je crois que c'est ce qui fonctionne avec le Freeplayer de la Freebox). Par contre, il fait pas encore le café... ;)
Merci encore