Accéder au contenu principal

Qu'est-ce que le “Cloud Computing” ? (Partie 1)

Il est important de souligner avant tout que le terme « cloud computing » est difficile à expliquer, ou généralement à définir. Au niveau académique, les définitions proposées se multiplient et se compliquent d'avantage, au point que certaines études se limitent à dessiner un certain aspect général ou à proposer des caractéristiques simples pour identifier le cloud computing.
Voici une bonne définition : « Cloud est un système informatique parallèle et distribué qui consiste en une collection d'ordinateurs virtualisés et interconnectés qui sont provisionnés dynamiquement et présentés comme une ou plusieurs ressources informatiques unifiées, basées en des "accords au niveau service" (SLA : Service-Level Agreements) établis par des négociations entre le fournisseur du service et les consommateurs. »1
Pour expliquer davantage ce concept, on se propose de modéliser un système informatique comme un système de trois couches logiques. Le tableau suivant détaille ces trois couches pour un système informatique simple (ordinateur) et un système Cloud :
Couches \ Système
Ordinateur
Cloud Computing
Software
Logiciels de productivité
SaaS
Plate-forme
Système d'exploitation
PaaS
Infrastructure
Matériel & périphériques
IaaS



SaaS : Software As A Service
L'exemple le plus concret d'un SaaS est le client e-mail en sa version web, comme Gmail ou Hotmail. Les nouvelles technologies web comme AJAX et le progrès considérable des navigateurs internet a permis de créer des fonctionnalités sophistiqués avec les technologies web (exemple : HTML5). On trouve parmi les composants existants comme SaaS des clients e-mails, des applications bureautiques, des outils de planning, de collaboration et de gestion de projets et même des outils avancées comme les CRM (Customer Relationships Management), et les outils de vidéo-conférences et des messages instantanés.
PaaS : Platform As A Service
Pour créer des applications Cloud, il nous faut une plate-forme de développement et d'exécution. Des fournisseurs spécialisés des plate-formes Cloud existent sur le Net, qui offrent un environnement de développement, accessibles depuis le navigateur internet ordinaire, qui permet diverses tâches de développement d'applications, de bases de données. Cet environnement comporte aussi des interfaces prêtes à l'utilisation pour garantir les performances et la sécurité, des outils pour l'intégration avec d'autres applications de la même plate-forme, d'autres pour se connecter avec d'autres applications étrangères à la plate-forme utilisée, et des outils pour le design des formulaires web, etc.
IaaS : Infrastructure As A Service
L'un des plus importantes caractéristiques du Cloud Computing est la possibilité d'administrer, à travers une interface web, les ressources fondamentales du serveur distant tel que l'énergie, le stockage et le réseau. Avec la notion de virtualisation, il est possible aux fournisseurs du Cloud de proposer des solutions indépendantes de leurs serveurs. Ainsi on pourra avoir :
  • Le choix entre des machines virtuelles prêtes à l'emploi avec des systèmes pré-installés notamment Linux, Solaris et Windows, et surtout avec un ensemble de logiciels pré-installés.
  • Pour le traitement d'une large quantité de données, des outils basés sur le concept des grilles de données (Data Grids) ; Pour le calcul complexe, des outils basés sur les grilles de calcul (Grid Computing). Ceci par l'intermédiaire d'un ensemble très large de serveurs dédiés qui travaillent en parallèle sur le même problème.
  • L'automatisation de la modification des ressources informatiques pour répondre aux changements de la variation de l'utilisation.
  • La possibilité de modifier les paramètres et les ressources informatiques avec une interface web puissante.
Avec cette architecture à trois couches logiques, l'accès au système (que ce soit pour le développeur, l'administrateur ou l'utilisateur/client) se fait par un terminal logique (Navigateur internet sur PC/Mac). Pour mieux subvenir aux besoins commerciaux, les fournisseurs des solutions Cloud ont proposé quatre modèles de déploiement qui seront détaillés dans ce qui suit.
Modèles de déploiement2
Public cloud (cloud publique)
Cloud pur : service offert au grand public et les ressources sont partagées entre tous les utilisateurs.
Community cloud (cloud de communauté)
Cloud utilisé dans le cadre d'un groupe d'organisations qui font partie d'une communauté, le cloud peut être réalisé en interne ou fourni par une fournisseur tierce-partie. Même potentiel que le cloud public et pas de souci de sécurité particulier.
Private cloud (cloud privé)
Cloud réalisé dans un réseau privé (local ou étendu) d'une organisation et derrière un pare-feu. Utile dans le cas de données sensibles, commerciales ou confidentielles. Nécessite que l'infrastructure, la plateforme et le « Software » soient implémentés et gardés à l'intérieur, donc les services externes « grand public » ne sont pas envisageables. Ce type de cloud nécessite un budget énorme pour la réalisation, la maintenance, le matériel et l'expertise.
Hybrid cloud (cloud hybride)
C'est une forme plus flexible de cloud, qui est utilisées par de nombreuses entreprises : utiliser un cloud public pour les tâches informatiques usuelles, alors que les données des clients sont stockées dans un cloud de communauté, privé ou même avec une solution plus traditionnelle. Cette solution est plus logique et attirante pour des entreprises qui ne veulent pas migrer totalement une architecture IT existante vers le cloud computing pour des raisons économiques ou de protection de données.
N Ceci n'est pas un cloud :
  • Louer un serveur pour une tâche unique, comme l'hébergement d'un site
  • La virtualisation d'un ou de plusieurs systèmes d'exploitation sur un seul serveur n'est pas en elle-même du cloud computing
  • Utiliser les technologies « bureau distant » (Remote Desktop) ou « réseau virtuel privé » (VPN) pour se connecter sur un autre PC.

Illustration 1: Architecture Cloud (Source : Introduction to Cloud Computing Architecture, Sun Microsystems whitepaper, Juin 2009)



1“Cloud is a parallel and distributed computing system consisting of a collection of inter-connected and virtualised computers that are dynamically provisioned and presented as one or more unified computing resources based on service-level agreements (SLA) established through negotiation between the service provider and consumers.” [R. BUYYA, J. BROBERG, A. GOSCINSKY : CLOUD COMPUTING PRINCIPLES & PARADIGMS, Wiley (2011)]
2M. WILLIAMS : A QUICK START GUIDE TO CLOUD COMPUTING, KoganPage (2010)

Commentaires

Posts les plus consultés de ce blog

GNS3 on Manjaro/Arch Linux: How to create virbr0 for NAT to work

Problem: You can't add a NAT connection to your GNS3 simulation, and you get the error : "ERROR template_manager:226 Error while creating node from template: NAT interface virbr0 is missing, please install libvirt" Steps to resolve: 1- Create a file named /tmp/default.xml 2- Paste this content and save: <network>   <name>default</name>   <bridge name="virbr0"/>   <forward mode="nat"/>   <ip address="192.168.123.1" netmask="255.255.255.0">     <dhcp>       <range start="192.168.123.2" end="192.168.123.254"/>     </dhcp>   </ip> </network> 3- Execute the following commands in your shell : virsh net-define /tmp/default.xml sudo virsh net-start default sudo virsh net-autostart default  

GNS3: Simulating a 100% opensource site2site VPN using Wireguard, VyOS and OpenVSwitch

 This is something I had in mind but didn't find the time to accomplish before. It just took a very cold day to convince me that I have to play with Wireguard on VyOS. I used GNS3 of course, on my personal Linux laptop to create this setup. Of course the performance was not that great since it is just a simulation.  In real life, I am using Wireguard on a 10 years old Raspberry Pi Model B and amazingly with just a 700MHz single core ARM CPU and less than 512 MB of RAM I had a decent and stable permanent Wireguard tunnel. (My bandwidth would reach 24 Mbps without issue) Back to my simulation, this is what it looks like : Quick explanation: the VYOS routers labeled IPERF1 and IPERF2 are only used for an iperf3 test, which was able to reach about 50 to 60 Mbps each time. It ain't much but it was honest (and free) secure bandwidth! I won't get into the details of this setup but I will just post the two most important configurations : R-East and R-West : #### VYOS WireGuard Site

AutoWG: a simple Bash script to connect two devices with Wireguard

 I made today a quite simple BASH script that allows to connect two devices running Wireguard (tested with Debian Linux 12, but should work with any device) You can check it out (and fork it if you want) in this Gitlab Page This is the source code as of now, but I could modify it later (any suggestions are welcome) : #!/bin/bash # # AUTOWG written by Hamdi KADRI  # No copyright in any form or kind # This script is intended to create configurations for  # a point-to-point Wireguard connection between a server # and a client (/30 network) # # Step zero: declare configurations as variables servercfg="[Interface] Address = <serverwgIP> SaveConfig = true ListenPort = <port> PrivateKey = <server-privatekey> [Peer] PublicKey = <client-pubkey> AllowedIPs = <clientwgIP> " clientcfg="[Interface] PrivateKey = <client-privatekey> Address = <clientwgIP> [Peer] PublicKey = <server-pubkey> AllowedIPs = 0.0.0.0/0 EndPoint = <serverIP>