1/40 Élasticité des applications à base de services dans le Cloud Mourad Amziani 12 Tarek Melliti 1 Samir Tata 2 1 IBISC, EA4526, Université d'évry Val-d'Essonne, Évry, France 2 UMR CNRS Samovar, Institut Mines-Telecom, Télécom SudParis, Évry, France 16/10/2014
2/40 Introduction Contexte : Environnements Cloud Déploiement des applications à base de services dans le Cloud Attentes des utilisateurs : Disponibilité Qualité de Service Élasticité Intégrité des données etc.
Élasticité : Dénition 3/40
Élasticité : Dénition 4/40
5/40 Élasticité : Dénition Élasticité est une propriété d'un objet qui retrouve sa forme d'origine après avoir été déformé [Shawky 12] Mécanisme d'élasticité fait varier les ressources allouées en fonction de la charge pour satisfaire une QdS [Ali-Eldin12]
6/40 Élasticité : Caractéristiques Portées : Métriques : Politiques : Méthodes : Infrastructure, Plateforme, Application Type de ressource : stockage, CPU, service métier, etc. Qualité et/ou quantité : taille, fréquence, temps de réponse, etc. Coût Manuelle, Automatique Stratégie (réactive, programmée, prédictive, hybride) Duplication/consolidation Redimensionnement Conséquences éventuelles : migration, débordement (Bursting)
Élasticité Verticale 7/40
Élasticité Verticale 8/40
Élasticité Horizontale 9/40
Élasticité Horizontale 10/40
11/40 Élasticité verticale vs. Élasticité horizontale Élasticité verticale : Réingénierie des services/applications (Software -> SaaS) Réingénierie des serveurs d'applications (Platform -> PaaS) Élasticité horizontale : Mécanismes de duplication/consolidation Processus (contrôleur) manipulant le/les systèmes non élastiques "Transformation" automatique de systèmes non élastiques en systèmes élastiques Composition contrôleur et système non élastique
12/40 Problématique : Élasticité dans le cadre des Applications à base de Services (AbSs) Quels mécanismes doit-on mettre en place pour assurer l'élasticité des AbSs? Comment évaluer ces mécanismes d'élasticité? Comment mettre en oeuvre ces mécanismes d'élasticité dans le Cloud?
13/40 L'approche suivit (1/2) Élasticité horizontale au niveau des services Constat 1 : Les serveurs d'applications ne sont pas élastiques [Yangui 11] Constat 2 : Les AbSs, orchestration et/ou chorégraphie, impliquent plusieurs services Constat 3 : Les services au sein de la même application ne subissent pas le même stress
14/40 L'approche suivit (2/2) Approche Formelle : Partir d'un modèle formel des AbSs Mettre en place des mécanismes d'élasticité horizontale (duplication/consolidation) sur ce modèle Mettre en place un modèle pour spécier les stratégies d'élasticité Mettre en place des mécanismes d'évaluation de ces stratégies Outillages : Implémenter le modèle Déployer les mécanismes d'élasticité dénis dans un environnement Cloud
15/40 Modélisation des applications à base de services (1/3) Plusieurs modèles formels ont été proposés pour modéliser les AbSs Nous cherchons un modèle qui supporte : La notion de service élémentaire La notion instance d'appel La notion de charge d'un service => Les réseaux de Petri place/transition (interprétation inversé)
16/40 Modélisation des applications à base de services (2/3)
17/40 Modélisation des applications à base de services (3/3) Un AbS est un Petri net N =< P, T, Pre, Post, P, T >: P : ensemble de places (une place représente un service) T : ensemble de transitions (représentent les transferts des appels entre services élémentaires) Pre : P T {0, 1} Post : T P {0, 1} P P P : une relation d'équivalence sur P T T T : une relation d'équivalence sur T
18/40 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 : doivent intervenir au niveau des services de base (les places) doivent être réversible 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 (=> conservation des traces et de l'accessibilité)
19/40 Duplication d'un service (D(S, p, p c )) Soit un système de RdP S = N, M formé par le réseau N =< P, T, Pre, Post, P, T > (représentant une AbS) et par un marquage M (représentant la charge de l'abs). Soit p un service, la duplication de p dans S donne lieu à un nouveau système S = N, M avec :
20/40 Duplication d'un service (D(S, p, p c )) P = P {p c } T = T T with T = {t c t ( p p ) t c = η(t) Pre : P T {0, 1} Post : T P {0, 1} P P P with P = P {(p, p c )}. t1 t2 p t1 t2 p T T T with T = T {(t, t c ) t c T }. M : P N avec M (p ) = M(p ) if p p c et 0 sinon. Pre (p, t ) = Post (t, p ) = Pre(p, t ) p P t T Post(t, p ) p P t T Pre(p, t) t T t (T \ T ) Post(t, p ) t T t (T \ T ) t [t] T t [t] T p (P \ {p}) p (P \ {p}) Pre(p, t) t T t (T \ T ) Post(t, p) t T t (T \ T ) t [t] T p = p c t [t] T p = p c 0 sinon. 0 sinon.
Consolidation d'un service (C(S, p, p )) Soit S = N, M un système représentant une AbS et soit p, p c deux places de N avec (p, p ) P p p, la consolidation de p dans p, noté C(S, p, p c ), est un système S = N, M avec N : N après la suppression de p et toutes les transitions reliées à p ( (p c ) p c ) M : P N avec M (p) = M(p) + M(p ) et M (p ) = M(p ) si p p. 1/40
22/40 Modélisation des stratégies : Boucle de contrôle Contrôleur générique pour l'élasticité des AbSs
3/40 Modélisation du Contrôleur (1/3) Le Contrôleur applique des opérations de Duplication/Consolidation aux AbSs en fonction (Stratégie) d'indicateurs (les observations) Il permet également de répartir, selon les indicateurs, les charges entre les copies de services : Routing Idée : un contrôleur est un Rdp de haut niveau : Les jetons sont de type Rdp (AbS) Trois transitions : Duplication, Consolidation et Routing Les gardes sur les trois transitions représentent une stratégie d'élasticité
24/40 Modélisation du Contrôleur (2/3)
5/40 Modélisation du Contrôleur (3/3) Exemple d'une stratégie d'élasticité : Ready _D(S, s) : M(s) Max_t(s) s [s] : M(s ) < Max_t(s ) t [s] : M[t. Ready _C(S, s, s) : M(s ) = 0 M(s) Min_t(s) t [s] : M[t. Ready _R(S, t) : s P : M (s) < Max_t(s) avec M[t M.
26/40 É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...
27/40 Évaluation des stratégies : Vérication Boucles d'élasticité Inter-blocage Violation de QdS
28/40 Évaluation des stratégies : Simulation Indicateurs de performance : Charge moyenne des services Consommation de ressources...
29/40 Généralité de notre approche L'AbS est modélisée par un RdP place/transition : Les stratégies sont dénies en fonction de la charge des services (marquages) Certains aspects des AbSs ne sont pas encore pris en compte : Gestions des données et des instances de processus [Amziani 13a] Aspects temporisés des activités des AbSs [Amziani 13b] Le modèle du RdP de haut niveau du contrôleur reste intact, on change simplement le type des jetons
30/40 Implémentation de l'approche (1/3) Slice Décomposer l'application en un ensemble de services Package Packager chaque service dans un conteneur dédié (micro-conteneur) [Yangui 11] Générer les mécanismes d'élasticité. Deploy Déployer les services sur une plateforme de Cloud (COAPS API extension OCCI) [Sellami 13]
31/40 Implémentation de l'approche (2/3)
32/40 Implémentation de l'approche (2/3)
33/40 Implémentation de l'approche (3/3)
34/40 Conclusion (1/2) Notre approche d'élasticité : Basée sur un modèle formel Évaluation des stratégies d'élasticité Transformation automatique des applications non élastiques en applications élastiques exécutables dans le Cloud Perspectives : Aner le modèle (tailles des appels, coût des opérations d'élasticité,...) Langage pour les stratégies d'élasticité (DSL)
35/40 Conclusion (2/2) Pour plus d'informations : 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 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 Mourad Amziani, Tarek Melliti and Samir Tata. Formal Modeling and Evaluation of Stateful Service-based Business Process Elasticity in the Cloud. In CoopIS 2013 Mourad Amziani, Tarek Melliti and Samir Tata. Formal Modeling and Evaluation of Service-based Business Process Elasticity in the Cloud. In IEEE WETICE 2013 Mourad Amziani, Tarek Melliti and Samir Tata. A Generic Framework for Service-based Business Process Elasticity in the Cloud. In BPM 2012
36/40 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. PaaS-independent Provisioning and Management of Applications in the Cloud. IEEE CLOUD'2013
37/40 Modélisation des applications à base de services Cas des services à états
38/40 Modélisation des applications à base de services Cas des AbSs avec des aspects temporisés
9/40 Correction du modèle : relation d'équivalence entre AbSs On dénit deux bijections : ρ 1 : [P] P [P ] P ρ 2 : [T ] T [T ] T Deux systèmes S and S sont équivalents selon ρ 1, et ρ 2, noté S ρ1,2 S, ssi : (a) p P : M([p] P ) = M (ρ 1 ([p] P )) (b) t T : M[t M 1 t ρ 2 ([t] T ) : M [t M 1 N, M 1 ρ1,2 N, M 1 (c) t T : M [t M 1 t ρ 1 2 ([t ] T ) : M[t M 1 N, M 1 ρ1,2 N, M 1
40/40 Correction du modèle : relation d'équivalence entre AbS Un AbS est dit élémentaire ssi p P : [p] = 1 et t T : [t] = 1 Un AbS bien formé est un AbS obtenu par une séquence de Theorem Duplication/Consolidation d'un AbS élémentaire. Soit S = N, M bien formé : p P : S ρ1,2 D(S, p, p c ) p, p P : [p] = [p ] S ρ1,2 C(S, p, p ) Avec : ρ 1 ([p] P ) = [p] P pour chaque p P et ρ 2 ([t] T ) = [t] T pour chaque t T.