Choisir son hébergement

Choisir son hébergement

Je m'abonne
Temps de lecture: 8 mins

Faire des applications c’est sympa, mais quand il faut passer par la case hébergement … c’est plus compliqué.

Donc on demande à Google "héberger application web" et là … il y a pléthore d’hébergeurs et dans ces hébergeurs, une pléthore d'offres. Facile de choisir non ?!

Déjà c'est quoi un hébergeur ?

Un datacenterovhcloud.com

C'est une société qui s'occupe d'héberger ton terrain de jeu chez lui. Il met à disposition une petite partie de son espace pour toi. Si tu veux un site web, il propose souvent des éditeurs de sites, mais sa source principale d'activité c'est d'héberger.

Ils sont garants de la sécurité physique et numérique des données, c'est à dire qu'ils protègent les data qui sont sur ton hébergement d'un vol et les mettent à disposition en fonction de tes besoins.

Un hébergeur français bien connu c'est OVH, mais il y a aussi O2switch et plein d'autres.

Les plus gros ont des datacenters partout dans le monde pour une plus haute disponibilité des données mais aussi pour veiller à la réglementation RGPD. Un datacenter ça coûte cher et c'est soumis à des problématiques de génération de chaleur gargantuesque liés à la consommation des serveurs. Certains essayent d'innover sur du watercooling, d'autres immergent carrément leurs serveurs comme Microsoft.

Datacenter dans la merMicrosoft.com

A première vue, on parle de serveurs mais Jamy, c'est quoi un serveur ?

C’est une machine qui permet de faire tourner des trucs. En fonction de son CPU et de sa RAM, on peut y faire tourner plus ou moins de trucs.

Euuuuh mais attends, t’es en train de nous expliquer le fonctionnement d’un PC là ?

C'est un peu ça.

Un serveur c’est juste un PC qui est optimisé pour faire tourner des applications en réseau. En général il n’y a pas d’interface graphique car c’est gourmand en ressources (coucou Windows Server). Et il est très bien optimisé pour tourner h24 7/7 sans être trop gourmand en énergie (ça dépend de la config aussi).

Donc gardons en tête pour la suite que tout se base sur des serveurs.

Pour résumer, on distingue cinq grosses parties dans l’hébergement :

  • L’hébergement mutualisé où on partage la place sur le serveur avec d’autres utilisateurs (c’est la solution la plus économique) et en règle générale c’est du WordPress ou du Joomla de préconfiguré. Le plus économique mais le moins personnalisable.

  • L’hébergement VPS (Virtual Private Server) où un serveur physique est partagé virtuellement avec des utilisateurs mais avec beaucoup de liberté pour eux. On peut soit le gérer en CLI, soit avec des outils graphiques type Cpanel.

  • L’hébergement cloud (Amazon AWS, Google Cloud Compute etc …)

  • Les Platform as a Service (PaaS)

  • Le Bare Metal (ça claque ce nom on est d’accord ?), c’est ni plus ni moins qu’une machine physique que tu loues chez un hébergeur (ou en self-hosted si c’est ton kiff !).

​Quand j’ai hébergé pour la première fois, c’était une vraie galère de me décider.

1. Le Mutualisé

C’est la solution pour un projet simple type site vitrine par exemple. Les ressources sont mutualisées (tu l’as pas vu venir celle-là) entre les utilisateurs.

En général les hébergeurs t’offrent un nom de domaine et un peu de place sur un disque dur. C’est la solution la plus simple, mais la plus restrictive.

Souvent tu ne peux pas installer la version de PHP (PHP n'est pas mort !) que tu veux ou alors des extensions sont manquantes, tu ne peux pas faire de python (en même temps qui voudrait en faire soyons honnête !) ou nodeJS n'est même pas installable. Bref, c’est bien pour un petit site, sans gros backend. On ne va pas non plus être trop exigeant sur les performances car des milliers de sites se partagent les mêmes ressources.

Mutualisé

On ne va pas s’attarder sur cette solution car pour un développeur, c’est pas terrible.​

2. Le VPS

Là on commence à s’amuser !

Pourquoi ? Parce qu'on a un peu plus les mains dans le cambouis.

Tout d’abord un VPS c’est quoi ? C’est un serveur bare metal qu’on subdivise virtuellement en plusieurs petits serveurs (virtuels donc).

Il y en a deux grandes catégories :

  • Ceux gérés en interface graphique (type Cpanel) qui sont sympa pour les devs qui ne veulent pas trop se prendre la tête, cependant plus restrictif en terme d’application mais qui permettent de bien s’amuser (moi j’ai commencé chez O2switch et c’est VRAIMENT facile d’utilisation, presque aussi facile qu’un mutualisé).

  • Ceux où tu installes toi même ta distribution Linux (ou Windows Server … ouais ça existe il paraît !). On s’attardera sur ceux-là au fil de l’article.

Les VPS

3. Le Cloud

C’est un type d’hébergement ultra intéressant pour ceux qui veulent de la haute disponibilité car ton app est hébergée sur plusieurs serveurs dans le monde entier (d’où le terme de cloud) et tu ne paies que pour ton utilisation (si tu la laisses tourner h24, tu paies h24, sinon tu coupes et tu ne paies plus).

C’est sympa pour des tests ou du dev car tu crée à ta guise ta machine virtuelle et tu la supprime quand tu veux.

C’est sympa mais si tu débutes, c’est effrayant ! Mieux vaut d’abord se faire la main sur un serveur VPS et surtout comprendre comment fonctionne un serveur pour avoir moins peur d’aller sur ce genre de solution.

Le cloud

4. Les PaaS

Si tu veux toucher le moins possible à l’infra, les Platform as a Service sont intéressantes.

Parmis elles, on à Netlify, Vercel, Heroku …

Tu mets ton code sur Git, tu configures tes variables d’environnements et tu push sur le PaaS. Tu peux oublier la partie config de l’infrastructure, le nginx, le ssl etc … c’est vraiment du plug'n play. Et niveau tarification c’est abordable mais tu peux avoir quelques surprises à l’étape de facturation (Coucou Heroku !).

Avec ce genre de service, tu peux oublier l’utilisation de docker par exemple, c’est selon leurs règles de déploiement à eux.

5. Le Bare Metal

Le bar métalLe bar métal (Ok ... c'était nul !)

Soit tu loues ta machine chez un hébergeur, soit c’est chez toi (self-hosting)

Si c’est chez l’hébergeur, la maintenance matérielle reviendra à celui-ci, sinon c’est toi qui va devoir t’en charger. Et bien sûr la consommation électrique qui va avec (en fonction de ta machine) peut être aussi un élément à prendre en compte.

Mais en général, tu peux te faire une config de quelques Raspberry et ça marche bien aussi.

Un élément aussi à prendre en compte est la sécurité dans ce genre de solution.

Si tu décides de faire du self-hosting, alors tu ouvres des ports, donc une surface d’attaque potentielle pour des personnes malveillantes et ça c’est à prendre en compte aussi dans ton choix.

Bare Metal(Le schéma du BM est ultra simplifié)

Bref, maintenant qu’on a fait un rapide tour d’horizon de ce qui existe en terme de possibilités voici un récapitulatif de ce que tu peux / ne peux pas faire et ce que tu DOIS faire sur chaque solution :

Type d'hébergement

Skills Infra

Tarif (par mois)

Ce que tu dois gérer (en plus de ton code)

Mutualisé

-

Faible (quelques euros)

Rien (l’hébergeur s’occupe de tout)

VPS

++

Entre 3€ et 50€

Sécurité, backups, mises à jour, monitoring

Cloud

+++

Free tier (mais si tu scales, ça peut monter très haut)

Tout : installation et gestion complète de ton infrastructure

PaaS

+

0€ (fonctionnalités avancées → ~20€)

Déploiement via la plateforme, gestion des variables d’environnement, parfois le scaling automatique

Bare Metal

+++

À partir de 50€ (selon l’hébergeur)

Tout : gestion complète de l’infrastructure physique, sécurité, mise à jour du matériel

C'est mon point de vue personnel et bien entendu ça varie d’un développeur à un autre en terme de feeling et d’expérience mais voici ce que je recommande pour débuter :

  • Un serveur VPS via un Cpanel ça permet de mettre un premier pas dans le cambouis, la gestion du ssl, les emails, le déploiement de tes applications … ça permet d’éviter d’être perdu quand tu passeras à plus gros.

  • Ensuite tu peux prendre un VPS où tu dois tout monter, ça c’est drôle et ça te fait vraiment monter en skill.

Après ça dépendra de ce que tu veux. Soit t’as l’utilité d’un bare metal chez un hébergeur et dans ce cas, faut le rentabiliser, soit tu t’orientes vers du self-hosting qui coûte beaucoup moins cher sur le long terme.

Le choix dépendra vraiment de tes objectifs.

Personnellement je n’ai jamais autant appris qu’en bidouillant chez moi sur mon infra.

Le but de cet article est donc d’introduire la série d'articles suivante :

La gestion d'un serveur VPS

On balayera la sécurité, comment on accède à son serveur, l’installation d’un serveur web dessus, le ssl etc …

J'ai classé ça en "DevOps" car pour moi ça fait parti de la partie opérationnelle d'un site web.

J’espère que cette série t’aidera !