Déploiement des composants du projet Netflix c
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