Le cloud computing met en jeu trois niveaux de services : tout d'abord, les logiciels SaaS (Sofware as a Service), que les éditeurs (Zoho/Basecamp/Salesforce…) adressent à leurs utilisateurs ; ensuite, les plateformes et infrastructures PaaS et IaaS (Platform vs Infrastructure [as a Service]) que les opérateurs du cloud (Google/Microsoft/AWS) mettront à la disposition des éditeurs.

The main principle behind this model [cloud computing] is offering computing, storage and software "as a service" ([Bu-1] Rajkumar Buyya, James Broberg, Andrzej Goscinsky, Cloud computing — Principles and paradigms, éd. Wiley, 2011. Partie I, chap. I, p. 3).

Cloud computing services are divided into three classes: (1) Infrastructure as a Service, (2) Platform as a Service and (3) Software as a Service. […] These abstraction levels can be viewed as a layer architecture where services of a higher layer can be composed from services of the underlying layer ([Bu-1] Partie I, chap. I, p. 13).

Caractéristiques générales du cloud computing

Le cloud computing se caractérise par le fait :

  • qu'un client doit pouvoir accéder (quel que soit son statut, simple utilisateur ou éditeur) aux logiciels, plateformes et infrastructures dont il a besoin, directement, 24 heures sur 24, depuis n'importe quel poste, et sans avoir à passer par quelque intermédiaire ;
  • qu'un client et son fournisseur de service — quel que soit le niveau de service (logiciel/plateforme/infrastructure) — sont liés par un contrat (commercial) qui se fonde sur la demande du client ;
  • que l'ajustement des ressources à allouer aux logiciels (puissance/mémoire/débits), ou à libérer, doit pouvoir se faire automatiquement, selon le niveau de charge des logiciels.

Ajoutons que le cloud computing met en jeu des architectures dites multi-locataires (multi-tenant) : au lieu d'être installés sur les différents serveurs des entreprises clientes des éditeurs, les logiciels sont maintenant installés sur un seul et même serveur (que l'on trouvera chez l'opérateur IaaS de l'éditeur).

Remarque. — La magie du cloud computing tient au fait que les logiciels se déplacent, automatiquement, et de manière transparente, d'un serveur à l'autre (au sein d'une même ferme de serveurs), selon le niveau des ressources à mobiliser : les logiciels sont bien installés sur un seul et même serveur, mais seulement à un instant t !

Self-Service. Clouds must allow self-service access so that customers can request, customize, pay, and use services without intervention of human operators ([Bu-1] Partie I, chap. I, p. 16).

Per-Usage Billing. Services must be priced on a short term basis allowing users  to release {libérer} (and not pay for) resources as soon as they are not needed (ibid : même endroit, même source).

Elasticity. Additional resources can be (a) provisioned, possibly automatically, when an application load increases and (b) released when load decreases (scale up and down) ([Bu-1] Partie I, chap. I, p. 17).

SaaS : Software as a Service

Les logiciels SaaS (développés par des éditeurs) s'adresse à l'utilisateur final. Celui-ci pourra travailler sans jamais avoir à se préoccuper des questions d'administration (installation et mises à jour des logiciels ; plus sauvegardes de ses données [documents, photos, vidéos, etc.]).

Intérêt des logiciels SaaS :

  • Les logiciels SaaS sont faciles à utiliser, ils présentent un nombre limité de fonctionnalités (du fait de leur spécialisation).
  • Les logiciels SaaS facilitent le partage et la publication de contenus (ils donnent aussi la possibilité d'agréger des contenus).
  • Les logiciels SaaS sont vendus au juste prix, en fonction des besoins de l'utilisateur, et sur la base d'abonnements qui, par définition, permettent de lisser les coûts.

Services […] can be accessed by end users through Web portals. ([Bu-1] Partie I, chap. I, p. 15).

Consumers are increasingly shifting from locally installed computer programs [e.g., word processing or spreadsheet] to online software services that offer the same functionality (ibid : même endroit, même source).

This model of delivering applications [SaaS] alleviates the burden of software maintenance (ibid).

PaaS : Platform as a Service

Les plateformes PaaS (qui sont maintenues par des « architectes ») s'adressent aux éditeurs de logiciels SaaS. Ces derniers pourront développer et déployer leurs logiciels sans jamais avoir à se préoccuper ni des contraintes d'environnement ni des contraintes matérielles.

Intérêt des plateformes PaaS :

  • Les plateformes PaaS facilitent la mise en production des logiciels (SaaS) à partir des environnements de préproduction (qui sont des environnements de tests).
  • Les plateformes PaaS fournissent les composants de base (serveurs/frameworks/librairies) qu'il conviendra d'utiliser, selon le type de logiciel à développer (site Web/logiciel de calcul/logiciel de traitement de données).
  • Les plateformes PaaS fournissent les différents outils qui permettront : a) d'analyser les développements (c'est-à-dire le code des logiciels) ; b) de sécuriser l'accès aux logiciels ; c) de gérer la question des tarifs, des comptes clients et des factures, dans le cadre du paiement à la demande (pay-per-use) ; d) d'analyser le trafic généré et le comportement des clients.

A cloud platform [easily programmable], known as Platform as a Service, offers an environment on which developpers create and deploy applications and do not necessarily need to know how many processors or how much memory that applications will be using ([Bu-1] Partie I, chap. I, p. 14).

Exemples de frameworks directement utilisables :

  • Zend[-PHP] (première version : 1999), pour développer en PHP (langage de programmation) ;
  • ASP.NET (2002), pour développer en C# ;
  • Django (2005), pour développer en Python ;
  • RoR (Ruby on Rails, 2005), pour développer en Ruby ;
  • Express.js (2010), pour développer (côté serveur) en JavaScript ;
  • Java EE (Java Platform Enterprise Edition, 1999) ou Struts (2006), entre autres, pour développer en Java .

IaaS : Infrastructure as a Service

Les infrastructures IaaS (qui sont maintenues par des « exploitants ») s'adressent des architectes. Ces derniers pourront maintenir leurs plateformes sans jamais avoir à se préoccuper des contraintes de gestion qu'impose un centre de données (data center) (qui peut compter jusqu'à plusieurs milliers voire plusieurs dizaines de milliers de serveurs [comme celui de Portugal Telecom]).

Intérêt des infrastructures IaaS :

  • Les infrastructures IaaS permettent d'agir sur les ressources (puissance de calcul/mémoire/bande passante des entrées/sorties) à allouer ou au contraire à libérer, en fonction de la charge, c'est-à-dire en fonction du nombre de tâches à réaliser (typiquement le nombre de requêtes qu'un serveur de page Web aura à traiter).
  • Les infrastructures IaaS permettent de virtualiser les ressources à allouer : une machine virtuelle donnée, faisant intervenir système d'exploitation, serveurs logiques (qui sont des logiciels), framework(s)/librairie(s) et logiciel(s) de plus haut niveau, pourra être exécuté — alternativement, et de manière transparente — par plusieurs serveurs physiques (qui eux sont de vraies machines).
  • Les infrastructures IaaS donnent la possibilité de choisir son système d'exploitation ainsi que les différents composants (serveurs, framework[s] et librairie[s]) dont l'éditeur aura besoin pour développer ses logiciels.

Offering virtualized resources (computation, storage and communication) on demand is known as Infrastructure as a Service. A cloud infrastructure enables on demand provisioning of servers running several choices of operating systems and customized software stack ([Bu-1] Partie I, chap. I, p. 13-14). 

Liens utiles :