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 :
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.