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

Documents pareils