Backend-as-a-Service (BaaS) permet aux développeurs de se concentrer sur le frontend de leurs applications et d'exploiter les services backend sans avoir à les créer ou à les maintenir. Le BaaS et l'informatique sans serveur ont des points communs, et de nombreux fournisseurs proposent les deux, mais les deux modèles présentent plusieurs différences.
Cet article s'articule autour des points suivants :
Contenu associé
Function as a Service (FaaS)
La plateforme-service (PaaS)
Qu'est-ce que l'informatique serverless ?
Pourquoi utiliser le mode serverless ?
Informatique de périphérie
Abonnez-vous à theNET, le récapitulatif mensuel par Cloudflare des informations les plus populaires sur Internet !
Copier le lien de l'article
Backend-as-a-Service (BaaS) est un modèle de service cloud dans lequel les développeurs externalisent tous les aspects de l'arrière-plan d'une application web ou mobile afin de n'avoir à écrire et à maintenir que le frontend. Les fournisseurs de BaaS fournissent des logiciels pré-écrits pour les activités qui ont lieu sur les serveurs, telles que l'authentification des utilisateurs, la gestion des bases de données, la mise à jour à distance et les notifications « push » (pour les applications mobiles), ainsi que le stockage et l'hébergement sur le cloud.
Imaginez le développement d'une application sans faire appel à un fournisseur BaaS comme la réalisation d'un film. Un réalisateur de film est responsable de la supervision ou de la gestion des équipes de tournage, de l'éclairage, de la construction des décors, de la garde-robe, du casting des acteurs et du calendrier de production, en plus de filmer et de diriger les scènes qui apparaîtront dans le film. Imaginez maintenant qu'il existe un service qui s'occupe de toutes les activités en arrière-plan, de sorte que le réalisateur n'ait qu'à diriger et à tourner la scène. C'est l'idée du BaaS : Le fournisseur s'occupe des « lumières » et de la « caméra (ou des *fonctionnalités côté serveur) afin que le réalisateur (le développeur) puisse se concentrer sur l'« action », c'est-à-dire sur ce que l'utilisateur final voit et vit.
BaaS permet aux développeurs de se concentrer sur l'écriture du code de l'application en frontend. Grâce aux API (qui sont un moyen pour un programme de faire une requête à un autre programme) et aux SDK (qui sont des kits pour la construction de logiciels) proposés par le fournisseur de BaaS, ils sont en mesure d'intégrer toutes les fonctionnalités du backend dont ils ont besoin, sans avoir à construire eux-mêmes le backend. Ils n'ont pas non plus à gérer de serveurs, de machines virtuelles ou de conteneurs pour faire tourner l'application. Par conséquent, ils peuvent créer et lancer des applications mobiles et des applications web (y compris des applications d'une seule page) plus rapidement.
*Le terme « côté serveur » désigne tout ce qui est hébergé ou a lieu sur un serveur plutôt que sur un client dans le modèle client-serveur d'Internet.
Mobile-Backend-as-a-Service (MBaaS) est un BaaS destiné spécifiquement à la création d'applications mobiles. Bien que certaines sources considèrent que BaaS et MBaaS sont des termes fondamentalement interchangeables, les services BaaS ne doivent pas nécessairement servir à créer des applications mobiles.
Les fournisseurs de BaaS offrent un certain nombre de fonctionnalités côté serveur. Par exemple :
Les fournisseurs de BaaS et MBaaS incluent Google Firebase et Microsoft Azure.
Il y a un certain chevauchement entre le BaaS et l'informatique sans serveur, car dans les deux cas, le développeur n'a qu'à écrire le code de son application et ne pense pas au backend. En outre, de nombreux fournisseurs de BaaS proposent également des services d'informatique sans serveur. Cependant, il existe des différences opérationnelles importantes entre les applications construites à l'aide de BaaS et une véritable architecture sans serveur.
Les backends des applications sans serveur sont décomposés en fonctions, chacune répondant à des événements et n'effectuant qu'une seule action (voir Qu'est-ce que FaaS ?). Les fonctionnalités BaaS côté serveur, quant à elles, sont construites comme le fournisseur le souhaite, et les développeurs n'ont pas à se soucier de coder autre chose que le frontend de l'application.
Les architectures sans serveur sont commandées par des événements, c'est-à-dire qu'elles fonctionnent en réponse à des événements. Chaque fonction ne s'exécute que lorsqu'elle est déclenchée par un certain événement, et non autrement. Les applications créées avec BaaS ne sont généralement pas commandées par des événements, ce qui signifie qu'elles nécessitent davantage de ressources serveur.
Les fonctions sans serveur peuvent être exécutées de n'importe où sur n'importe quelle machine, tant qu'elles sont encore en communication avec le reste de l'application, ce qui permet d'intégrer l'informatique de périphérie dans l'architecture de l'application en exécutant du code à la périphérie du réseau. BaaS n'est pas nécessairement configuré pour exécuter du code depuis n'importe où et à n'importe quel moment (bien qu'il puisse l'être, selon le fournisseur).
L'évolutivité est l'un des principaux facteurs de différenciation entre les architectures sans serveur et les autres types d'architecture. Dans l'informatique sans serveur, l'application évolue automatiquement en fonction de l'utilisation. L'infrastructure du fournisseur de cloud démarre des instances éphémères de chaque fonction selon les besoins. Les applications BaaS ne sont pas configurées pour évoluer de cette manière, à moins que le fournisseur BaaS ne propose également une architecture sans serveur et que le développeur ne l'intègre dans son application.
Le PaaS fournit une plateforme via le cloud pour que les développeurs puissent créer leurs applications. Comme l'informatique sans serveur et le BaaS, Platform-as-a-Service (PaaS) élimine la nécessité pour le développeur de créer et de gérer le backend de l'application. Cependant, PaaS ne comprend pas de logique applicative pré-construite côté serveur, comme les notifications « push » et l'authentification des utilisateurs. PaaS offre aux développeurs une plus grande flexibilité, tandis que BaaS offre plus de fonctionnalités.
Backend-as-a-Service (BaaS) est un modèle de cloud dans lequel les développeurs externalisent toutes les responsabilités côté serveur auprès d'un fournisseur tiers. Cette démarche permet aux développeurs de se concentrer sur l’écriture et la maintenance du frontend de leurs applications, tandis que le fournisseur s’occupe des tâches en arrière-plan telles que l’hébergement et la gestion des bases de données.
Les fournisseurs de BaaS proposent une variété de fonctionnalités côté serveur prêtes à l’emploi et pouvant être intégrées via des API et des SDK. Les services les plus courants concernent l’authentification des utilisateurs, les notifications « push » pour les applications mobiles, le stockage dans le cloud pour le contenu des utilisateurs, la gestion de bases de données et les mises à jour à distance.
Les deux modèles éliminent la nécessité de gérer l’infrastructure backend pour les développeurs frontend, cependant ils fonctionnent différemment sur le backend. Les architectures serverless sont orientées événements (event-driven) ; elles décomposent les applications en fonctions individuelles qui ne s’exécutent que lorsqu’elles sont déclenchées. Les applications BaaS ne sont généralement pas commandées par des événements et ne s’adaptent pas automatiquement en activant des instances de code, sauf si le fournisseur propose spécifiquement l’intégration serverless.
Le MBaaS est essentiellement un BaaS (Backend as a Service) spécifiquement optimisé pour la création d’applications mobiles. BaaS forme une catégorie plus vaste qui peut être utilisée pour tout type d’application, y compris les applications monopages basées sur le web, tandis que MBaaS se concentre sur les besoins spécifiques des mobiles.
Les deux modèles permettent d’éliminer la nécessité, pour les développeurs, de gérer le matériel du backend et les systèmes d’exploitation. Cependant, le PaaS fournit une plateforme permettant aux développeurs de créer leur propre logique backend à partir de zéro. BaaS offre moins de flexibilité mais plus de fonctionnalités prêtes à l’emploi en ajoutant une logique d’application préécrite comme l’intégration sociale ou les services de notification.
L’utilisation de logiciels préécrits et d’une infrastructure gérée permet aux développeurs de concevoir et de lancer rapidement des applications car ils n’ont pas besoin de passer de temps à développer le backend ni à gérer des machines virtuelles et des conteneurs. Cependant, les architectures serverless peuvent offrir plus d’évolutivité et de flexibilité aux développeurs.