On nous pose sou­vent des ques­tions qui sont légi­times pour qui ne connait pas always­da­ta. Parmi elles, l’une qui revient sou­vent est celle du prix, annon­cé comme trop éle­vé face à cer­taines offres vues comme concur­rentes. Cette incom­pré­hen­sion est due à des dif­fé­rences fon­da­men­tales entre ces offres. Pour ne plus com­pa­rer patates et carottes, et parce que nous com­pren­nons très bien que ce ne soit pas évident1)2), tâchons d’expliquer ce que nous fai­sons chez always­da­ta.

question GIF @Giphy

Qu’est-ce que le Cloud ?

Dans les data cen­ters, on trouve des serveurs3), des équi­pe­ments réseaux — rou­teurs, switchs —, des câbles (beau­coup, beau­coup de câbles) pour les connec­ter, et pro­ba­ble­ment des sys­tèmes de sto­ckage dis­tant — comme des SANs par exemple.

Si vous avez besoin de rendre vos appli­ca­tions dis­po­nibles en ligne4), il vous fau­dra pous­ser votre code sur ces ser­veurs. Votre appli­ca­tion sera alors acces­sible à dis­tance à vos uti­li­sa­teurs.

Pour exé­cu­ter votre code, vous devrez vous appuyer sur une infra­struc­ture d’outils com­plexes, qui devront être dis­po­nibles sur votre héber­ge­ment. La réa­li­té, c’est qu’il va fal­loir s’occuper de ces outils. Et c’est exac­te­ment ce que nous fai­sons à always­da­ta : nous ne nous conten­tons pas de vous louer une machine ou un espace, nous le gérons pour vous.

Derrière le brouillard

Comme nous le disions, les ser­veurs-dans-le-nuage sont juste des ordi­na­teurs. Voyons de quoi nous avons besoin pour les faire fonc­tion­ner.

TL;DR : ce pas­sage est assez dense, si vous ne sou­hai­tez pas entrer dans les détails, je vous conseille de pas­ser à la suite. Pour résu­mer : le Cloud, ce sont des infra­struc­tures ser­veurs dans des data cen­ters, reliées à Internet, et sur les­quelles doit être ins­tal­lée une couche logi­cielle capable de faire tour­ner votre propre appli­ca­tion.

Un data center

Ça peut être évident ou pas, mais il faut bien un endroit où ins­tal­ler, bran­cher, et faire fonc­tion­ner nos ser­veurs. Le data cen­ter héberge phy­si­que­ment les machines, et four­nit tout ce qui est néces­saire à leur fonc­tion­ne­ment (élec­tri­ci­té, tem­pé­ra­ture contrô­lée, accès sécu­ri­sés, etc).

Du réseau

Il nous faut connec­ter les ser­veurs au reste du monde, donc une infra­struc­ture réseau est indis­pen­sable. Ce qui implique des rou­teurs (pour se connec­ter aux four­nis­seurs d’accès à Internet), des switchs (pour dis­tri­buer le réseau aux machines), des fire­walls, des sys­tèmes anti-DDoS, des sondes, etc.

Des serveurs

Oui, c’est tri­vial, mais il nous faut bien des machines pour pou­voir vous les louer. Les ser­veurs sont donc ins­tal­lés et confi­gu­rés pour four­nir des CPU, de la mémoire, de l’espace de sto­ckage, peut-être des GPU pour des cal­culs intenses, etc. Ils peuvent être fabri­qués par dif­fé­rents contruc­teurs, avec des carac­té­ris­tiques tech­niques dif­fé­rentes (modèles et archi­tec­tures de CPU, quan­ti­té de RAM, etc).

Ils sont la puis­sance brute de l’infrastructure.

Une couche d’isolation (virtualisation ou conteneurisation5))

Il s’agit de solu­tions au niveau du noyau ou équi­valent qui exé­cutent des machines vir­tuelles ou des conte­neurs sur les machines physiques6) et leur four­nissent l’accès aux res­sources maté­rielles (mémoire, temps ou puis­sance CPU, espace disque, réseau, etc). Ces tech­no­lo­gies isolent vir­tuel­le­ment les comptes sur le ser­veur en offrant aux uti­li­sa­teurs un accès au sys­tème plus ou moins com­plet, même s’il ne s’agit pas de la machine phy­sique.

Un système d’exploitation

C’est le cœur appli­ca­tif de votre machine. Ça peut être un GNU/Linux, un BSD, un Unix, un Windows, ou n’importe quelle dis­tri­bu­tion orien­tée ser­veur. Il s’agit du pont entre le maté­riel — même vir­tua­li­sé dans une couche d’isolation — et le reste de la couche appli­ca­tive, pour lui four­nir accès à la mémoire, au CPU, au réseau, etc. Sans OS, pas d’exécution pos­sible.

L’infrastructure logicielle

Nous y voi­là.

Vous avez besoin d’exécuter votre code sur votre ser­veur, et ce code a des dépen­dances fortes à beau­coup d’outils et de biblio­thèques. Il s’agit de bases de don­nées, de ser­veurs (comme un ser­veur HTTP), d’interpréteurs (comme Python, PHP, Node.js, etc), peut-être de bro­kers, de solu­tions de caches, d’indexeurs, et autres. Il vous fau­dra éga­le­ment dis­po­ser d’accès dis­tant, via SSH ou FTP ; peut-être d’un sys­tème de ver­sio­ning éga­le­ment (sans doute Git ou Mercurial) pour gérer le déploie­ment ; des ser­veurs de mes­sa­ge­rie seront aus­si néces­saires, pas pour héber­ger vos boites emails — même si ça reste pos­sible —, mais au moins pour per­mettre à votre appli­ca­tion ou à votre sys­tème de remon­ter les alertes en cas de pro­blème. Il vous fau­dra sécu­ri­ser la machine, mettre en place des fire­walls et des sys­tèmes de banis­se­ment pour pré­ve­nir les attaques.

C’est une pile tech­nique com­plexe et consé­quente qui doit être ins­tal­lée, confi­gu­rée, main­te­nue, mise à jour, et moni­to­rée. Elle vient sou­vent avec une inter­face d’administration pour per­mettre sa confi­gu­ra­tion.

Votre application

Félicitations 🎉 !

Vous avez fina­le­ment un ser­veur opé­ra­tion­nel. Vous pou­vez y déployer votre appli­ca­tion / site web / solu­tion dans un contexte de pro­duc­tion, et four­nir ce ser­vice à vos uti­li­sa­teurs.

knife cut GIF by Scooby-Doo GIF @Giphy

Voilà ce qui se trouve dans le nuage. Quel que soit le ser­vice que vous sou­hai­tez faire fonc­tion­ner en ligne, quel que soit votre four­nis­seur d’hébergement, la pile tech­nique reste proche de celle-ci, parce que ce sont les briques essen­tielles au fonc­tion­ne­ment d’une infra­struc­ture dis­tante. Cela signi­fie que pour le ser­vice que vous sou­hai­te­rez faire fonc­tion­ner, vous devrez vous sou­cier de cette pile ; ou vous devrez trou­ver un par­te­naire qui sau­ra s’en occu­per pour vous.

Infrastructure, Plateforme, Solution (as-a-service), quelles différences ?

Comme nous venons de le voir, cette pile tech­nique néces­saire à l’exécution de votre ser­vice est consé­quente, com­pli­quée à construire de zéro, com­plexe à main­te­nir. Depuis quelques années, le mar­ché s’est orga­ni­sé autour de dif­fé­rentes com­pé­tences pour four­nir ces ser­vices. C’est l’âge des pres­ta­tions as-a-ser­vice. On peut iden­ti­fier trois sortes d’offres qui ciblent des clients dif­fé­rents : IaaS, PaaS, SaaS. Heureusement, on peut les repré­sen­ter de la façon sui­vante :

IaaS vs PaaS vs SaaS schema

Les offres as-a-ser­vice sont glo­ba­le­ment des paquets cadeaux marketing7) qui regroupent des offres de métiers qui existent depuis long­temps : sys­da­min, archi­tectes réseaux, experts sécu­ri­té, DevOps… Tous ces gens qui font tour­ner les machines dans les sous-sols pour vous assu­rer la qua­li­té atten­due de vos ser­vices en ligne.

IaaS

Infrastructure-as-a-ser­vice est une solu­tion qui offre l’accès mini­mal à la struc­ture. Votre loca­tion vous donne accès à une machine à dis­tance, qui peut-être soit phy­sique, soit vir­tuelle. Votre four­nis­seur s’occupe de gérer le data cen­ter — le sien propre ou celui de son sous-trai­tant —, l’accès réseau, les machines phy­siques, les rou­teurs, switchs, le sto­ckage, et la couche de vir­tua­li­sa­tion dans le cas des VPS.

  • ce qui reste à votre charge : vous avez sous votre res­pon­sa­bi­li­té l’OS — sou­vent four­ni par votre héber­geur dans une ver­sion mini­male —, sa sécu­ri­té, la pile tech­nique, les biblio­thèques, outils, etc. Vous serez alors en mesure de déployer votre appli­ca­tion, de la confi­gu­rer pour la pro­duc­tion, et de l’exécuter.
  • ce que vous devez anti­ci­per : admi­nis­trer son ser­veur seul·e reste une lourde tâche. Vous allez devoir gérer vous-même tout le sys­tème de votre ou vos machines. Ce qui signi­fie assu­rer aus­si les astreintes 247, les coûts sala­riaux — ou les coûts de temps — liés au sysad­min et au réseau, les res­pon­sa­bi­li­tés liées à la sécu­ri­té, au backup, à la remise en ser­vice en cas de pépin, etc. Ces com­pé­tences sont chères. C’est aus­si pour vous la charge de gérer la per­for­mance des machines, les coûts de migra­tion. C’est un point de fonc­tion­ne­ment cri­tique dont vous devrez assu­mer seul·e la res­pon­sa­bi­li­té.

À noter : le four­nis­seur d’une infra­struc­ture IaaS peut lui-même s’appuyer sur une autre infra­struc­ture IaaS, par exemple en louant des VPS sur des infra­struc­tures phy­siques elles-même louées à un autre pres­ta­taire. Selon vos contraintes — juri­diques ou tech­niques —, pen­sez à véri­fier la façon dont fonc­tionne votre pres­ta­taire.

gets russian dolls GIF by Cheezburger @Giphy

PaaS

Platform-as-a-ser­vice four­nit l’infrastructure comme IaaS, mais main­tient éga­le­ment toute la pile sys­tème : OS, inter­pré­teurs, biblio­thèques, bases de don­nées, sécu­ri­té, etc. Elle four­nit sou­vent un moyen de gérer et de confi­gu­rer la solu­tion faci­le­ment. Ce peut être un uti­li­taire en ligne de com­mande, des fichiers de confi­gu­ra­tion dans votre pro­jet, un dépôt ver­sion­né spé­ci­fique, ou une inter­face web pour un accès cli­cko­drôme.

  • ce qui reste à votre charge : tout ce qu’il vous reste à faire est de confi­gu­rer votre appli­ca­tion dans son contexte de pro­duc­tion et de la déployer.
  • ce que vous devez anti­ci­per : c’est votre pres­ta­taire qui prend en charge tous les coûts de ges­tion et d’administration de l’infrastructure, du sys­tème, du réseau, et de la sécu­ri­té. C’est à vous de déployer votre appli­ca­tion en revanche, il ne pour­ra pas néces­sai­re­ment vous aider. De même, si la sécu­ri­té niveau sys­tème lui incombe, celle de votre appli­ca­tion reste dans votre champ de com­pé­tence. Pour faire simple : les coûts de DevOps sont pour vous.

SaaS

Software-as-a-ser­vice est une approche plus avan­cée où, en tant qu’utilisateur, vous sou­hai­tez accé­der à une solu­tion logi­cielle exis­tante sans avoir à la déployer. Dans ce type d’offre, votre abon­ne­ment vous donne accès au ser­vice en tant qu’utilisateur. Le four­nis­seur du-dit ser­vice, lui, uti­lise sa propre infra­struc­ture ou pla­te­forme, ou celle d’un sous-trai­tant. C’est le modèle prin­ci­pal rete­nu par les start-up tech­no­lo­giques.

  • ce qui reste à votre charge : pour vous en tant qu’utilisateur, ces choix sont trans­pa­rents : vous accé­dez sim­ple­ment à l’application. Rien de plus.
  • ce que vous devez anti­ci­per : il vous sera impos­sible d’accéder au ser­veur pour l’adapter à vos besoins. Vous êtes limi­tés à l’usage de l’application. C’est une solu­tion qui vous per­met un accès dis­tant à une app ou un ser­vice, comme vous uti­li­se­riez une app sur votre smart­phone, guère plus. Si vous com­men­cez à uti­li­ser beau­coup d’applications dans ce sens, vos coûts d’abonnements risquent d’exploser (mul­ti­pliés par le nombre d’utilisateurs × le nombre de ser­vices), et uti­li­ser une offre PaaS où vous pou­vez déployer toutes vos appli­ca­tions est sans doute plus adap­té.

Faisons donc un petit des­sin (j’aime bien les petits des­sins) pour résu­mer tout ça. Dans chaque petit nuage, chaque rôle qui est com­pris dans le coût de votre abon­ne­ment et sur les­quels, par exten­sion, vous n’avez donc pas la main direc­te­ment :

Schéma des domaines de compétences selon les types d'offres XaaS

Vous faites quoi, chez alwaysdata ?

Nous sommes un four­nis­seur de solu­tion PaaS. Nous sommes les pro­prié­taires de notre propre infra­struc­ture tech­nique, et nous main­te­nons pour vous l’ensemble du sys­tème qui vous est néces­saire pour offrir votre ser­vice à vos uti­li­sa­teurs. Ceci aus­si bien pour nos VPS et Serveurs dédiés que pour notre offre mutua­li­sée. De notre point de vue, il n’y a aucune dif­fé­rence entre toutes nos offres. Elles uti­lisent la même pla­te­forme, et la même infra­struc­ture. La dif­fé­rence tient dans le fait que dans le cas des VPS et ser­veurs dédiés, vous êtes seul sur les ins­tances, et vous ne par­ta­gez donc pas de res­sources avec d’autres uti­li­sa­teurs.

Nous avons fait le choix de ne pas être de simples four­nis­seurs IaaS depuis le début d’always­da­ta pour une rai­son simple : à l’époque, nous ne trou­vions pas de solu­tion offrant le niveau de fonc­tion­na­li­tés néces­saire et la flexi­bi­li­té vou­lus dans les offres d’hébergement. Nous avons donc conçu la nôtre pour la pro­po­ser à tous. C’est la rai­son pour laquelle nous ne pou­vons pas com­pa­rer notre offre et celle de four­nis­seurs de solu­tions IaaS : nous ne fai­sons sim­ple­ment pas le même métier, ne four­nis­sons pas les mêmes ser­vices, ni avec la même qua­li­té.

always­da­ta vous apporte le sup­port de tous les inter­pré­teurs dis­po­nibles sur le mar­ché, la pos­si­bi­li­té de faire tour­ner n’importe quel pro­gramme dans votre espace uti­li­sa­teur, d’exécuter des ser­vices en arrière-plan, dif­fé­rentes bases de don­nées SQL et NoSQL, un accès SSH com­plet, et bien d’autres fonc­tion­na­li­tés ! Même en mutua­li­sé, notre niveau de fonc­tion­na­li­tés est bien au-delà des solu­tions concur­rentes qui ne mettent sou­vent à dis­po­si­tion que le sup­port de PHP der­rière une unique ins­tance Apache, avec une base de don­nées MySQL et sans accès SSH.

La per­for­mance et la sécu­ri­té sont par ailleurs au cœur de notre concep­tion : nous ne nous appuyons pas sys­té­ma­ti­que­ment sur une couche de vir­tua­li­sa­tion pour uni­que­ment gérer de l’isolation — comme nous pou­vons sou­vent le voir ailleurs —, mais nous uti­li­sons les fonc­tion­na­li­tés natives du noyau et de l’OS pour iso­ler les comptes. Ce sys­tème nous per­met de vous four­nir un haut-niveau de per­for­mance sans com­pro­mis sur la sécu­ri­té. Nous uti­li­sons bien enten­du de la vir­tua­li­sa­tion à cer­tains endroits de la pla­te­forme, mais uni­que­ment si c’est un choix de concep­tion rai­son­né.

i see eye roll GIF by Warner Archive @Giphy

J’espère que cet article vous aura per­mis de mieux com­prendre les dif­fé­rences entre les offres d’hébergement qui s’offrent à vous. Si vous ne nous connais­sez pas encore, vous devriez faire un essai pour voir ce à quoi devrait res­sem­bler une offre PaaS moderne. Vous four­nir l’environnement le plus confor­table pos­sible pour exé­cu­ter vos appli­ca­tions reste notre objec­tif, depuis le début !

Notes   [ + ]

1. pas les patates et carottes, hein, je ne vous ferais pas cet affront
2. la nou­velle ver­sion du site devrait être beau­coup plus claire à ce sujet, mais ce n’est pas une rai­son pour faire attendre les expli­ca­tions
3. qui sont donc des ordi­na­teurs avec, la plu­part du temps, de grosses capa­ci­tés de cal­cul
4. je vous par­le­rai pro­chai­ne­ment du para­digme ser­ver-less dans un futur article, où nous décou­vri­rons que même ce type de solu­tion implique sou­vent… un ser­veur ¯\_(ツ)_/¯
5. là encore, je vous prépare un article sur les différences entre virtualisation, conteneurisation et isolation
6. les puristes vont avoir déjà posé mon nom sur leur liste noire en lisant ça, j’espère que vous me par­don­ne­rez pour ce rac­cour­ci : j’essaie de res­ter concis dans mes expli­ca­tions et la dif­fé­rence entre vir­tua­li­sa­tion et conte­neu­ri­sa­tion dans le contexte de l’hébergement est hors du péri­mètre de cet article
7. mais c’est impor­tant le papier cadeau, c’est la pro­messe de beau­coup de joies