Le Cloud Computing et la naissance d’Openstack

Un peu d’histoire…

En 1970, à l’origine des premiers systèmes d’information d’entreprise, la technologie majeure était le « Mainframe », une brique considérée comme le cœur du système, possédant l’ensemble du métier et des fonctionnalités attendues par l’entreprise.   En 1980 est arrivé le modèle « client-serveur » qui a été une première étape vers la fragmentation du SI, compte tenu que les clients n’étaient plus de simples terminaux, mais de véritables PC avec logiciels intégrés. Il était donc possible, pour un même client, d’interagir avec différents serveurs, fournisseurs de données métier sur un périmètre défini.

En parallèle, en 1990, ce n’est pas seulement le domaine de l’entreprise qui connait une révolution, mais le monde entier, Internet est né, et amène avec lui les standards devenus incontournables que sont aujourd’hui le TCP/IP et le protocole HTTP.

En 2000, les technologies internet dominent toutes les architectures de système d’exploitation, à travers le concept de « SOA » (Service Oriented Architecture) principalement construit sur l’usage des web services (http/SOAP/XML) et des échanges asynchrones (Queue). À ce stade de l’histoire, le système d’information décorrèle le matériel du métier, et se décompose en « service », entité responsable d’un domaine métier. Un service peut être accessible, au travers d’une interface qu’il fournit, par n’importe quelle application via un couplage faible voir inexistant (stateless). L’évolution entraînera l’arrivée de composants dédiés à la concentration, et la gestion des échanges entre l’ensemble des services que l’on appellera ESB (Entreprise Service Bus), afin de permettre la gestion de la  complexité de l’ensemble du système.

En parallèle de cette époque florissante autour des technologies internet, se développe une autre révolution majeure sur le plan matériel, il s’agit de la « Virtualisation ». Cette dernière permet de segmenter un serveur physique en une multitude de serveurs logiques, possédant leur propre pile logicielle allant du système d’exploitation jusqu’aux applications installées. Ceci a permis de recycler tous les serveurs inutilisés jugés « obsolètes », et de rationaliser les ressources systèmes afin de quitter le mode très coûteux et prédominant, qui était une application = un serveur physique.

Le Cloud est l’aboutissement de la rencontre entre les technologies dites de « service » et la virtualisation, il s’agit d’un modèle d’accès à des ressources informatiques partagées et configurables, depuis un accès réseau, le tout à la demande. Ces ressources sont disponibles rapidement et sont opérationnelles sans nécessité d’interaction avec le fournisseur du service, le tout géré par un système d’abonnement en fonction des besoins de l’utilisateur.

 

Les différentes typologies Cloud

Le Cloud Computing, tout comme l’ensemble des nouveautés marquantes dans le domaine de l’informatique, s’est développé rapidement au détriment de la sécurité, qui demeure un facteur limitant l’avancé et l’évolution d’une nouvelle technologie. Néanmoins, les entreprises sont restées méfiantes vis-à-vis de ces offres qui proposent « ni plus ni moins » de stocker leurs données en dehors de leur SI privé,  qu’importe leur degré de sensibilité. Afin de s’adapter à cette contrainte majeure, le marché a répondu principalement en déclinant le business modèle du Cloud Computing en quatre catégories principales, pour ainsi permettre, en fonction des caractéristiques et des attentes propre à chaque entreprise, de répondre par une offre adaptée et ainsi de permettre une conduite souple vers le changement.

Nous avons donc les catégories suivantes :

  • Cloud public

Dans ce modèle, un fournisseur possède une infrastructure qu’il segmente et loue à différents clients. Cette solution est de loin la plus économique compte tenu de son fonctionnement “à la demande”, sans devoir prendre en charge ni l’acquisition ni l’exploitation du matériel. Néanmoins, il sous-entend de déporter tout ou partie de l’activité informatique d’une entreprise en dehors du SI, sur lequel le contrôle des données reste une vision de l’esprit. Les données de chaque client sont stockées au sein de la même infrastructure, mais l’accès à ces données est géré par authentification et accréditations. Néanmoins, toute DSI doit s’interroger sur la vie de ses données dans les cas où le fournisseur arrêterait son activité, ou bien en cas d’attaque et de vol de données. L’acceptation de ce type de prestation est un savant calcul entre rentabilité, souplesse et sécurité.

  • Cloud privé

Ce modèle est l’antithèse du cloud public compte tenu de sa nature « privé» pour ne pas dire “isolé”. Il n’est pas destiné à être partagé avec d’autres clients. Un cloud privé peut être logé soit au sein de l’entreprise soit chez un prestataire qui fournira une infrastructure complète dédiée pour cette entreprise. Les avantages sont une maîtrise générale de ses données, des capacités réseaux, de l’infrastructure, de la sécurité et du « sur mesure ». En effet, un cloud privé est dimensionné pour les besoins précis de l’entreprise, cette dernière n’est pas contrainte de s’adapter aux offres existantes. De nombreuses entités gouvernementales adoptent de plus en plus ce modèle, dans le but de maîtriser la souveraineté des données.

  • Cloud hybride

Ce dernier est une conséquence des avantages et inconvénients énoncés précédemment entre public et privé, car il a été conçu pour répartir le système d’information d’une entreprise entre les deux types de modèles, en fonction de l’importance des données.

  • Cloud communautaire

Ce modèle est le plus récent, il est utilisé par plusieurs organisations qui possèdent des besoins similaires. Il peut être utilisé pour héberger des applications génériques, possédant des spécificités attendues par chaque membre du groupe. Dans cette orientation, chaque entité participe à l’effort et investit dans la structure du cloud mutualisé.

 

Openstack : un cloud open-source

Openstack est né de l’initiative de fournir aux entreprises la possibilité de mettre en place leur propre cloud privé en utilisant un écosystème libre, modulaire et évolutif. Toutefois, les fournisseurs de cloud public peuvent également s’appuyer sur cette solution pour diversifier leur catalogue d’offres.
Le projet, originellement né de la collaboration de la NASA et de Rackspace, est soutenu par la Fondation OpenStack, une organisation non-commerciale qui a pour but de promouvoir le projet OpenStack, mais également de maintenir la cohérence globale du projet (https://www.openstack.org/foundation/). Actuellement, Openstack est distribué sous licence Apache, et représente un des projets open source les plus importants au monde. L’ensemble des grands acteurs du marché ont intégré la fondation, afin de garantir une homogénéité sur les choix et orientations, et c’est pourquoi, à titre d’exemple, des entreprises comme Dell, HP, IBM ou encore Suse, en sont membres.
D’un point de vue logicielle, l’objectif d’Openstack est de s’abstraire de la couche infrastructure pour fournir une solution standard, quel que soit le matériel à disposition. La solution générale est un assemblage de modules indépendants et spécialisés remplissant chacun une fonction précise telle que, à titre d’exemples, le réseau, l’hyperviseur ou le stockage.
Compte tenu de la volonté de faire de la couche logicielle la seule détentrice de l’intelligence, Openstack propose l’implémentation d’un ensemble de solutions novatrices, telles que le “Software Defined Storage” pour gérer le stockage, bloc ou objet, ou encore le “Software Defined Network” pour gérer les réseaux virtuels à travers les concepts de “control layer” et NFV (Network Function Virtualization). Une série d’articles approfondira ces différents thèmes ultérieurement.
La fondation et la communauté des développeurs étant très actives, le rythme des releases est semestrielle, imposant une certaine souplesse de la part des entreprises désireuses de l’implémenter.

 

Openstack : une approche modulaire

Dans des termes plus pratiques, Openstack est un framework contenant un nombre conséquent de services indépendants qui, une fois réunis, permettent la réalisation d’une infrastructure cloud.
Openstack, dans son fonctionnement, est une architecture de service basée sur un ensemble d’échanges synchrones (REST) et asynchrones (Queue).

Ci-dessous, une première vue globale de l’architecture d’Open Stack, avec les fonctions majeures.


Source : https://netapp.github.io/openstack-deploy-ops-guide/juno/content/section_modular-collection.html

Les principaux modules (noms et fonctions) sont les suivants :

  • Keystone : gestion des identités et de l’authentification
  • Nova : gestion des instances (instance étant le nom porté par les machines virtuelles au sein d’Openstack)
  • Glance : gestion des images disque
  • Neutron : gestion du réseau
  • Cinder : gestion du stockage bloc
  • Swift : gestion du stockage objet
  • Horizon : IHM de gestion
  • Heat : orchestrateur d’OpenStack
  • Ceilometer : Supervision et récolte de données de supervision

Note : l’orchestration n’est pas obligatoire, mais d’un point de vue automatisation et déploiement au sein des différents environnements, elle devient rapidement indispensable pour assurer une bonne rigueur et un bon degré d’industrialisation.

L’ensemble des modules sont codés en python, ce qui rend l’ensemble de la solution relativement légère en terme d’empreinte, et utilisent quelques services techniques communs tels que Rabbit MQ, MariaDB ou encore Memcached.

Openstack possède un ensemble d’autres projets facultatifs déployables au besoin en fonction des attentes fonctionnelles comme Trove pour une base de données as a service (DBaaS), ou Magnum pour la gestion des conteneurs …

Pour la dernière version nommée “Ocata” (disponible depuis fin février), il y a actuellement 20 projets principaux, voir pour cela l’article suivant, sur le site Open Stack : https://www.openstack.org/news/view/302/openstack-ocata-strengthens-core-infrastructure-services-and-container-integration-with-15th-release-of-cloud-computing-software

 

Conclusion

L’objectif de cet article est de présenter une vision globale de ce qu’est Openstack et de son origine.
Nous avons pu découvrir que cette technologie est une révolution dans le monde de l’infrastructure, notamment en s’appuyant sur une plate-forme totalement paramétrable et évolutive.
Néanmoins, il est nécessaire de garder à l’esprit que la solution est encore en pleine évolution, et que le “tout virtualisé” peut entraîner des problèmes de performance et de sécurité.
Dans de futurs articles, nous nous intéresserons au fonctionnement intrinsèque des différents composants, ainsi qu’à l’ensemble des projets gravitant autour d’Openstack avec une focalisation sur les aspects stockages et réseaux.

Leave a Reply

Your email address will not be published. Required fields are marked *