• Recherche,

PALESANDRO Alex

Deployment and Security supervision for multi-cloud architectures

Publié le 21 mai 2019 Mis à jour le 21 mai 2019

Thèse en Info-mathématiques, soutenue le 9 novembre 2018.

Le Cloud Computing représente une des plus importantes avancées numériques de ces dix dernières années. Le modèle de service offert par le cloud computing est basé sur une allocation dynamique et à la demande des ressources et une facturation au plus juste de leur utilisation. Plusieurs catégories d’application sont en train de migrer vers le cloud (par exemple : les NFV et les applications du Big Data). D’autres domaines applicatifs, soumis à une législation plus stricte, sont plus frileux. Leurs exigences souvent liées à des problématiques de sécurité et/ou à la non satisfaction par les ressources proposées par un cloud unique, peuvent trouver des réponses dans l’utilisation conjointe de plusieurs fournisseurs de cloud computing (CSPs).
L’exploitation simultanée, flexible, efficace et simplifiée de plusieurs clouds requiert des propriétés qui assurent sa viabilité et son acceptation. Elle doit tout d’abord être adoptée par les fournisseurs de clouds qui proposent des offres hétérogènes et non interopérables et qui souvent pour des raisons commerciales, ne sont pas disposés à coopérer pour faciliter le multi-cloud « à la carte » ; mais aussi se démocratiser auprès des consommateur de services cloud dont les contraintes sont le temps de mise en service et le besoin d’exprimer les besoins en termes de services. Ils doivent être en mesure de les configurer de manière simple et transparente et permettre la définition de configurations de déploiement adaptées aux besoins de chaque consommateur, (comparables à celles offertes par les clouds privés) et optimisées pour tirer profit des spécificités de chaque fournisseur de cloud. Ces infrastructures ainsi déployées doivent être contrôlables sans pour autant mettre en péril les mécanismes d’isolation offerts par les systèmes de cloud.
Dans cette thèse, nous proposons un framework permettant d’exprimer indépendamment de toute solution sous-jacente les besoins en services et en fournisseurs de cloud, et de générer efficacement des infrastructures de déploiement extensibles, adaptatives et contrôlables par le consommateur. Cette solution est composée de MANTUS, un outil permettant l’expression des besoins et la génération automatique d’instances d’ORBITS, qui sont des infrastructures de déploiement multi-cloud adaptables dynamiquement grâce aux mécanismes autonomiques offerts par MANTUS. Par ailleurs, cette solution propose U-Cloud, un service spécifique pouvant être déployé -si le provider le permet- et élargissant la capacité de contrôle de déploiement des services et des applicatifs de l’utilisateur sans pour autant compromettre le mécanisme d’isolation offert par les fournisseurs de cloud.
La solution proposée se décline en plusieurs contributions : Tout d’abord l’extension d’un framework IaC (Infrastructure as a Code) existant, dédié à la construction de solutions multi-cloud par des mécanismes de tissage, caractéristiques de la programmation par aspects (AOP), permettant ainsi d’injecter et d’extraire des ressources à la demande. Cette extension, expérimentée sur le framework TOSCA a nécessité la proposition du langage TML (Tosca Manipulation Language) permettant de formaliser et de manipuler ces extensions. Les expérimentations effectuées montrent une surcharge acceptable induite par le mécanisme de tissage et une bonne capacité de passage à l’échelle testée par l’injection d’un grand nombre de services non fonctionnels.
La seconde contribution a été de doter le framework IaC TOSCA d’un outil d’expression des besoins et d’une extension d’un algorithme de matching s’appuyant, d’une part, sur le nombre et de caractéristiques de fournisseur de cloud (notamment la localisation), et d’autre part sur les caractéristiques des services proposés par ceux-ci, permettant ainsi de trouver la configuration multi-cloud la plus adaptée.
La troisième contribution est la définition d’une architecture « modèle » multi-couche, ORBITS, offrant des mécanismes d’interopérabilité inter-cloud et une vision haut niveau indépendante des clouds sous-jacents. Cette architecture peut être adaptée à volonté par MANTUS pour correspondre aux besoins de déploiement de l’utilisateur et pouvoir le cas échéant être reconfigurée dynamiquement.
Enfin, la dernière contribution proposée est la pile de virtualisation U-cloud et les protocoles liée à son déploiement, qui permettent de délimiter les zones contrôlables par le consommateur des zones administrées par le provider. Cette proposition est basée sur l’utilisation conjointe de la virtualisation imbriquée (Nested Virtualization) et des micro-hyperviseurs réduisant la zone d’attaque (TCB). En d’autres termes, cette contribution permet de proposer une architecture capable de limiter les champs d’actions des providers vis-à-vis des ressources et des applications du consommateur. Les expérimentations effectuées montrent la faisabilité de l’ensemble de l’approche, et les performances et la surcharge obtenues demeurent acceptables.

Cloud Computing represents one of the most important changes in information and communications technology (ICT) of the latest ten years. The elastic, on-demand, and pay-per-use service model that cloud offers is able to not only provide as many large-scale computation and storage resources as needed, but also to do so as long as requested and at a pay-per-use price.

However, after a decade since its commercial debut, there are still several applications that cloud computing is not able to fully serve. These are the applications that, due to their particularly stringent requirements, must rely simultaneously on multiple Cloud Service Providers (CSPs), rather than only one. Multiple CSPs can in fact offer a better availability, improve QoS, and break the business dependence w.r.t. a single CSP. A cloud infrastructure based on multiple CSPs is called multi-cloud.

Despite the benefits of multi-clouds, organisations (i.e developers and operators of IT services) seldom accept the challenge of building applications and crossing multiple CSP domains~\cite{Elkhatib:crosscloud}. In fact, multi-CSP architectures come at the cost of more complex applications and the logic to in terms of architecture and performance optimization.
Recently, Multi-cloud \textit{client-oriented architectures} emerged as important approach to construct multi-cloud applications. It provides cloud consumers a mechanism to allocate resources over multiple CSPs without requiring any cooperation among the CSPs themselves.
In particular, \textit{Infrastructure as Code-based (IaC-based)}~\cite{iac} represent the reference paradigm when building multi-cloud applications. Consumers describe infrastructure resources as specific code introducing easily reproducible and flexible infrastructures, that can be easily integrated in the software lifecycle.

However, the adoption of IaC in the multi-cloud context is limited by the fact that the cloud consumer cannot easily reuse the infrastructure code across different applications. This is due to two major problems, which we investigate in this manuscript.

First, infrastructure are composed of functional (e.g. resources for applications) and non-functional services (e.g. monitoring). Non-functional related code should be shared at most across different applications and cloud consumers. However, this separation between functional and non-functional code is often blurred and, therefore, non-functional code is hard to be shared across them. Consequently, the codebase and the effort required to maintain services becomes rapidly intractable. In this work, we introduce the AOP-based weaving to allow injection/eviction of non-functional services in multi-clouds. This enables the possibility of code re-using across different cloud consumers (e.g., their different multi-cloud infrastructures) and static analysis of infrastructure templates. Furthermore, we present a TML (TOSCA Manipulation Language) aspect specification language to dynamically inject "non-functional" services to the virtual multi-cloud infrastructure. The TML expresses flexible connections among the application code and the reusable non-functional components.

Second, the multi-cloud paradigm is limited by the "least common denominator" barrier. The cloud consumer can hardly obtain an optimized usage of resources and services through existing IaC frameworks. Despite compatible with different CSPs, those frameworks do not specialize the output according to deployment context.
To tackle the "under-specialization" of multi-cloud templates, we introduce a "context-based matching" scheduling algorithm to select the most compelling set of CSPs according to the cloud consumer needs. Such algorithm takes as input the list of available CSPs and their data-centers together with a set of consumer-provided parameters (e.g the amount of distinct CSPs, the service template, the optimization criteria). The algorithm outputs the list of the compelling data-centers (possibly located across different CSPs) that satisfy the user's requirements.
The context is managed by extending the TOSCA formalism. Such extension consists in encapsulating inside the TOSCA format the matching parameters between CSP features, cloud consumer preferences and implementation limitations.

Third, since the beginning of the cloud era, the adoption of public CSPs had important consequences not only in terms of security and control over data but also in terms of loss of control over the infrastructure. Compared to private infrastructures, the loss of control may not only concern the physical possession of data but also the loss of control on "lower" system layers of the software stack, notably the virtualization layer or hypervisor. To regain control over remote public infrastructure, we introduce a virtualization architecture which provides more control to the user as mentioned, still providing a compatibility layer but being capable of leveraging enhanced features. Based on micro-kernels and nested virtualization, this architecture enables the user to have more control on lower layers of the infrastructure (e.g. the hypervisor), assuring strong isolation w.r.t other tenants and the compatibility with the rest of multi-cloud.

To validate such contributions, we defined an end-to-end workflow to optimize a multi-cloud infrastructure definition. More precisely, in our model, the cloud consumer initially models the IaC code as an high-level graph of services, leveraging the combination of TML and context-based matching adoption. The output of this workflow is the instantation of such optimized and fully-featured multi-cloud on most suitable CSPs. We implemented \mantus, a multi-cloud compiler, which encapsulates this workflow and we benchmarked this implementation according to different perspectives as scalability and performance.

Leveraging Aspect-Oriented weaving and Context-based matching, a cloud consumer can accelerate at scale multi-cloud adoption by reducing the code base and obtaining a usage optimized infrastructure code, without having to deal with specific CSP technologies as required by currently available solutions.

Mots-clés : Cloud, Virtualisation, Multi-cloud, Programmation orientée aspect


Keywords : Cloud, Virtualisation, Multi-cloud, Programmation orientée aspect
       


Directeur(trice) de thèse : Christine GHEDIRA GUEGAN

Membres du jury :
- Mme GHEDIRA GUEGAN Chirine, Directrice de thèse, Professeure des Universités, Université Jean Moulin, Lyon 3,
- M. DAMIANI Ernesto, Professeur, Université de Milan, Khalifa University, ABU DHABI
- M. EXPOSITO Ernesto, Professeur des Universités, Université de Pau et des Pays de l'Adour PAU,
- Mme BENBERNOU Salima, Professeur des universités, Université Paris Descartes,
- M. SEINTURIER Lionel, Professeur des universités, UMR Cristal, Université de Lille,
- Mme BENNANI Nadia, Maitre de Conférence, INSA Lyon
- M. LACOSTE Marc, Ingénieur de recherche, laboratoire LIRIS, INSA Lyon.

Président(e) du jury : Lionel SEINTURIER