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:
Contenido relacionado
Función como servicio (FaaS)
Plataforma como servicio (PaaS)
¿Qué significa el término sin servidor?
¿Por qué se usa la informática sin servidor?
Edge computing
Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar el 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.
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.
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.
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.
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.
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.
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.