¿Qué es BaaS? | Backend como servicio vs. sin servidor

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.

Metas de aprendizaje

Después de leer este artículo podrás:

  • Definir BaaS
  • Definir MBaaS
  • Entender las diferencias entre la informática sin servidor y BaaS
  • Entender las diferencias entre BaaS y PaaS

Copiar el enlace del artículo

¿Qué es el BaaS?

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.

Soporte como servicio (BaaS)

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.

¿Qué es el backend móvil como servicio (MBaaS)?

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.

¿Qué se incluye en el BaaS?

Los proveedores de BaaS ofrecen una serie de capacidades del lado del servidor. Por ejemplo:

  • Gestión de bases de datos
  • Almacenamiento en la nube (para contenidos generados por el usuario)
  • Autenticación del usuario
  • Notificaciones push
  • Actualización en remoto
  • Alojamiento
  • Otras funcionalidades específicas de la plataforma o del proveedor; por ejemplo, Firebase ofrece indexación de búsqueda en Google

Entre los proveedores de BaaS y MBaaS se encuentran Google Firebase y Microsoft Azure.

¿Cuáles son las diferencias entre BaaS y la informática sin servidor?

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.

Cómo se construye la aplicación

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.

Cuando el código se ejecuta

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.

Dónde se ejecuta el código

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

Cómo se escala la aplicación

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.

¿Cuál es la diferencia entre BaaS y la Plataforma como servicio (PaaS)?

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.