Élasticité des applications à base de services dans le Cloud
Mourad Amziani12 Tarek Melliti1 Samir Tata2
1 IBISC, EA4526, Université d'Évry Val-d'Essonne, Évry, France
2UMR CNRS Samovar, Institut Mines-Telecom, Télécom SudParis, Évry, France
16/10/2014
Introduction
I Contexte :
I Environnements Cloud
I Déploiement des applications à base de services dans le Cloud
I Attentes des utilisateurs :
I Disponibilité
I Qualité de Service
I Élasticité
I Intégrité des données
I etc.
Élasticité : Dénition
Élasticité : Dénition
Élasticité : Dénition
I Élasticité est une propriété d'un objet qui retrouve sa forme d'origine après avoir été déformé [Shawky 12]
I Mécanisme d'élasticité fait varier les ressources allouées en fonction de la charge pour satisfaire une QdS [Ali-Eldin12]
Élasticité : Caractéristiques
I Portées :
I Infrastructure, Plateforme, Application
I Métriques :
I Type de ressource : stockage, CPU, service métier, etc.
I Qualité et/ou quantité : taille, fréquence, temps de réponse, etc.
I Coût
I Politiques :
I Manuelle, Automatique
I Stratégie (réactive, programmée, prédictive, hybride)
I Méthodes :
I Duplication/consolidation Redimensionnement
Élasticité Verticale
Élasticité Verticale
Élasticité Horizontale
Élasticité Horizontale
Élasticité verticale vs. Élasticité horizontale
I Élasticité verticale :
I Réingénierie des services/applications (Software -> SaaS)
I Réingénierie des serveurs d'applications (Platform -> PaaS)
I Élasticité horizontale :
I Mécanismes de duplication/consolidation
I Processus (contrôleur) manipulant le/les systèmes non élastiques
I "Transformation" automatique de systèmes non élastiques en systèmes élastiques
I Composition contrôleur et système non élastique
Problématique : Élasticité dans le cadre des Applications à base de Services (AbSs)
I Quels mécanismes doit-on mettre en place pour assurer l'élasticité des AbSs ?
I Comment évaluer ces mécanismes d'élasticité ?
I Comment mettre en oeuvre ces mécanismes d'élasticité dans le Cloud ?
L'approche suivit (1/2)
I Élasticité horizontale au niveau des services
I Constat 1 : Les serveurs d'applications ne sont pas élastiques [Yangui 11]
I Constat 2 : Les AbSs, orchestration et/ou chorégraphie, impliquent plusieurs services
I Constat 3 : Les services au sein de la même application ne subissent pas le même stress
L'approche suivit (2/2)
I Approche Formelle :
I Partir d'un modèle formel des AbSs
I Mettre en place des mécanismes d'élasticité horizontale (duplication/consolidation) sur ce modèle
I Mettre en place un modèle pour spécier les stratégies d'élasticité
I Mettre en place des mécanismes d'évaluation de ces stratégies
I Outillages :
I Implémenter le modèle
I Déployer les mécanismes d'élasticité dénis dans un environnement Cloud
Modélisation des applications à base de services (1/3)
I Plusieurs modèles formels ont été proposés pour modéliser les AbSs
I Nous cherchons un modèle qui supporte :
I La notion de service élémentaire
I La notion instance d'appel
I La notion de charge d'un service
I => Les réseaux de Petri place/transition (interprétation inversé)
Modélisation des applications à base de services (2/3)
Modélisation des applications à base de services (3/3)
Un AbS est un Petri netN=<P,T,Pre,Post,≡P,≡T >:
I P : ensemble de places (une place représente un service)
I T : ensemble de transitions (représentent les transferts des appels entre services élémentaires)
I Pre :P ×T → {0,1}
I Post :T ×P → {0,1}
I ≡P⊆P ×P : une relation d'équivalence surP
I ≡T⊆T ×T : une relation d'équivalence surT
Modélisation des mécanismes d'élasticité
Objectif : Mettre en place des opérations sur le modèle (RdP) qui implémentent les mécanismes d'élasticité des ressources i.e
l'extension et la rétraction des ressources en fonction des charges des services élémentaires. Ces mécanismes :
I doivent intervenir au niveau des services de base (les places)
I doivent être réversible
I ne doivent pas changer la sémantique de l'AbS :
Prop 1 Les opérations d'élasticité ne doivent pas créer ni supprimer des appels (=> conservation des jetons)
Prop 2 Les opérations d'élasticité ne doivent pas modier l'ordre d'exécution des services (=>
Duplication d'un service ( D (S, p, p
c) )
Soit un système de RdPS =hN,Miformé par le réseau
N=<P,T,Pre,Post,≡P,≡T >(représentant une AbS) et par un marquageM (représentant la charge de l'AbS).
Soitp un service, la duplication de p dansS donne lieu à un nouveau systèmeS0=hN0,M0i avec :
Duplication d'un service ( D (S, p, p
c) )
I P0=P∪ {pc}
I T0=T∪T00withT00={tc|t∈(•p∪p•)∧tc=η(t)
I Pre0:P0×T0→ {0,1}
I Post0:T0×P0→ {0,1}
I ≡P0⊆P0×P0with≡P0=≡P∪{(p,pc)}.
I ≡T0⊆T0×T0with≡T0=≡T∪{(t,tc)|tc∈T00}.
I M0:P0→NavecM0(p0) =M(p0)ifp06=pcet 0 sinon.
p t1
t2
p t1
t2
Pre0(p0,t0) =
Pre(p0,t0) p0∈P∧t0∈T Pre(p0,t) t∈T∧t0∈(T0\T)
∧t0∈[t]≡ T0
∧p0∈(P\ {p})
Post0(t0,p0) =
Post(t0,p0) p0∈P∧t0∈T Post(t,p0) t∈T∧t0∈(T0\T)
∧t0∈[t]≡ T0
∧p0∈(P\ {p})
Consolidation d'un service ( C (S , p, p
0) )
SoitS =hN,Mi un système représentant une AbS et soitp,pc deux places deN avec(p,p0)∈≡P ∧p6=p0, la consolidation dep0 dansp, notéC(S,p,pc), est un systèmeS0 =hN0,M0i avec
I N0 :N après la suppression dep0 et toutes les transitions reliées à p0( (pc)•∪•pc)
I M0 :P0→Navec M0(p) =M(p) +M(p0) et M0(p00) =M(p00) sip00 6=p.
Modélisation des stratégies : Boucle de contrôle
Contrôleur générique pour l'élasticité des AbSs
Modélisation du Contrôleur (1/3)
I Le Contrôleur applique des opérations de
Duplication/Consolidation aux AbSs en fonction (Stratégie) d'indicateurs (les observations)
I Il permet également de répartir, selon les indicateurs, les charges entre les copies de services : Routing
I Idée : un contrôleur est un Rdp de haut niveau :
I Les jetons sont de type Rdp (AbS)
I Trois transitions : Duplication, Consolidation et Routing
I Les gardes sur les trois transitions représentent une stratégie d'élasticité
Modélisation du Contrôleur (2/3)
Modélisation du Contrôleur (3/3)
Exemple d'une stratégie d'élasticité :
I Ready_D(S,s) :M(s)>Max_t(s)∧@s0 ∈[s] :M(s0)<
Max_t(s0)∧ ∃t ∈• [s] :M[ti.
I Ready_C(S,s0,s) :M(s0) =0∧M(s)6Min_t(s)∧@t∈• [s] :M[ti.
I Ready_R(S,t) :∀s ∈P :M0(s)<Max_t(s)avecM[tiM0.
Évaluation des stratégies : SNAKES Toolkit
n = PetriNet("Contrôleur")
n.add_place(Place("BP", [token_net("SBP")])) ...Duplication
n.add_transition(Transition("Dup", Expression("ready_D(S,s)"))) n.add_input("BP", "Dup", Variable("S"))
n.add_output("BP", "Dup", Expression("D(S,s,new_copy(S,s))")) ...Consolidation
...
Routing ...
Évaluation des stratégies : Vérication
I Boucles d'élasticité
I Inter-blocage
I Violation de QdS
Évaluation des stratégies : Simulation
Indicateurs de performance :
I Charge moyenne des services
I Consommation de ressources
I ...
Généralité de notre approche
I L'AbS est modélisée par un RdP place/transition :
I Les stratégies sont dénies en fonction de la charge des services (marquages)
I Certains aspects des AbSs ne sont pas encore pris en compte :
I Gestions des données et des instances de processus [Amziani 13a]
I Aspects temporisés des activités des AbSs [Amziani 13b]
I Le modèle du RdP de haut niveau du contrôleur reste intact, on change simplement le type des jetons
Implémentation de l'approche (1/3)
Slice
I Décomposer l'application en un ensemble de services Package
I Packager chaque service dans un conteneur dédié (micro-conteneur) [Yangui 11]
I Générer les mécanismes d'élasticité.
Deploy
I Déployer les services sur une plateforme de Cloud (COAPS API extension OCCI) [Sellami 13]
Implémentation de l'approche (2/3)
Implémentation de l'approche (2/3)
Implémentation de l'approche (3/3)
Conclusion (1/2)
Notre approche d'élasticité :
I Basée sur un modèle formel
I Évaluation des stratégies d'élasticité
I Transformation automatique des applications non élastiques en applications élastiques exécutables dans le Cloud
Perspectives :
I Aner le modèle (tailles des appels, coût des opérations d'élasticité,...)
I Langage pour les stratégies d'élasticité (DSL)
Conclusion (2/2)
I Pour plus d'informations :
I Mohamed Mohamed, Mourad Amziani, Djamel Belaïd, Samir Tata and Tarek Melliti. An Autonomic Approach to Manage Elasticity of Business Processes in the Cloud. To appear in Future Generation Computer Systems published by Elsevier
I Mourad Amziani, Kaïs Klai, Tarek Melliti and Samir Tata.
Time-based Evaluation of Service-based Business Process Elasticity in the Cloud. In CloudCom 2013
I Mourad Amziani, Tarek Melliti and Samir Tata. Formal Modeling and Evaluation of Stateful Service-based Business Process Elasticity in the Cloud. In CoopIS 2013
I Mourad Amziani, Tarek Melliti and Samir Tata. Formal Modeling and Evaluation of Service-based Business Process
Références
[Shawky 12] D. M. Shawky and A. F. Ali. Dening a Measure of Cloud Computing Elasticity, ICSCS, 2012
[Ali-Eldin 12] Ali-Eldin et al. An adaptive hybrid elasticity controller for cloud infrastructures, IEEE MOM, 2012
[Amziani 13a] M. Amziani, T. Melliti and S. Tata Formal Modeling and Evaluation of Stateful Service-based Business Process Elasticity in the Cloud, OTM/CoopIS 2013
[Amziani 13b] : M. Amziani, K. Klai, T. Melliti and S. Tata, Time-based Evaluation of Service-based Business Process Elasticity in the Cloud, IEEE CloudCom, 2013
[Yangui 11] S. Yangui, M. Mohamed, S. Tata and S. Moalla.
Scalable service containers. IEEE CloudCom 2011
[Sellami 13] M. Sellami, S. Yangui, M. Mohamed and S. Tata.
Modélisation des applications à base de services
Cas des services à états
Modélisation des applications à base de services
Cas des AbSs avec des aspects temporisés
Correction du modèle : relation d'équivalence entre AbSs
On dénit deux bijections :
I ρ1: [P]≡P →[P0]≡P0
I ρ2: [T]≡T →[T0]≡T0
Deux systèmesS andS0 sont équivalents selonρ1, et ρ2, noté S ∼ρ1,2 S0, ssi :
(a) ∀p∈P :M([p]≡P) =M0(ρ1([p]≡P)) (b) ∀t∈T :M[tiM1 ⇒ ∃t0∈ρ2([t]≡T) :
M0[t0iM10 ∧ hN,M1i ∼ρ1,2 hN0,M10i (c) ∀t0 ∈T0 :M0[t0iM10 ⇒ ∃t ∈ρ−21([t0]≡T0) :
0 0
Correction du modèle : relation d'équivalence entre AbS
I Un AbS est dit élémentaire ssi ∀p ∈P :|[p]|=1 et
∀t ∈T :|[t]|=1
I Un AbS bien formé est un AbS obtenu par une séquence de Duplication/Consolidation d'un AbS élémentaire.
Theorem
SoitS =hN,Mi bien formé :
I ∀p ∈P :S ∼ρ1,2 D(S,p,pc)
I ∀p,p0 ∈P : [p] = [p0]⇒S ∼ρ1,2 C(S,p,p0)
Avec :ρ1([p]≡P) = [p]≡P0 pour chaque p∈P etρ2([t]≡T) = [t]≡T0