Written by

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’ex­pli­quer 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’ou­tils 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’oc­cu­per 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’ac­cè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’es­pace 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’in­fra­struc­ture.

Une couche d’isolation (virtualisation ou conteneurisation5))

Il s’a­git 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’ac­cè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’a­git 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’im­porte quelle dis­tri­bu­tion orien­tée ser­veur. Il s’a­git du pont entre le maté­riel — même vir­tua­li­sé dans une couche d’i­so­la­tion — 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é­cu­tion pos­sible.

L’infrastructure logicielle

Nous y voi­là.

Vous avez besoin d’exé­cu­ter votre code sur votre ser­veur, et ce code a des dépen­dances fortes à beau­coup d’ou­tils et de biblio­thèques. Il s’a­git de bases de don­nées, de ser­veurs (comme un ser­veur HTTP), d’in­ter­pré­teurs (comme Python, PHP, Node.js, etc), peut-être de bro­kers, de solu­tions de caches, d’in­dexeurs, et autres. Il vous fau­dra éga­le­ment dis­po­ser d’ac­cè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’ad­mi­nis­tra­tion 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é­ber­ge­ment, 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é­cu­tion 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’ac­cè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’oc­cupe de gérer le data cen­ter — le sien propre ou celui de son sous-trai­tant —, l’ac­cè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é­cu­ter.
  • 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’ap­puyer 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’in­fra­struc­ture 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’ad­mi­nis­tra­tion de l’in­fra­struc­ture, 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’u­ti­li­sa­teur, 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’u­ti­li­sa­teur. 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’u­ti­li­sa­teur, ces choix sont trans­pa­rents : vous accé­dez sim­ple­ment à l’ap­pli­ca­tion. Rien de plus.
  • ce que vous devez anti­ci­per : il vous sera impos­sible d’ac­cé­der au ser­veur pour l’a­dap­ter à vos besoins. Vous êtes limi­tés à l’u­sage de l’ap­pli­ca­tion. 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’ap­pli­ca­tions dans ce sens, vos coûts d’a­bon­ne­ments risquent d’ex­plo­ser (mul­ti­pliés par le nombre d’u­ti­li­sa­teurs × 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’a­vez 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’en­semble 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é­ber­ge­ment. 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’im­porte quel pro­gramme dans votre espace uti­li­sa­teur, d’exé­cu­ter 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’i­so­la­tion — 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é­ber­ge­ment 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’en­vi­ron­ne­ment 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’es­père que vous me par­don­ne­rez pour ce rac­cour­ci : j’es­saie 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é­ber­ge­ment 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