El Backend como servicio (BaaS) permite que los desarrolladores se centren en el frontend de sus aplicaciones y aprovechen los servicios de backend sin tener que crearlos ni mantenerlos. BaaS y la informática sin servidor comparten algunas similitudes, y muchos proveedores ofrecen ambos, pero los dos modelos tienen varias diferencias.
Después de leer este artículo podrás:
Copiar enlace del artículo
Backend-as-a-Service (BaaS) es un modelo de servicio en la nube en el que los desarrolladores subcontratan todos los aspectos en segundo plano de una aplicación web o móvil para que solo tengan que escribir y mantener el frontend. Los proveedores de BaaS proporcionan software ya escrito para actividades que tienen lugar en los servidores, como la autenticación del usuario, la gestión de bases de datos, la actualización en remoto y las notificaciones push (para aplicaciones móviles), así como el almacenamiento en la nube y el alojamiento.
Pensemos en el desarrollo de una aplicación sin utilizar un proveedor de BaaS como en la dirección de una película. Un director de cine es responsable de supervisar o gestionar los equipos de cámara, la iluminación, la construcción del decorado, el vestuario, el casting de actores y el calendario de producción, además de filmar y dirigir realmente las escenas que aparecerán en la película. Ahora, imaginemos que existiera un servicio que se encargara de todas las actividades en segundo plano, para que lo único que tuviera que hacer el director fuera dirigir y rodar la escena. Esa es la idea del BaaS: el proveedor se encarga de las "luces" y de la "cámara" (o, de las funcionalidades del lado del servidor*) para que el director (el desarrollador) solo tenga que centrarse en la "acción", es decir, lo que el usuario final ve y experimenta.
BaaS permite que los desarrolladores se centren en escribir el código de la aplicación frontend. Mediante las API (que son una forma de que un programa haga una solicitud a otro programa) y los SDK (que son kits para crear software), que ofrece el proveedor de BaaS, son capaces de integrar toda la funcionalidad del backend que necesitan, sin que tengan que crear ellos mismos el backend. Tampoco tienen que gestionar servidores, máquinas virtuales o contenedores para mantener la aplicación en funcionamiento. Como resultado, pueden crear y lanzar aplicaciones móviles y aplicaciones web (incluyendo aplicaciones de una sola página) más rápido.
*El lado del servidor hace referencia a todo lo que se aloja o tiene lugar en un servidor en lugar de en el lado del cliente en el modelo cliente-servidor de Internet.
El backend móvil como servicio (MBaaS) es un BaaS destinado específicamente a la creación de aplicaciones para móviles. Aunque algunas fuentes consideran que BaaS y MBaaS son términos básicamente intercambiables, los servicios BaaS no tienen por qué utilizarse para crear aplicaciones móviles.
Los proveedores de BaaS ofrecen una serie de capacidades del lado del servidor. Por ejemplo:
Entre los proveedores de BaaS y MBaaS se encuentran Google Firebase y Microsoft Azure.
Hay cierto solapamiento entre BaaS y la informática sin servidor, porque en ambos el desarrollador solo tiene que escribir el código de su aplicación y no pensar en el backend. Además, muchos proveedores de BaaS también ofrecen servicios de informática sin servidor. Sin embargo, hay importantes diferencias operacionales entre las aplicaciones creadas con BaaS y una verdadera arquitectura sin servidor.
Los backends de las aplicaciones sin servidor se dividen en funciones, cada una de las cuales responde a eventos y lleva a cabo una sola acción (ver ¿Qué es FaaS?). Las funcionalidades del lado del servidor de BaaS, por su parte, se construyen como el proveedor quiera, y los desarrolladores no tienen que preocuparse de codificar nada más que el frontend de la aplicación.
Las arquitecturas sin servidor están orientadas a los eventos, lo que quiere decir que se ejecutan en respuesta a eventos. Cada función solo se ejecuta cuando es activada por un determinado evento, y no se ejecuta si ese no es el caso. Las aplicaciones creadas con BaaS no suelen estar orientadas a eventos, lo que significa que requieren más recursos del servidor.
Las funciones sin servidor pueden ejecutarse desde cualquier lugar en cualquier máquina, siempre que sigan en comunicación con el resto de la aplicación, lo que permite incorporar informática en el perímetro en la arquitectura de la aplicación al ejecutar código en el perímetro de la red. El BaaS no está necesariamente configurado para ejecutar código desde cualquier lugar y en cualquier momento (aunque puede serlo, en función del proveedor).
La escalabilidad es lo que más diferencia a las arquitecturas sin servidor de otros tipos de arquitectura. En la informática sin servidor, la aplicación se amplía automáticamente según aumenta el uso. La infraestructura del proveedor de la nube pone en marcha instancias efímeras de cada función según se vea necesario. Las aplicaciones BaaS no están configuradas para escalarse de esta manera, a menos que el proveedor de BaaS también ofrezca informática sin servidor y el desarrollador lo incorpore a su aplicación.
PaaS proporciona una plataforma a través de la nube para que los desarrolladores creen sus aplicaciones. Al igual que la informática sin servidor y la BaaS, la Plataforma como servicio (PaaS) elimina la necesidad de que el desarrollador cree y gestione el backend de la aplicación. Sin embargo, PaaS no incluye la lógica de la aplicación del lado del servidor preconstruida, como las notificaciones push y la autenticación del usuario. PaaS ofrece a los desarrolladores más flexibilidad, mientras que BaaS ofrece más funcionalidad.