Déploiement des composants du projet clone de Netflix

 

Cet article est la suite du précédant

 

Suite à la modélisation UML, nous allons utiliser 4 diagrammes UML sur les 9 .

 

Qu'est-ce qu'un composant? C’est une unité de déploiement, deployment unit.

 

Quelquechose qui s’installe

Un APK est une unité de deploiement, un MSI aussi, un WAR aussi. Un jar aussi.

C’est tout ce qui faut déployer

Ce qu’on utilise sans forcement l’implementer

Jar executable (qui possede une classe main) : tomcat 9.0

Un executable : Apache 2.4

Apache en cluster marche très très bien, il est écrit en C. On peut en faire un cluster.

Un executable : ffmpeg 4.5

La flèche indique que le composant dépend ce delui qui est fléché

Les 2 composants doivent etre déployés sur la même machine

Qu’est-ce qu’un composant ? Une partie de l’applications

Composants indépendants : très fortement découplés

Exemple de composant Netflix : la base de donnée

Grandes briques de programmes distibués.

 

 

Diagramme de déploiements

 

Il utilise l’ensemble des composants

Tous les composants qui sont dans le diagramme de déploiements sont dans le diagramme de composants

 

Une question? Posez-la ici

 

Interconnexion réseau entre 2 composants

RMI c’est bien sur un réseau local, mais sur un réseau complexe NAT, ca ne marchera plus.

Corba serait possible, mais c’est comme écraser une mouche avec un marteau

Web service, on va faire du REST !

On peut utiliser activeMQ

On va utiliser zookeeper /

SpringREST = permet de faire des services REST en java autonome sans avoir un TOMCAT

On aurait pu utiliser CXF

Il faut etablir un protocole de communcation : des webethods de type get/post…

Il faut aussi définir le contenu : en quoi encoder ?

Assemblages de type statique

Création d’un assemblage entre 2 composants

ASSEMBLY : 2 composants dans la même JVM, quand on appelle une classe Java depuis un autre programme

FrontEndResource.java

A base de JaxRS

Création d’un 3eme nœud qui est le même que le nœud 2

-driver service

-ffmpeg

-JRE

Pourquoi ?

Les avantages des systèmes distribués

 

-FAILOVER

 

backup en cas de problème sur la machine 2, gestion de pannes

 

-LOAD BALANCING

 

Répartition des calculs de compression, performance

 

-SCALABILITE

 

rapidité de la mise à disposition

 

-ASYNCHRONISME

 

le traitement de conversion est décoréllé de la requete. La requete arrive et le traitement est établi entre les machines. Pour que le user puisse continuer à travailler.

 

-PARALLELISME

 

Traitements multiples en même temps

 

 Besoin d'aide en infrastructure distribuée?

Remplissez ce formulaire