window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-66399486-1'); Le cloud computing | NETWORKVM

Le cloud computing

By NETWORKVM -

Introduction

Services du Cloud Computing

Types du Cloud Computing

Avantages du cloud computing

Inconvénients du cloud computing

Solutions du Cloud Computing

Composants d’Openstack

L’installation d’openstack : Devstack

Conclusion

 ----------------------------------------------------------------------------------------------------------------------------

Introduction


C’est quoi le Cloud Computing :

Le cloud computing, ou l’informatique en nuage  est l'exploitation de la puissance de calcul ou de stockage de serveurs informatiques distants par l'intermédiaire d'un réseau, généralement Internet. Ces serveurs sont loués à la demande, le plus souvent par tranche d'utilisation selon des critères techniques (puissance, bande passante, etc.) mais également au forfait.


Le cloud computing se caractérise par sa grande souplesse : selon le niveau de compétence de l'utilisateur client, il est possible de gérer soi-même son serveur ou de se contenter d'utiliser des applicatifs distants en mode SaaS. Selon la définition du National Institute of Standards and Technology (NIST), le cloud computing est l'accès via un réseau de télécommunications, à la demande et en libre-service, à des ressources informatiques partagées configurables. Il s'agit donc d'une délocalisation de l'infrastructure informatique.

Pour le grand public, le cloud computing se matérialise notamment par les services de stockage et de partage de données numériques type Box, Drop box, Microsoft OneDrive ou Apple iCloud sur lesquels les utilisateurs peuvent stocker des contenus personnels (photos, vidéos, musique, documents…) et y accéder n’importe où dans le monde depuis n’importe quel terminal connecté.

Principes du cloud (nuage) :

Le nuage (anglais cloud) est un ensemble de matériel, de raccordements réseau et de logiciels qui fournissent des services sophistiqués que les individus et les collectivités peuvent exploiter à volonté depuis n'importe où dans le monde. Le cloud computing est un basculement de tendance : au lieu d'obtenir de la puissance de calcul par acquisition de matériel et de logiciel, le consommateur se sert de puissance mise à sa disposition par un fournisseur via Internet.

Les caractéristiques essentielles d'un nuage sont la disponibilité mondiale en libre-service, l'élasticité, l'ouverture, la mutualisation et le paiement à l'usage :

·       ressources en libre-service : et adaptation automatique à la demande. La capacité de stockage et la puissance de calcul sont adaptées automatiquement au besoin d'un consommateur. Ce qui contraste avec la technique classique des hébergeurs où le consommateur doit faire une demande écrite à son fournisseur en vue d'obtenir une augmentation de la capacité - demande dont la prise en compte nécessite évidemment un certain temps. En cloud computing la demande est automatique et la réponse est immédiate.

·       ouverture : les services de cloud computing sont mis à disposition sur l'Internet, et utilisent des techniques standardisées qui permettent de s'en servir aussi bien avec un ordinateur qu'un téléphone ou une tablette.

·       mutualisation : elle permet de combiner des ressources hétérogènes (matériel, logiciel, trafic réseau) en vue de servir plusieurs consommateurs à qui les ressources sont automatiquement attribuées. La mutualisation améliore l'évolutivité et l'élasticité et permet d'adapter automatiquement les ressources aux variations de la demande.

·       paiement à l'usage : la quantité de service consommée dans le cloud est mesurée, à des fins de contrôle, d'adaptation des moyens techniques et de facturation.



Les nuages utilisent des technologies telles que la virtualisation du matériel informatique, les grilles, l'architecture orientée services et les services web. Un nuage peut être public, privé ou communautaire.



Le nom « cloud computing » est né des professionnels de l'informatique qui recherchaient une désignation pour les nouveaux systèmes informatiques fonctionnant par l'action conjointe d'éléments disparates réunis indifféremment de leur localisation géographique et de l'infrastructure sous-jacente. Le nom vient du nuage (en anglais « cloud ») qui est le symbole utilisé pour représenter l'Internet dans les diagrammes des réseaux informatiques.

Services du Cloud Computing :


Du point de vue économique, le cloud computing est essentiellement une offre commerciale d'abonnement économique à des services externes. Selon le National Institute of Standards and Technology il existe trois catégories de services qui peuvent être offerts en cloud computing : IaaS, PaaS et SaaS.


IaaS (infrastructure as a service)


En français infrastructure en tant que service. C'est le service de plus bas niveau. Il consiste à offrir un accès à un parc informatique virtualisé. Des machines virtuelles sur lesquelles le consommateur peut installer un système d'exploitation et des applications. Le consommateur est ainsi dispensé de l'achat de matériel informatique. Ce service s'apparente aux services d'hébergement classiques des centres de traitement de données, et la tendance est en faveur de services de plus haut niveau, qui font davantage abstraction de détails techniques.

PaaS (platform as a service)


En français plate-forme en tant que service. Dans ce type de service, situé juste au-dessus du précédent, le système d'exploitation et les outils d'infrastructure sont sous la responsabilité du fournisseur. Le consommateur a le contrôle des applications et peut ajouter ses propres outils. La situation est analogue à celle de l'hébergement web où le consommateur loue l'exploitation de serveurs sur lesquels les outils nécessaires sont préalablement placés et contrôlés par le fournisseur. La différence étant que les systèmes sont mutualisés et offrent une grande élasticité - capacité de s'adapter automatiquement à la demande, alors que dans une offre classique d'hébergement web l'adaptation fait suite à une demande formelle du consommateur.

SaaS (software as a service)


En français logiciel en tant que service. Dans ce type de service, des applications sont mises à la disposition des consommateurs. Les applications peuvent être manipulées à l'aide d'un navigateur web ou installées de façon locative sur un PC, et le consommateur n'a pas à se soucier d'effectuer des mises à jour, d'ajouter des patches de sécurité et d'assurer la disponibilité du service. Gmail est un exemple de tel service. Il offre au consommateur un service de courrier électronique et le consommateur n'a pas à se soucier de la manière dont le service est fourni. Autre exemple, Office 365 propose un ensemble de services en abonnement dont la suite logicielle Office qui se met automatiquement à jour, l'utilisateur ne se soucie pas de racheter un nouveau logiciel ou de le mettre à jour. On parle ici de location de services hébergés par Microsoft. D'autres exemples de logiciels mis à disposition en Saas sont Google Apps, Office Online ou LotusLive (IBM).

Un fournisseur de software as a service peut exploiter des services de type Platform as a service, qui peut lui-même se servir de infrastructure as a service.

Types du Cloud Computing


Le Cloud publique :


Un Cloud public est un service IaaS, PaaS ou SaaS proposé et hébergé par un tiers (Amazon, Google ou Microsoft), propose un Cloud public dans lequel n'importe quel particulier ou n’importe quelle entreprise peut y héberger ses applications, ses services ou ses données.

Le Cloud privé :


C'est un environnement déployé au sein d'une entreprise. Ainsi, elle doit gérer toute seule son infrastructure. Dans ce cas, implémenter un Cloud privé signifie transformer l'infrastructure interne en utilisant les technologies telles que la virtualisation pour enfin délivrer, plus simplement et plus rapidement, des services à la demande.

Le Cloud hybride :


En général, on entend par Cloud hybride la cohabitation et la communication entre un Cloud privé et un Cloud publique dans une organisation partageant des données et des applications (Par exemple, un Cloud dédié pour les données et un autre pour les applications).

Avantages du cloud computing


Le cloud computing peut permettre d'effectuer des économies, notamment grâce à la mutualisation des services sur un grand nombre de clients. Certains analystes indiquent que 20 à 25 % d’économies pourraient être réalisées par les gouvernements sur leur budget informatique s’ils migraient vers le cloud computing. Comme pour la virtualisation, l'informatique dans le nuage peut être aussi intéressante pour le client grâce à son évolutivité. En effet, le coût est fonction de la durée de l'utilisation du service rendu et ne nécessite aucun investissement préalable (homme ou machine). L'« élasticité » du nuage permet de fournir des services évolutifs et peut permettre de supporter des montées en charge. Inversement, le fournisseur a la maîtrise sur les investissements, est maître des tarifs et du catalogue des offres, et peut se rémunérer d'autant plus facilement que les clients sont captifs. 

La maintenance, la sécurisation et les évolutions des services étant à la charge exclusive du prestataire, dont c'est généralement le cœur de métier, celles-ci ont tendance à être mieux réalisées et plus rapidement que lorsque sous la responsabilité du client (principalement lorsque celui-ci n'est pas une organisation à vocation informatique).

Inconvénients du cloud computing


Plusieurs catégories d'inconvénients existent :

·       L'utilisation des réseaux publics, dans le cas du cloud public, entraîne des risques liés à la sécurité du cloud. En effet, la connexion entre les postes et les serveurs applicatifs passe par le réseau internet, et expose à des risques supplémentaires de cyberattaques, et de violation de confidentialité. Le risque existe pour les particuliers, mais aussi pour les grandes et moyennes entreprises, qui ont depuis longtemps protégé leurs serveurs et leurs applications des attaques venues de l'extérieur grâce à des réseaux internes cloisonnés.

·       Le client d'un service de cloud computing devient très dépendant de la qualité du réseau pour accéder à ce service. Aucun fournisseur de service cloud ne peut garantir une disponibilité de 100 %. Par exemple, des défaillances sur les services cloud sont référencées par l'International Working Group of Cloud Resiliency.

·       Les entreprises perdent la maîtrise de l'implantation de leurs données. De ce fait, les interfaces inter-applicatives (qui peuvent être volumineuses) deviennent beaucoup plus complexes à mettre en œuvre que sur une architecture hébergée en interne.

·       Les entreprises n'ont plus de garanties (autres que contractuelles) de l'utilisation qui est faite de leurs données, puisqu'elles les confient à des tiers.

·       Les questions juridiques posées notamment par l'absence de localisation précise des données du cloud computing. Les lois en vigueur s'appliquent, mais pour quel serveur, quel data center, et surtout quel pays ?

·       Tout comme les logiciels installés localement, les services de cloud computing sont utilisables pour lancer des attaques (craquage de mots de passe, déni de service…). En 2009, par exemple, un cheval de Troie a utilisé illégalement un service du cloud public d'Amazon pour infecter des ordinateurs.

·       Du fait que l'on ne peut pas toujours exporter les données d'un service cloud, la réversibilité (ou les coûts de sortie associés) n'est pas toujours prise en compte dans le cadre du projet. Le client se trouve souvent « piégé » par son prestataire et c'est seulement lorsqu'il y a des problèmes (changement des termes du contrat ou des conditions générales d'utilisation, augmentation du prix du service, besoin d'accéder à ses données en local, etc.) qu'il se rend compte de l'enfermement propriétaire (vendor lock-in) dans lequel il se trouve.



Solutions du Cloud Computing


Dans le domaine du cloud computing, plusieurs acteurs sont impliqués : les fournisseurs d’offres publiques et ceux proposant le système sous forme de logiciels pouvant être employés en privé. Les solutions du cloud sont ainsi classées en deux grandes catégories : les solutions propriétaires et les solutions open source.

Les solutions du cloud computing public


Actuellement, trois acteurs potentiels existent sur le marché du cloud computing public. Windows par sa plateforme Azure, Google par sa plateforme de développement d’applications AppEngine et Amazon par ses services EC2 de l’informatique virtuelle.



- Windows Azure


Azure est une plateforme de Microsoft pour les services PaaS du cloud computing. Il s’agit d’une plateforme de développement d’applications fournissant les services d’exécution et d’administration d’applications en offrant les outils nécessaires. Elle permet aux développeurs de programmer et de stocker directement leurs applications sur Internet en leur allouant dynamiquement des machines virtuelles de son centre de données (data center).

L’infrastructure soutenant la plateforme Azure est basée sur la solution de virtualisation Xen.

- Google AppEngine


AppEngine est une offre de Google pour les services de type PaaS. Le développement et le déploiement d’applications sur la plateforme de Google sont rendus possibles grâce à un SDK conçu par Google et mis à la disposition des utilisateurs afin de leur permettre de développer en local pour ensuite déployer l’application vers l’Internet. L’idée est de permettre aux utilisateurs d’employer l’infrastructure de Google pour héberger leurs applications avec la possibilité de définir le groupe d’utilisateurs de cette dernière. Ces applications bénéficient de la haute disponibilité des infrastructures de Google.

- La plateforme EC2 d’Amazon


Les services d’Amazon EC2 (Elastic Compute Cloud) concernent l’exposition de machines virtuelles pour les activités telles que l’hébergement, les grilles de calcul ou les tests en réseaux informatiques.

L’utilisation des services d’Amazon est facturée selon le temps d’utilisation des machines louées.

3.2. Les solutions open source


Les solutions open source du cloud computing sont destinées au déploiement de l’architecture en privé pour un usage en interne. Toutefois, les solutions proposées peuvent être utilisées pour fournir les services du cloud public. Les solutions de cloud privé implémentent généralement les services IaaS. Leur rôle consiste à gérer un ensemble de machines physiques et virtuelles dans un réseau local ou une interconnexion de plusieurs réseaux. L’architecture de supervision des nœuds d’exécution des machines virtuelles de ces solutions est généralement composée d’un nœud central appelé cloud controller (CLC), de plusieurs nœuds d’exécution des services du cloud appelés Node controllers et parfois d’un ensemble de nœuds intermédiaires de supervision appelés cluster controllers. Les terminologies utilisées dans les différentes solutions existantes telles que Eucalyptus, OpenNebula, Nimbus et Openstack peuvent varier mais le principe de fonctionnement de ces différents nœuds reste approximativement le même.

- Eucalyptus


Eucalyptus est un outil open source issu d’un projet de recherche de l’université de Californie. Il est développé en C, Java, Python et est disponible sous deux licences. Une licence GPL(23) gratuite supportant les hyperviseurs Xen et KVM et une licence commerciale offrant des fonctionnalités avancées telles que le support de VMware. Il permet de construire aussi bien les solutions privées du cloud computing que les solutions publiques. Son grand avantage est qu’il est intégré dans les distributions Ubuntu et Debian. Eucalyptus offre des interfaces compatibles avec les services EC2 d’Amazon. Ce qui lui confère la possibilité d’être employé pour les solutions hybrides de cloud computing. L’architecture d’Eucalyptus est constituée de quatre composants principaux.

- Le contrôleur de nœud (Node controller NC) : contrôle l’exécution, et l’arrêt des machines virtuelles présentes sur le nœud où il est exécuté.

- Le contrôleur de cluster (cluster controller CC) : collecte les informations sur les différents nœuds d’un cluster et planifie l’exécution des machines virtuelles sur chaque nœud.

- Le contrôleur de stockage (Warlus) : c’est le composant qui gère l’accès au service de stockage. Il est souvent intégré au contrôleur du cloud (CLC).

- Le contrôleur de cloud (CLC) : C’est le point d’entrée (Front end) des utilisateurs et administrateurs du système. Il collecte des informations sur les nœuds et planifie leur exécution au travers des contrôleurs de clusters (CCs). Il expose les services du cloud à travers une application Web mais également à travers des interfaces compatibles EC2.

Figure : Architecture d’Eucalyptus :



- Openstack


OpenStack est un ensemble de logiciels open source permettant de déployer des infrastructures de cloud computing (infrastructure en tant que service). La technologie possède une architecture modulaire composée de plusieurs projets corrélés (Nova, Swift, Glance...) qui permettent de contrôler les différentes ressources des machines virtuelles telles que la puissance de calcul, le stockage ou encore le réseau inhérents au centre de données sollicité.

Le projet est porté par la Fondation OpenStack, une organisation non-commerciale qui a pour but de promouvoir le projet OpenStack ainsi que de protéger et d'aider les développeurs et toute la communauté OpenStack.

De nombreuses entreprises ont rejoint la fondation OpenStack. Parmi celles-ci on retrouve : Canonical, RedHat, SUSE, eNovance, AT&T, Cisco, Dell, HP, IBM, Yahoo!, Oracle, Orange, Cloudwatt, EMC, VMware, Intel.

Historique

En juillet 2010, Rackspace Hosting et la NASA ont lancé conjointement un le projet open source dans le domaine du cloud computing sous le nom d'OpenStack.

L'objectif du projet OpenStack est de permettre à toute organisation de créer et d'offrir des services de cloud computing en utilisant du matériel standard.

La première version livrée par la communauté, dont le surnom est Austin, fut disponible seulement quatre mois après.

En 2014, la communauté OpenStack compte 5 600 membres et 850 organisations.

Composants d’Openstack


OpenStack possède une architecture modulaire qui comprend de nombreux composants le diagramme ci-dessous indique les 7 composants de base :



OpenStack Compute Infrastructure (Nova) :


Ce composant permet la gestion de larges réseaux de machines virtuelles et d’une architecture redondante et scalable. Elle fournit une interface d’administration et l’API nécessaire à l’orchestration du Cloud. Elle inclue les gestions des instances serveurs, et les contrôle d’accès. Compute ne nécessite pas de pré-requis hardware et est totalement indépendant de l’hyperviseur. Il repose sur le langage Python, les Framework Tornado et Twisted ainsi que le protocole ouvert pour les systèmes de messagerie AMQP (Advanced Message Queuing Protocol).

·      OpenStack Compute se décline en plusieurs services :

o   nova-api

o   nova-compute

o   nova-volume (remplacé par Cinder depuis Grizlly)

o   nova-network (remplacé par Quantum depuis Folsom et renommé en Neutron depuis Havana)

o   nova-scheduler

o   nova-objectstore (obsolète depuis Grizzly)

o   nova-novncproxy

o   nova-consoleauth

o   nova-conductor (depuis Grizlly seulement)

o   nova-cert

o   nova-console

OpenStack Imaging Service (Glance)


Ce composant fournit les services de stockages, de découvertes, d’enregistrements et de distributions pour les images disques de machines virtuelles. Il fournit également une API compatible REST permettant d’effectuer des requêtes pour obtenir des informations sur les images hébergées par les différents magasins de stockages.

·      OpenStack Imaging Service se décline en plusieurs services :

o   glance-api

o   glance-registry

o   glance-scrubber

OpenStack Object Storage(Swift)


Ce composant permet la création d’espace de stockage redondant et scalable pour le stockage de plusieurs pétabits de données. Il ne s’agit pas réellement d’un système de fichier mais est surtout conçut pour le stockage à long terme de gros volumes. Il utilise d’une architecture distribuée offrant plusieurs points d’accès pour éviter les SPOF (Single Point Of Failure).

·      OpenStack Object Storage se décline en plusieurs services :

o   swift-proxy

o   swift-auth

o   swift-account

o   swift-container

o   swift-object

Openstack Identity Service (keystone)


Keystone est un annuaire qui centralise toutes les authentifications et autorisations nécessaires aux multiples services d'OpenStack. Il peut aussi servir de catalogue de service. Keystone s'appuie sur un SGBDR soit de type SQLite, MySQL ou PostgreSQL.

Openstack Administrative Web-Interface (Horizon)


Afin de rendre l'utilisation d'OpenStack plus user friendly, la communauté a développé une interface web permettant de gérer facilement la création d'instance, de volume, d'image, etc... Horizon est un tableau de bord permettant la gestion du cloud OpenStack via une interface web. Ce dashboard est développé en Python, basé sur le Framework Django, il utilise le module WSGI d'Apache.



OpenStack Networking(Neutron)


Ce composant permet la mise en place de réseaux virtuels. Historiquement connu sous le nom de Quantum il fut renommé en Neutron dans la version d'Havana. Neutron propose de nouvelles technologies comme VXLAN, Open vSwitch tout en conservant la possibilité d'utiliser les bridges Linux.

·      OpenStack Networking se décline en plusieurs services :

o   neutron-server

o   neutron-dhcp-agent

o   neutron-l3-agent

o   neutron-metadata-agent

o   neutron-plugin-openvswitch-agent

OpenStack Block Storage(Cinder)



Ce composant fournit un stockage persistant instances Nova. Historiquement ce module faisait partie de Nova et se nommait nova-volume, depuis Folsom nova-volume a disparu pour laisser sa place à Cinder. Cinder peut également être utilisé indépendamment des autres services d'OpenStack.

·      OpenStack Block Storage se décline en plusieurs services :

o   cinder-api

o   cinder-scheduler

o   cinder-volume



OpenStack Telemetry (Ceilometer)


Ce composant qui peut être ajouter permet de mesurer la consommation d'un projet sur une plate-forme OpenStack. Ceilometer peut être utilisé comme outil de facturation. Ceilometer sera certainement intégré officiellement à la prochaine version d'OpenStack.

·      OpenStack Telemetry se décline en plusieurs services :

o   ceilometer-api

o   ceilometer-collector

o   ceilometer-agent-central

o   ceilometer-agent-compute



Il y a d'autres composants et dans chaque version d’autres composants s’ajoutent, comme par exemple :

Database Service : Trove (Service de Base de donnée à la demande).

Data Processing : Sahara (Service de Big data grâce à Hadoop).

L’installation d’openstack : Devstack


Pour installer et tester OpenStack rapidement, il existe un projet baptisé DevStack. C’est un simple script shell qui va vous construire une machine avec tous les composants nécessaire pour pouvoir tester et développer sur un environnement OpenStack.

Pour télécharger le script Devstack il faut installer tout d’abord l’utilitaire git qui permet de télécharger le script depuis le site de github.

Par la suite on télécharge le script Devstack de Openstack depuis github comme suite :




La version juno est l'avant dernière version qui a été sortie en avril 2015.

Une fois Devstack est télécharger, on se déplace dans le dossier Devstack qui contient le script télécharger, et on lance le script comme suite :

Le script doit être exécuté avec un utilisateur non root : 



Pendant l’installation le script Devstack va nous demander les mots de passe de : MySQL, serveur mail, authentification keystone, d’accès au Dashboard, comme suite :



Une fois l’installation est terminer, on peut accéder l’interface web de gestion d’openstack pour commencer à crée les images des systèmes et les machines.



On peut se connecter à l’interface d’openstack comme suite :





Création des images à partir des images de systèmes d’exploitation de test qui sont préinstallé :

Conclusion


La virtualisation est un domaine en pleine croissance, qui évolue très rapidement. Les entreprises peuvent s'en servir pour différents usages, aux besoins de leur fin. Les différentes solutions de virtualisation existantes utilisent des technologies variées, en fonction des buts du projet. Certaines technologies permettent de faire cohabiter plusieurs systèmes d'exploitation, d'autres cloisonnent un unique système en plusieurs compartiments indépendants. Certaines s'appuient sur les capacités du matériel pour améliorer les performances alors que d'autres nécessitent un système d'exploitation modifié pour cohabiter avec la solution de virtualisation. Ces technologies ont toutes leurs avantages et inconvénients, et il est important de faire le bon choix en fonction de l'utilisation et du besoin de l'entreprise .


Articles suivant: La virtualisation