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 Infrastructure matérielle Logiciels distribués omniprésents Déploiement Installation Configuration Démarrage C est une brique de base pour les taches d administration Gestion des fautes Gestion des performances Mise à jour 03/03/06 3
Problématique Un exemple concret : Serveur J2EE sur cluster Répartiteur de charge Clients Serveur HTTP Serveur de Servlet Serveur d EJB Base de Données Configuration hétérogènes Dépendances multiples 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é Système Middleware Application 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 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 Composition Effectuée de manière non fonctionnelle Contrôle Cycle de vie P L A T H I E R A R C H I Q U E R E F L E X I F Introspection Reconfiguration Exemple : un modèle a plat Apache Tomcat Mysql Worker.properties mysql.properties 03/03/06 6
OSGI Déploiement dynamique de service Installation Gestion des dépendances de package Ajout, Retrait, Mise à jour de service Cycle de vie Chargement/déchargement de code dynamique (java) Lancement 03/03/06 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 Téléchargement des bundles absents ServiceBinder 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 Spécialisable Ordonnancement 03/03/06 15
Les composants Composant Fractal Component interfaces de contrôle interfaces serveur -ou fournies -reçoivent des appels -à gauche par convention T1 i1 T2 i2 T3 i3 interfaces clientes -ou requises -émettent des appels -à droite par convention Component Introspection (des interfaces) LifeCycleController Gestion du cycle de vie (start, stop) ContentController Gestion du contenu d'un composite BindingController Gestion des liaisons des interfaces clientes Attributecontroller Component BindingController LifeCycleController ContentController 03/03/06 16
Composant comme abstraction commune Exemple d abstraction AJP13 connexion APACHE/TOMCAT Apache1/sci21 Tomcat1/sci20 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 1/ Tomcat2/sci22 Apache1.stop() Apache1.unbind("ajp-itf") Apache1.bind( ajp-itf,tomcat2-itf) Apache1.start() 1 / change la config 1DL 1 / GUI : fractal explorer Jade 03/03/06 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 cmp factory node1 cmp factory node1 cmp factory node1 03/03/06 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 Plugger des politiques de déploiement actives et intelligentes Modèle de Component (Fractal - Julia) Wrap des ressources legacy (hard/soft) a un grain arbitraire OSGI Interface homogène d administration Mécanisme de reconfiguration Installation et packaging Déploiement actif Boucle de contrôle Jade QoS-Aware deployer Failure-Aware deployer Repair sensors actuators Common Service (e.g., ADL factory, node discovery, node allocator...) sensors actuators Managed System 03/03/06 21
Élément d architecture Managed Elements Réifie une ressource sous forme de composant Politique de déploiement active Basé sur la connaissance de l infrastructure Boucle de contrôle Nodes Réifie une machine physique Services commun Ressources deployer, node allocation, node discovery, naming Node Controllers Core Services OSGI Factory OBR JMS JNDI OBR Res Deployment Managed_elements apache Heart Beat node Discovery node alloc SR 03/03/06 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 5 Node 1 Node 3 Node 4 Node 5 Switch L5 tomcat CJDBC BD Node 1 Switch L5 tomcat Node 3 Node 4 CJDBC BD Node 5 tomcat BD 03/03/06 24
03/03/06 25 Déploiement orienté réparation Node1 Switch L5 Node3 Apache Node2 Apache Node4 tomcat Node6 CJDBC Node5 tomcat Node7 BD Node8 BD Node1 Switch L5 Node3 Apache Node2 Apache Node4 tomcat Node9 CJDBC Node5 tomcat Node7 BD Node8 BD Deployment Manager sensors actuators Repair System Representation Node Switch Node Apa Node Apa Node Tom Node CJDBC Node tom Node BD Node BD
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 actuators Apache Tomcat CJDBC Node 1 Firewall Firewall Firewall Switch Node 3 Node 4 CJDBC Node 8 Firewall Apache Tomcat Firewall Node 7 CJDBC Firewall Firewall Firewall Node 5 Node 6 Node 9 03/03/06 26
Autres cas applicatif : multimédia portail QoS aware deployment profile Node 1 cpu transcoder1 transcoder2 Node 3 Helix server Node 2 cpu transcoder3 transcoder4 Node 4 Helix server 03/03/06 27
Conclusion Installation, configuration, démarrage Assurer des propriétés non-fonctionnelles Atomicité Sécurité Dynamicité 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 Protection Managed element node1 apache tomcat BD Managed element Jade Common Services Node Discovery Res Deployment JBR SR JNDI JMS Node Allocator node1 apache node2 node3 node4 node5 node6 03/03/06 29
ANNEXE : SmartFrog Un Langage de description Indépendant de fichier de configuration legacy Un modele de composant Compositions Politique de déploiement (un workflows) Cycle de vie du logiciel Une infrastructure de déploiement Déploiement distribué Service commun Naming, sécurité 03/03/06 30
ANNEXE : SF Langage Description déclarative du système à déployer Composant (avec composition) Paramètres, Interconnexion Indépendant d un ordonnancement 03/03/06 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