¿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

Contenido relacionado


¿Quieres saber más?

Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.

Revisa la política de privacidad de Cloudflare para saber más sobre cómo Cloudflare gestiona tus datos personales.

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.

Preguntas frecuentes

¿Qué es Backend como Servicio (BaaS)?

Backend como Servicio (BaaS) es un modelo en la nube en el que los desarrolladores subcontratan todas las responsabilidades del lado del servidor a un proveedor externo. Esto permite a los desarrolladores enfocarse en el frontend de sus aplicaciones, mientras que el proveedor se encarga de las tareas secundarias, como el alojamiento y la gestión de la base de datos.

¿Qué funciones específicas se incluyen típicamente en una oferta de BaaS?

Los proveedores de BaaS ofrecen una variedad de funciones del lado del servidor ya integradas, que pueden conectarse mediante API y SDK. Los servicios comunes incluyen autenticación de usuarios, notificaciones push para aplicaciones móviles, almacenamiento en la nube para el contenido del usuario, gestión de bases de datos y actualización remota.

¿En qué se diferencia BaaS de la computación sin servidor?

Si bien ambos modelos eliminan la necesidad de que los desarrolladores frontend gestionen la infraestructura del backend, funcionan de manera diferente en el lado del servidor.Las arquitecturas sin servidor se basan en eventos y dividen las aplicaciones en funciones individuales que se ejecutan solo cuando se activan. Por lo general, las aplicaciones BaaS no se basan en eventos y no escalan automáticamente al activar instancias de código a menos que el proveedor ofrezca específicamente una integración sin servidor.

¿Cuál es la diferencia entre BaaS y MBaaS (Backend Móvil cómo Servicio)?

MBaaS es, en esencia, una subcategoría de BaaS optimizada específicamente para desarrollar aplicaciones móviles.BaaS es una categoría más amplia que se puede utilizar para cualquier tipo de aplicación, incluidas las aplicaciones web de una sola página, mientras que MBaaS se centra en necesidades específicas del entorno móvil.

¿En qué se diferencian BaaS (Backend como Servicio) y PaaS (Plataforma como Servicio)?

Ambos modelos eliminan la necesidad de que los desarrolladores gestionen el hardware y los sistemas operativos del backend. Sin embargo, PaaS ofrece una plataforma para que los desarrolladores desarrollen su propia lógica de backend desde cero. BaaS ofrece menos flexibilidad, pero más funcionalidades listas para usar, ya que incluye una lógica de aplicación predefinida como integración con redes sociales o servicios de notificaciones.

¿Por qué un desarrollador elegiría usar BaaS?

Al usar software predefinido y una infraestructura gestionada, los desarrolladores pueden crear y lanzar aplicaciones rápidamente, ya que no tienen que perder tiempo creando el backend o gestionando máquinas virtuales y contenedores. Sin embargo, las arquitecturas sin servidor pueden ofrecer más escalabilidad y flexibilidad a los desarrolladores.