Déploiement dans Jade
Transcription
Déploiement dans Jade
Introduction au Déploiement
Noël De Palma - Projet SARDES - INRIA - IMAG LSR
Remerciement à d. donsez
03/03/06
PLAN
Définition et problématique
OSGI
FRACTAL
JADE
Conclusion
03/03/06
2
Définition
Environnement distribué complexe
Déploiement
Infrastructure matérielle
Logiciels distribués omniprésents
Installation
Configuration
Démarrage
C’est une brique de base pour les taches d’administration
03/03/06
Gestion des fautes
Gestion des performances
Mise à jour
3
Problématique
Un exemple concret : Serveur J2EE sur cluster
Répartiteur de
charge
Clients
Serveur HTTP
Serveur d’EJB
Base de Données
Configuration hétérogènes
Dépendances multiples
Serveur de Servlet
Matérielle, packaging, services, démarrage
Pannes ?
Performances ?
Mise a jour ?
Terminaison ?
03/03/06
4
Besoins
Déploiement initial de l’application
« Composant » patrimoniaux
Différents niveaux de granularité
Insertion/suppression d’un composant dans une infrastructure
existante
Ajouter des propriétés au déploiement
Atomicité
Sécurité
Passage a l’échelle
Placement actif et intelligent
Connaissance de l’environnement
Système
Middleware
Application
Matériel et logiciel
=> C’est une application répartie complexe
03/03/06
5
Composant logiciel : définition générale
Élément logiciel à grain arbitraire
Liaison
Effectuée de manière non fonctionnelle
Contrôle
P
L
A
T
Composition
Effectuée de manière non fonctionnelle
H
I
E
R
A
R
C
H
I
Q
U
E
R
E
F
L
E
X
I
F
Cycle de vie
Introspection
Reconfiguration
Exemple : un modèle a plat
Apache
Tomcat
Worker.properties
03/03/06
Mysql
mysql.properties
6
OSGI
Déploiement dynamique de service
Installation
Ajout, Retrait, Mise à jour de service
03/03/06
Gestion des dépendances de package
Cycle de vie
Chargement/déchargement de code dynamique (java)
Lancement
7
Vue en couche
03/03/06
8
Structure d’un bundle = 1 jar
03/03/06
9
Cycle de vie d’un bundle
03/03/06
10
Liaison entre services
03/03/06
11
Liaison entre services
03/03/06
12
Liaison entre services
03/03/06
13
OSGI : bilan
Installation, ajout/retrait de service
Modèle plat
Liaison explicite
Besoin de service associé (spec v4)
OBR
ServiceBinder
Téléchargement des bundles absents
Expression non fonctionnelle des dépendances de services
Pas de vision globale
03/03/06
14
Fractal
Modèle de composant multi-cible et réflexif (java, C, .net)
Composition, liaison, introspection et contrôle
Déploiement
Programmatique
Descriptif
Langage de description Extensible (ADL)
Vue distribuée globale
Infrastructure de déploiement
03/03/06
Spécialisable
Ordonnancement
15
Les composants
Composant Fractal
Component
interfaces serveur
-ou fournies
-reçoivent des appels
-à gauche par convention
Component
BindingController
LifeCycleController
ContentController
Gestion du cycle de vie (start, stop)
Gestion du contenu d'un composite
BindingController
Introspection (des interfaces)
ContentController
interfaces clientes
-ou requises
-émettent des appels
-à droite par convention
T2 i2
LifeCycleController
T3 i3
Component
T1 i1
interfaces de contrôle
Gestion des liaisons des interfaces clientes
Attributecontroller
03/03/06
16
Composant comme abstraction commune
Exemple d’abstraction
AJP13 connexion APACHE/TOMCAT
Apache1/sci21
1/ log on sci21
2/ stop the apache server (script shutdown)
3/ update config file
4/ restart the apache server (script httpd)
workers.tomcat_home=/tmp/depalma_tomcat_local
workers.java_home=/cluster/java/j2sdk1.4.2_01
ps=/
worker.worker.port=8098
worker.worker.host=sci20
worker.worker.type=ajp13
worker.worker.lbfactor=100
worker.list=worker, loadbalancer
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=worker
Worker.properties
03/03/06
Tomcat1/sci20
Tomcat2/sci22
1/
Apache1.stop()
Apache1.unbind("ajp-itf")
Apache1.bind(“ajp-itf“,tomcat2-itf)
Apache1.start()
1’/ change la config 1DL
1’’/ GUI : fractal explorer
Jade
17
Fractal ADL
<definition name="BasicClientServer">
<interface name="m" role="server" signature="pkg.Main" >
<component name="client" definition="BasicClient"/>
<component name="server" definition="BasicServer"/>
<binding client="this.m" server="client.m"/>
<binding client="client.s" server="server.s"/>
<virtualnode name=“node1”/>
</definition>
m
m
client
s
s
server
BasicClientServer
03/03/06
18
Usine ADL
Usine pour le déploiement
Loader
ADL
Factory
Compiler
Task
Backend
Task
Scheduler
03/03/06
cmp
factory
cmp
factory
cmp
factory
node1
node1
node1
19
Fractal : bilan
Modèle composite et réflexif
Ordonnancement spécialisable
Déploiement distribué
Pas d’installation,ni de gestion de dépendances
03/03/06
20
JADE
Fonctionnalité d’administration autonome
Modèle de Component (Fractal - Julia)
Wrap des ressources legacy (hard/soft) a un grain arbitraire
Interface homogène d’administration
Mécanisme de reconfiguration
OSGI
Plugger des politiques de déploiement actives et intelligentes
Installation et packaging
Déploiement actif
Boucle de contrôle
Jade
QoS-Aware deployer
(e.g., ADL factory, node
discovery, node allocator...)
Failure-Aware deployer
Repair
sensors
sensors
Common Service
actuators
actuators
Managed System
03/03/06
21
Élément d’architecture
Managed Elements
Politique de déploiement active
Basé sur la connaissance de l’infrastructure
Boucle de contrôle
Nodes
Réifie une ressource sous forme de composant
Réifie une machine physique
Services commun
Ressources deployer, node allocation, node discovery, naming …
Node
Core Services
Controllers
OSGI
OBR
Factory
Managed_elements
apache
03/03/06
JMS
JNDI
node
Discovery
OBR
node
alloc
Res
Deployment
SR
…
Heart
Beat
22
Scénario
J2EE cluster
Déploiement orienté QoS
Déploiement orienté réparation
Déploiement orienté protection
Multimédia
03/03/06
23
Déploiement orienté QoS : dimensionnement dynamique
Objective
Dimensionnement automatique de l’infrastructure.
QoS-Aware Deployment
Sizing
sensors
actuators
Node 3
Node 1
Switch
L5
Node 3
tomcat
Node 4
CJDBC
Node 5
BD
Node 1
tomcat
Node 4
Switch
L5
Node 3
tomcat
…
03/03/06
Node 5
BD
CJDBC
Node 5
BD
…
24
Déploiement orienté réparation
Deployment Manager
System Representation
Repair
Node
Switch
Node
Node
Apa
Tom
Node
Node
BD
CJDBC
sensors
Node2
actuators
Node4
Apache
tomcat
Node6
BD
Switch
L5
03/03/06
tom
Node
Node
Node2
Node7
Node1
Apa
Node
BD
Node 4
Node7
Node1
Apache
tomcat
Node9
BD
Switch
CJDBC
L5
Apache
tomcat
Node8
Node3
Node5
BD
CJDBC
Apache
tomcat
Node8
Node 3
Node5
BD
25
Déploiement orienté Protection
Auto-configuration de parefeux lors du déploiement des middleware
Canaux de communication valides
Auto-configuration des ports
Cohérence lors du démarrage ou de l’arrêt d’un serveur
protection
sensors
Node 1
Switch
actuators
Apache
Tomcat
CJDBC
Firewall
Firewall
Firewall
Node 3
Node 4
Node 8
Firewall
Firewall
03/03/06
CJDBC
Node 7
Apache
Tomcat
Firewall
Firewall
Firewall
Node 5
Node 6
Node 9
CJDBC
26
Autres cas applicatif : multimédia
QoS aware
deployment
portail
Node 1
cpu
transcoder1
transcoder2
profile
Node 3
Helix
server
Node 2 cpu
Node 4
transcoder3
Helix
server
transcoder4
03/03/06
27
Conclusion
Installation, configuration, démarrage
Assurer des propriétés non-fonctionnelles
Dynamicité
Atomicité
Sécurité
…
Ajout/retrait de service
Déploiement actif
C’est une application répartie complexe
Besoin d’un framework de déploiement extensible
03/03/06
28
ANNEXE : Architecture de JADE
Politique de gestion
Reparation
QoS
tomcat
BD
Node Discovery Res Deployment
apache
03/03/06
node2
JBR
…
Managed element
node1
…
Jade Common Services
Managed element
node1 apache
Protection
node3
SR
JNDI
node4 node5
JMS
node6
Node Allocator
…
29
ANNEXE : SmartFrog
Un Langage de description
Un modele de composant
Indépendant de fichier de configuration legacy
Compositions
Politique de déploiement (un workflows)
Cycle de vie du logiciel
Une infrastructure de déploiement
Déploiement distribué
Service commun
03/03/06
Naming, sécurité …
30
ANNEXE : SF Langage
Description
03/03/06
déclarative du système à déployer
Composant (avec composition)
Paramètres, Interconnexion
Indépendant d’un ordonnancement
31
ANNEXE : SmartFrog component model
Politique de déploiement (bib de composant)
Séquence, parallèle, ordonnancement spécifique …
Cycle de vie du logiciel
=> déploiement distribué hiérarchique parallèle
03/03/06
32
ANNEXE : Infrastructure de déploiement
03/03/06
33