Serverless vs Containers. Quelle est l’architecture cloud la moins chère ?
Déjà, les deux solutions ont l’intérêt de générer moins de frais et d’être plus souples que des applications hébergées sur des serveurs traditionnels.
Les applications serverless sont moins onéreuses que les containers en termes de TCO (coût total de possession) car elles ne nécessitent pas de ressources pour la maintenance des serveurs, ni l’installation de patchs (correctifs), ni de mises à jour du système d’exploitation, ni de redémarrage des services en cas de panne, ni de gestion de répartition des charges, (…).
Et cela a de quoi séduire !
Selon une étude de Cloud Foundry Foundation, 1/3 utiliseraient déjà une architecture serverless. AWS, Azure et GCP proposent tous du Serverless mais AWS semble – pour l’instant – le plus populaire en termes de services sans serveur. A noter également l’alternative intéressante de Scaleway, cloud provider français, qui intègre nativement la distribution open-source de Kubernetes (K8s).
Selon cette même étude, près de 80% utilisent AWS Lambda comme plateforme plutôt que EC2 qui nécessite de manager et de provisionner (VM) l’environnement de développement en prévoyant les capacités de calcul et de mémoire nécessaires à vos applications (CPU).
De plus, Amazon Elastic Compute Cloud (EC2) exécute non seulement une copie complète d’un système d’exploitation, mais aussi une copie virtuelle de tout le matériel dont le système d’exploitation a besoin pour fonctionner. C’est un service IaaS par abonnement basé sur l’utilité et facturé en fonction de la consommation de ressources et l’allocation des instances. Le coût est basé sur le temps d’exécution.
Lambda offre des ressources cloud à la demande extensibles qui sont proposées en mode function-as-a-service par AWS. Ainsi, les ressources nécessaires sont scalables en fonction des besoins en temps réel. La mise à l’échelle est entièrement automatisée. Vous avez des coûts variables en fonction du nombre de requêtes mensuelles, la taille moyenne des temps de réponses, les pics de charge, etc.
Cependant, certains dénoncent une explosion des coûts à l’échelle en termes de consommation de ressources.
L’infrastructure, les capacités de calcul, le stockage, les charges de maintenance, les temps de développement nécessaire, la configuration réseau, les corrections de bugs, les mises à jour et les correctifs, la gestion de VM, etc…. tous ces facteurs influent incluent sur le coût.
Dans le cas des applications en containers, vous payez non seulement pour toutes les ressources que vous avez provisionnées mais aussi pour leur maintenance dans le temps ; contrairement au serverless.
De plus, le temps nécessaire a configurer les serveurs ou à résoudre un problème de machine virtuelle est consommateur de ressources et cela a un impact sur les délais de développement et de mise sur la marché de nouvelles applications.
En revanche, dans le cas où vous avez un volume de trafic très important avec énormément de requêtes nécessaires, alors le Serverless n’est en effet peut-être pas le plus économique.
Pour comparer entre containeurs et serverless, il faut regarder dans le détail du provisionnement des services dont vous avez besoin. Les coûts du serverless sont linéaires par rapport à l’utilisation. Il ne devient pas plus cher au fur et à mesure que vous l’utilisez. Souvent, c’est même le contraire !
Conclusion ?
Le Serverless apparaît moins cher en terme de TCO. En revanche, ce n’est pas forcément la meilleure approche dans le cas d’applications particulièrement complexes à fort trafic qui nécessitent des temps de traitements conséquents et un contrôle de l’environnement d’exploitation.
Pour aller plus loin :
En savoir plus
Harington revient sur les principaux enjeux de ses clients et les raisons pour lesquelles ils mettent un framework de test automation. Course à l’innovation, pression concurrentielle, les évolutions de produits se multiplient et les releases d’accélèrent. Et le marché n’attend pas ! L’automatisation des tests vous aide à simplifier cette étape…
Vous voulez vous appuyer sur une plateforme cloud pour tester vos applications et les automatiser ? Vous avez raison ! Pourquoi vous appuyer sur une plateforme cloud ? Tout simplement par ce qu’elle va fournir toute l’infrastructure dont vous avez besoin pour réaliser vos tests. Dans le processus de test, vous avez besoin…
1. Selenium WebDriver est de loin le plus connu et il est en open-source. Très efficace pour tester toutes vos applications sur tous les navigateurs web, il offre aussi la possibilité de choisir son langage de programmation (Python, Java, etc.). Il permet de mener tous les tests fonctionnels end-to-end. Il permet…