Quel hébergement pour vos applications web en 2020 ?

Publié le 4 juillet 2019 par Nicolas Mérouze | application web

Cet article est publié sous licence CC BY-NC-SA

Nous vous proposons de découvrir les avantages et inconvénients des offres d'hébergement d'applications web : on-premise, location de serveurs dédiés, IaaS, CaaS, PaaS, serverless, etc.

Avec l'arrivée du Cloud, les solutions se sont multipliées et il peut être complexe de les différencier.

Malgré tout, de réelles avancées ont été faites pour rendre l'hébergement plus facile à configurer et à moindre coût.

À tel point que dans certaines situations, on peut se passer d'infogérance ou d'administrateur système.

"Comment réussir votre application web métier"

Hébergement Cloud

L'émergence du DevOps

Le DevOps est un ensemble de pratiques qui permet d'associer développement et opérations.

Avec un besoin de mises à jour fréquentes pour rester innovant, le modèle traditionnel du développement d'applications avec des mises à jour espacées de plusieurs mois ou même années n'est plus possible.

Pour pouvoir mettre en production régulièrement, être agile n'est qu'une partie de l'équation. Le DevOps est là pour accélérer le processus grâce à une meilleure synergie entre les développeurs, les testeurs, les chefs de projets et les clients.

Cela passe par l'utilisation d'outils pour le contrôle du code, l'exécution des tests automatisés à chaque changement de code, le monitoring, l'automatisation de la gestion de l'infrastructure, etc.

Néanmoins, l'impact est important sur l'hébergement de vos applications web.

Les contraintes du on-premise

Parlons d’abord du on-premise (auto-hébergement en français). Dans ce cas, vous achetez et utilisez vos propres serveurs. Le seul avantage désormais pour cette solution est de pouvoir avoir un contrôle total si des lois vous y oblige ou si c’est un avantage concurrentiel pour votre entreprise. Dans tous les autres cas, le Cloud est à privilégier.

En effet, l’on-premise a beaucoup de contraintes. Tout d’abord le coût initial d’achat des serveurs est important. Le délai de livraison de ces serveurs peut être de plusieurs semaines et il est difficile d’estimer correctement le nombre de serveurs nécessaires sur le moyen et long terme. De plus les pannes peuvent vous coûter cher si vous n’avez pas la pièce de rechange disponible, ou pire s’il faut remplacer un ou plusieurs serveurs en même temps.

Et c’est sans parler des problématiques réseau, de monitoring, et plus encore.

Location de serveurs dédiés

Comme le coût initial du on-premise est trop important, une alternative peut être la location de serveurs dédiés.

Dans ce cas, l’hébergeur va vous louer un de leurs serveurs dans leur data center. Vous y avez accès rapidement mais le choix peut être limité, certains serveurs peuvent ne plus être en stock.

Néanmoins la montée en charge n’est pas simple. Plus vous aurez de serveurs, plus vous aurez de composants à configurer : stockage et base de données partagées, réseau privé, redondance, etc.

Télécharger le guide ultime pour réussir votre application web métier

Les différentes offres du Cloud

Le Cloud n’a pas tous ces problèmes. Il n’y a pas de coûts initiaux, vos serveurs sont disponibles en quelques secondes, et les pannes ont un impact souvent négligeable sur votre activité.

Les incidents existent bien sûr. Récemment Google Cloud a été victime d’un problème de réseau, mais c'est très rare. De nombreux sites et applications comme Youtube, Gmail, Snapchat et Shopify ont été indisponibles. Mais le problème a été résolu rapidement.

Cependant, le nombre de solutions qui s’ouvrent à vous est dense et peut faire peur. Voici un guide qui vous permettra d’y voir plus clair.

Comparaison des différents types d'hébergement

Infrastructure-as-a-Service (IaaS)

Les solutions IaaS permettent d’utiliser l’infrastructure (réseau, serveurs, stockage, etc) d’un tiers. Tout est virtualisé et la création des ressources demandées se fait très rapidement.

De plus, la configuration et la gestion des services utilisés peuvent se faire avec une API ce qui a ouvert la voie à la création de nombreux outils pour automatiser de nombreuses tâches.

Enfin, la facturation se fait à la seconde. C’est-à-dire que vous ne payez que ce que vous utilisez. Vous pouvez utiliser une machine virtuelle pendant 5 minutes, pour un test de charge ou une tâche particulière par exemple, et vous ne paierez que 5 minutes de consommation.

L’expertise à votre service

La gestion de l’infrastructure par des experts permet d’avoir une grande fiabilité ainsi qu’un monitoring 24/7/365 ce qui vous coûterez une somme très importante si vous le faisiez en interne avec du on-premise.

La majorité du marché IaaS est détenue par Amazon AWS (EC2), Google Cloud Platform (CE) et Microsoft Azure (VM). De nombreuses sociétés ont fait un choix 100% Cloud.

Avec une croissance rapide, Netflix représente aujourd’hui 15% du trafic internet et utilise Amazon AWS. Il leur était impossible de faire la montée en charge de leur propre infrastructure avec une telle croissance et ont donc décidé d’utiliser une solution IaaS.

Containers-as-a-Service (CaaS)

L’origine des conteneurs

Malgré l’automatisation de la gestion de l’infrastructure, la configuration des machines virtuelles pour l’exécution d’applications web reste imparfaite.

Des outils existent pour l’automatiser, par exemple Ansible, mais une partie de la configuration est spécifique au système d’exploitation utilisé. Une mise à jour de l’OS ou un changement d’infrastructure demandera un changement de la configuration.

Les conteneurs sont la solution à ce problème. Ils offrent un moyen standard de joindre le code, les configurations et les dépendances de votre application dans un seul objet, le conteneur. Cet objet est ensuite déployable partout.

Avantages des solutions CaaS

En s’appuyant sur une solution IaaS, un CaaS vous permet d’y inclure la gestion des conteneurs à l’aide d’une API. Comme pour les APIs des solutions IaaS, de nombreux outils se sont créés pour automatiser la gestion des conteneurs.

De plus, de nombreuses images de conteneurs sont publiques réduisant encore plus le travail pour le DevOps.

Une solution CaaS apporte donc de nombreuses automatisations comparées à un IaaS. Vous perdez un peu de contrôle sur la configuration des machines virtuelles, mais vous gagnez une stabilité et flexibilité accrue.

Et avec la standardisation des conteneurs, il est désormais possible de migrer d’un prestataire à un autre avec une période d’indisponibilité minimale voire nulle. Vous pouvez donc migrer d’Amazon AWS (EKS) vers Google Container Engine (GKE) ou Microsoft Azure (AKS) ou alors en utiliser plusieurs dans un souci de redondance.

Plateform-as-a-Service (PaaS)

Avec un PaaS, presque rien n’a besoin d’être configuré. Une seule commande et votre application est en production. Aucun pré-requis en amont ou presque.

Certaines de ces solutions utilisent le terme NoOps en contraste avec DevOps. Les opérations sont réduites au minimum, mais il peut cependant rester des pratiques DevOps à mettre en place.

C’est la solution idéale si personne en interne n’a de compétences DevOps. Mais le contrôle est moins grand qu’avec une solution CaaS ou IaaS et vous ne trouverez peut-être pas un PaaS compatible avec votre application.

Heroku, filiale de Salesforce, est le PaaS le plus populaire, mais il n’y a pas de serveurs en France contrairement à un PaaS français comme Scalingo.

Serverless

Comme pour le PaaS, le serverless peut être considéré comme une solution NoOps. Mais contrairement à une solution PaaS, avec le serverless les ressources s’ajustent automatiquement. De ce fait, quand aucune ressource n’est utilisée rien n’est facturé.

Malgré le nom, il y a bien des serveurs mais sa gestion est totalement abstraite. Les outils sous-jacents vont donc gérer le nombre de serveurs nécessaires en fonction de la charge et s’il n’y a aucune charge, aucun serveur ne sera utilisé.

C’est impossible avec d’autres solutions, car le temps de démarrage d’un serveur est trop long, les serveurs sont donc toujours allumés. Une solution serverless permet donc réellement de ne payer que ce que l’on consomme.

Cependant, l’architecture du code d’une application web avec le serverless sera très différente. Chaque fonction de l’application va être exécutée séparément des autres. Une application existante ne peut donc pas utiliser une solution serverless sans modification.

Hébergement statique

Une dernière chose à noter. Comme vu dans notre article sur l’architecture des applications web, le code du backend est de plus en plus séparé du frontend. Dans ce cas, les deux peuvent être hébergés indépendamment.

Mais le frontend n’étant constitué que de fichiers statiques, pas besoin de sortir l’armada. Des solutions peu onéreuses existent pour l’hébergement statique, par exemple Netlify ou Firebase (Google).

Critères de sélection IaaS vs CaaS vs PaaS

Conclusion

Utiliser le Cloud pour héberger votre application vous apporter de nombreux avantages. Il y a des solutions adaptées à chaque type d’entreprise et de projets. À vous de choisir la bonne en fonction de votre équipe ou votre prestataire externe et de vos besoins.

Pour les organisations qui utilisent le DevOps, les principaux bénéfices cités sont : la rapidité de mise sur le marché (mentionnée par 70% du panel), la productivité (67%), la pertinence pour le client (67%), l’innovation (66%) et la qualité des produits/services (64%).

Les entreprises utilisant le DevOps en sont globalement satisfaites. Il peut y avoir des obstacles dans votre entreprise comme des technologies héritées.

Le mieux dans ce cas est de trouver un petit projet sur lequel mettre en place les pratiques DevOps pour prouver que c’est bénéfique et pour ensuite petit à petit migrer le reste du système d’information.


L'équipe Synbioz
Libres d'être ensemble.

Télécharger le guide ultime pour réussir votre application web métier