Bien que le PaaS et l'informatique sans serveur n'impliquent aucune gestion en backend de la part du développeur, plusieurs facteurs séparent les deux modèles, notamment la scalabilité, le tarif et la capacité de déploiement en périphérie du réseau.
Cet article s'articule autour des points suivants :
Copier le lien de l'article
Étant donné que les architectures backend de l'informatique sans serveur et du PaaS (Platform-as-a-Service) gardent la totalité du backend invisible pour les développeurs, elles présentent quelques similitudes. Cependant, ces deux types d'architecture présentent de grandes différences, et certaines utilisations fonctionneront généralement mieux avec l'une ou avec l'autre, mais pas avec les deux. Les principales divergences entre le PaaS et l'informatique sans serveur sont la scalabilité, le tarif, le temps de démarrage, les outils et la capacité de déploiement en périphérie du réseau.
Les applications sans serveur se mettent à l'échelle instantanément, automatiquement et à la demande, sans configuration supplémentaire de la part du développeur ou du fournisseur. Elles sont par définition capables d'un passage à l'échelle vers le haut (appelé scale up ou mise à l'échelle verticale). En revanche, si les développeurs peuvent programmer des applications hébergées par le PaaS pour qu'elles passent à l'échelle vers le haut (scale up) ou à l'inverse vers le bas (scale down) à la demande des utilisateurs, il ne s'agit pas d'une caractéristique intrinsèque du PaaS, et les développeurs devront faire un certain nombre de prévisions pour que la mise à l'échelle se fasse correctement.
L'informatique sans serveur peut être comparée au fait de tirer de l'eau d'un robinet, l'eau représentant la puissance de calcul. Dans une maison moderne, on peut ouvrir un robinet à tout moment pour obtenir toute l'eau dont on a besoin. Le PaaS s'apparente davantage à un distributeur d'eau avec un service de livraison de bonbonnes. Il est toujours possible d'obtenir autant d'eau potable que nécessaire, mais il ne suffit pas d'ouvrir le robinet ; le consommateur doit demander au fournisseur de lui livrer davantage de bonbonnes si la demande augmente. Dans les deux cas, un tiers s'occupe des services en « backend » c'est-à-dire en arrière plan - en purifiant l'eau, en l'acheminant l'eau au bâtiment, etc. - mais seule l'eau du robinet peut être dosée avec précision, à la demande et en temps réel.
Une architecture sans serveur est capable de passer à l'échelle vers le haut (scale up) en faisant tourner de nouvelles instances de fonctions d'application au fur et à mesure qu'elles sont demandées. Elle peut également passer à l'échelle vers bas (scale down) en arrêtant les fonctions lorsqu'elles ne sont plus nécessaires ou lorsqu'elles ont été utilisées pendant une période déterminée. En fait, une application web sans serveur est capable de passer progressivement à l'échelle vers le bas jusqu'à l'absence totale d'activité, puis de redémarrer en quelques secondes ou millisecondes en réponse à un événement. Les applications basées sur le PaaS ne sont pas en mesure de passer à l'échelle vers le haut ou vers le bas aussi rapidement ou à un tel degré.
Pour poursuivre avec la métaphore de l'eau, les consommateurs qui utilisent l'eau du robinet paient exactement la quantité d'eau qu'ils consomment. De même, la facturation de l'informatique sans serveur est extrêmement précise, et les développeurs ne paient que ce qu'ils utilisent. Certains fournisseurs d'informatique sans serveur ne facturent aux développeurs que le temps précis d'exécution de leurs fonctions, jusqu'à quelques fractions de seconde pour chaque instance individuelle de chaque fonction. D'autres fournisseurs facturent selon le nombre de demandes.
Les consommateurs qui utilisent un distributeur d'eau et qui se font livrer des bonbonnes d'eau ne paient également que ce qu'ils utilisent, mais ils paient à la bonbonne et non au mètre cube. De la même manière, certains fournisseurs de PaaS ne facturent aux développeurs que ce que leur application utilise. Cependant, la facturation est loin d'être aussi précise que pour l'informatique sans serveur. D'autres fournisseurs de PaaS facturent leurs services au mois. Les développeurs peuvent généralement définir la quantité de puissance de calcul qu'ils souhaitent obtenir. Cependant, cette décision est prise à l'avance et n'est pas une réaction aux augmentations et aux diminutions de l'utilisation en temps réel.
Cette différence ne signifie pas nécessairement que l'architecture sans serveur est toujours plus abordable. De même qu'il devient rapidement très cher de laisser couler un robinet d'eau en permanence, les applications web dont le flux d'utilisation est important et constant sans grande fluctuation peuvent être coûteuses à faire fonctionner en utilisant l'informatique sans serveur.
Comme cela a été dit plus haut, les applications sans serveur peuvent être activées presque instantanément, dès qu'un événement déclenche une fonction d'application. Les applications construites basées sur un PaaS peuvent être opérationnelles rapidement, mais elles ne sont pas aussi légères que les applications sans serveur et prennent plus de temps à être opérationnelles. Pour éviter les temps de latence du côté de l'utilisateur, certaines fonctions des applications PaaS doivent fonctionner la plupart du temps ou en permanence.
D'une manière générale, les fournisseurs de PaaS fournissent aux développeurs davantage d'outils pour construire et gérer leurs applications, y compris des outils de test et de débogage. Comme les applications sans serveur ne sont pas exécutées sur des machines spécifiques, virtuelles ou non, et que les fonctions sans serveur doivent fonctionner de la même manière quoi qu'il arrive, les fournisseurs d'informatique sans serveur peuvent procurer certains outils, mais pas un environnement complet permettant de développer et tester l'application.
Le code sans serveur ne s'exécute pas dans des serveurs spécifiques et peut être exécuté n'importe où dans n'importe quelle partie d'Internet, ce qui permet de déployer des applications sans serveur très près des utilisateurs finaux à la périphérie du réseau en réduisant ainsi considérablement la latence. Les Service Workers et les Cloudflare Workers sont des exemples de fonctions sans serveur qui sont exécutées à proximité de l'utilisateur (voir Comment fonctionne le JavaScript sans serveur ?).
Du point de vue du développeur, il n'y a pas de serveurs dans le PaaS. Cependant, le PaaS est toujours différent de l'informatique sans serveur en ce qui concerne l'endroit où le code est hébergé. Les fournisseurs de PaaS exploiteront l'offre IaaS (Infrastructure-as-a-Service) d'un autre fournisseur ou auront leurs propres datacenters physiques. Il en résulte que les applications basées sur une plateforme cloud ne fonctionneront probablement que sur certaines machines désignées, ce qui empêche les développeurs d'optimiser les performances de leur application en exécutant du code à la périphérie.