¿Qué es la computación sin servidor?

La computación sin servidor es un modelo de ejecución de cloud computing que asigna los recursos de las máquinas según se usan. Con este modelo sin servidor, los desarrolladores pueden crear y ejecutar aplicaciones sin tener que gestionar ningún servidor y pagar solo por la cantidad exacta de recursos que utilicen. En su lugar, el proveedor de servicios en la nube se encarga de aprovisionar, gestionar y escalar la infraestructura en la nube en la que se ejecuta el código de la aplicación.

La computación sin servidor, a pesar de su nombre, no elimina los servidores. En lugar de eso, optimiza el desarrollo de aplicaciones abstrayendo las tareas rutinarias de infraestructura. Esto significa que no ves, configuras, gestionas ni escalas las máquinas subyacentes que ejecutan tus aplicaciones. Es decir, pagas por el servicio de un servidor, no por el servidor en sí.

Desde la perspectiva del desarrollo, es como si no hubiera ningún servidor: los desarrolladores escriben el código, lo despliegan en la fase de producción y el proveedor de servicios en la nube se encarga del resto.

Descubre cómo te ayuda Google Cloud a trabajar sin servidor

¿Cómo funciona la computación sin servidor?

Cuando se trata de crear aplicaciones, los desarrolladores normalmente tienen un host de otras tareas de gestión del servidor que deben realizar para desplegar su código, como la definición de recursos para el procesamiento y el almacenamiento, la aplicación de parches, el balanceo de carga, etc. Todos estos elementos adicionales reducen el tiempo de aprovisionamiento y la sobrecarga operativa, lo que, en última instancia, ralentiza a los equipos de desarrollo.

El objetivo de la computación sin servidor es proporcionar a los desarrolladores una experiencia invisible "sin servidor", lo que elimina la necesidad de pensar en servidores o en cualquier otro elemento que pueda necesitar una aplicación para ejecutarse. En lugar de eso, el proveedor de servicios se encarga de todo el trabajo interno para garantizar que tengas los recursos necesarios para ejecutar tu código y cumplir los requisitos sin que se te cobre por la capacidad de inactividad.

Información sobre la computación sin servidor

Utilizar una solución sin servidor es como conseguir tener agua en tu casa. Puedes cavar tu propio pozo, comprobar la calidad del agua e instalar y mantener todos los elementos de fontanería externos necesarios para que llegue a la casa. O también puedes conectarte al suministro de agua principal de tu ciudad. Solo tienes que abrir el grifo para obtener la cantidad de agua que quieres, justo cuando la necesitas, y la administración te envía una factura mensual por la cantidad exacta de agua que consumes.

Del mismo modo, los proveedores de servicios en la nube reactivan automáticamente los recursos de infraestructura y los entornos de ejecución necesarios para ejecutar tus aplicaciones sin servidor y, una vez completada la ejecución, reducen su tamaño a cero de forma automática. Normalmente, se te cobra en función de los recursos durante el tiempo de ejecución. No obstante, esto puede variar según el servicio y el proveedor.

Comparación entre la computación sin servidor y otros tipos de cloud computing

Pero un momento, ¿no existen otros tipos de cloud computing que ofrecen recursos bajo demanda en un modelo de pago por uso? Efectivamente, algunos modelos de servicio en la nube, como la infraestructura como servicio (IaaS) y la plataforma como servicio (PaaS), también ofrecen acceso bajo demanda a los recursos de computación.

Sin embargo, la infraestructura en la nube que tienes asignada sigue activa aunque no la estés utilizando. También eres responsable de escalar la capacidad del servidor o de configurar tus aplicaciones para que puedan escalarse o reducirse verticalmente en función de la demanda de los usuarios.

Por otro lado, las arquitecturas sin servidor se basan en eventos. En este modelo, el proveedor solo te proporciona recursos cuando un evento activa la ejecución de tu código y se escala de forma instantánea y automática a las solicitudes.

Soluciona los retos empresariales que se te presenten con Google Cloud

Los nuevos clientes reciben 300 USD en crédito gratis para invertirlos en Google Cloud.
Habla con un especialista del equipo de ventas de Google Cloud para analizar el caso concreto de tu empresa con más detalle.

Comparación de modelos de cloud computing

Definiciones clave:

  • Carga administrativa: el nivel de esfuerzo necesario para gestionar y mantener la infraestructura subyacente.
  • Modelo de costes: el método que se usa para calcular y cobrar el consumo de recursos.
  • Requisitos de mantenimiento: la cantidad de mantenimiento, parches y actualizaciones continuos que se necesitan
  • Escalabilidad: capacidad de ajustar automáticamente los recursos en respuesta a los cambios en la demanda
  • Sin estado: si la aplicación almacena datos de clientes de una sesión a otra.

Soluciones sin servidor

  • Carga administrativa: mínima
  • Modelo de costes: pago por uso
  • Requisitos de mantenimiento: ninguno
  • Escalabilidad: automática e instantánea
  • Reconocimiento del estado: normalmente sin reconocimiento del estado

PaaS

  • Carga administrativa: media
  • Modelo de costes: pago por instancia
  • Requisitos de mantenimiento: bajos
  • Escalabilidad: escalado manual o autoescalado
  • Reconocimiento del estado: puede ser con reconocimiento del estado o sin reconocimiento del estado

Contenedores

  • Carga administrativa: media a alta
  • Modelo de costes: pago por contenedor
  • Requisitos de mantenimiento: medios
  • Escalabilidad: escalado manual o autoescalado
  • Reconocimiento del estado: puede ser con reconocimiento del estado o sin reconocimiento del estado

VMs

  • Carga administrativa: alta
  • Modelo de costes: pago por máquina virtual
  • Requisitos de mantenimiento: altos
  • Escalabilidad: escalado manual o autoescalado
  • Reconocimiento del estado: puede ser con reconocimiento del estado o sin reconocimiento del estado

Tipos de computación sin servidor

En las soluciones de cloud computing sin servidor, suele haber dos tipos de servicios: función como servicio (FaaS) y backend como servicio (BaaS).

  • FaaS proporciona los recursos informáticos necesarios para ejecutar la lógica de las aplicaciones en respuesta a las solicitudes. Esos elementos lógicos (o funciones) se ejecutan en contenedores totalmente gestionados por el proveedor de servicios en la nube. Las aplicaciones sin servidor suelen dividirse en funciones individuales que realizan una acción como respuesta a un evento.
  • BaaS ofrece toda la funcionalidad de backend de aplicaciones web o móviles como servicio, como servicios de autenticación, gestión de bases de datos, almacenamiento en la nube, notificaciones push y alojamiento. Además, con BaaS no es necesario gestionar servidores, contenedores ni máquinas virtuales.

En desarrollo, el término "sin servidor" se suele utilizar para describir las soluciones de FaaS. Sin embargo, es importante tener en cuenta que FaaS es técnicamente un subconjunto de la tecnología sin servidor. La computación sin servidor incluye cualquier tipo de servicio en el que la gestión, la configuración, el escalado y la facturación del servidor se abstraen del usuario final. Algunos ejemplos son las bases de datos, el almacenamiento, el streaming de eventos, mensajes y las pasarelas de APIs. 

Casos prácticos de computación sin servidor

Entre los ejemplos de computación sin servidor más habituales y emergentes se incluyen los siguientes:

API e integración con terceros

  • Caso práctico: sincronizar clientes potenciales o clientes de forma fluida entre distintas aplicaciones empresariales (por ejemplo, de un CRM a una plataforma de automatización de marketing).
  • Solución sin servidor: una función de Cloud Run activada por HTTP recibe webhooks del sistema de origen (por ejemplo, Salesforce), transforma los datos y llama a la API del sistema de destino (por ejemplo, HubSpot), a menudo usando Secret Manager para las credenciales.
  • Productos sin servidor de Google Cloud: Cloud Run Functions y Secret Manager

Acciones programadas y basadas en activadores

  • Caso práctico: automatizar la generación y distribución de informes rutinarios
  • Solución sin servidor: una tarea de Cloud Scheduler activa una función de Cloud Run a través de Pub/Sub cada día. La función consulta un almacén de datos (por ejemplo, BigQuery), procesa los datos para crear un informe y lo envía a través de una API de correo electrónico.
  • Productos sin servidor de Google Cloud: Cloud Scheduler, Pub/Sub, Cloud Run functions y BigQuery

Automatización de procesos de TI

  • Caso práctico: reduce los costes de la nube identificando y gestionando automáticamente los recursos de computación inactivos
  • Solución sin servidor: una tarea de Cloud Scheduler se ejecuta cada noche para activar una función de Cloud Run a través de Pub/Sub. Esta función usa la API de Compute Engine y Cloud Monitoring para identificar las instancias inactivas y detenerlas o eliminarlas automáticamente, registrando las acciones en Cloud Logging.
  • Productos sin servidor de Google Cloud: Cloud Scheduler, Pub/Sub, Cloud Run functions, Cloud Monitoring y Cloud Logging

Procesamiento asíncrono y en tiempo real

  • Caso práctico: procesar y enriquecer grandes volúmenes de datos de streaming (por ejemplo, la actividad de los usuarios) para obtener estadísticas y tomar medidas de forma inmediata
  • Solución sin servidor: los eventos de flujo de clics de los usuarios se transmiten a Pub/Sub. Una función de Cloud Run (o un servicio de Cloud Run) consume estos eventos, los enriquece con datos de Firestore y, a continuación, publica los datos enriquecidos en otro tema de Pub/Sub para obtener analíticas en tiempo real en BigQuery o recomendaciones personalizadas.
  • Productos sin servidor de Google Cloud: Pub/Sub, Cloud Run functions, Cloud Run, Firestore y BigQuery

Flujos de trabajo de CI/CD y DevOps

  • Caso práctico: automatizar la compilación, la prueba y el despliegue de microservicios cuando se hacen cambios en el código
  • Solución sin servidor: un activador de Cloud Build monitoriza un repositorio de Git (por ejemplo, Cloud Source Repositories). Cuando se confirma el código, Cloud Build ejecuta pruebas, crea una imagen de contenedor en Artifact Registry y despliega automáticamente la nueva versión en Cloud Run.
  • Productos sin servidor de Google Cloud: Cloud Build, Cloud Run, Artifact Registry y Cloud Source Repositories

Procesamiento de imágenes y vídeos

  • Caso práctico: generar automáticamente variantes de imágenes optimizadas (por ejemplo, miniaturas o diferentes formatos) al subirlas.
  • Solución sin servidor: se activa una función de Cloud Run cuando se sube una imagen nueva a un segmento de Cloud Storage. Esta función procesa la imagen (cambio de tamaño y conversión de formato), guarda las nuevas versiones en Cloud Storage y actualiza los metadatos en Firestore.
  • Productos sin servidor de Google Cloud: Cloud Storage, Cloud Run Functions y Firestore

Aplicaciones y agentes de IA

  • Caso práctico: realizar inferencias de IA en tiempo real con LLM como Llama 3.1, Gemma 2, Mistral y más
  • Solución sin servidor: Cloud Run se integra con modelos de IA como la API de Gemini, los endpoints de Vertex AI o los modelos alojados en un servicio de Cloud Run habilitado para GPU. También puede actuar como un endpoint de API escalable y alojar agentes de IA.
  • Productos sin servidor de GCP: Cloud Run, Cloud Storage y Firestore

Ventajas de la computación sin servidor

Mayor productividad de los desarrolladores 

Los desarrolladores sin servidor se centran en escribir código y optimizar la lógica empresarial, en lugar de preocuparse por el aprovisionamiento, la gestión o el escalado de la infraestructura.

Escalabilidad desde el primer momento

Las arquitecturas sin servidor se pueden escalar tanto verticalmente como horizontalmente de forma intrínseca. A diferencia del autoescalado de otros tipos de cloud computing, que requiere reglas de ajuste, el autoescalado sin servidor es instantáneo y se puede reducir verticalmente a cero.

Precios flexibles

Los modelos de precios sin servidor se suelen cobrar en función del uso real y del tiempo que se tarda en ejecutar una función. Tampoco pagas por la capacidad inactiva, lo que te ayuda a reducir los costes operativos asociados a la ejecución y a la gestión de tus propios servidores.

Implementación más rápida

La computación sin servidor puede ayudar a reducir la fricción de la definición de infraestructura para los equipos de DevOps en lo que respecta a la integración, las pruebas, la entrega y la implementación. De esta forma, pueden centrarse en escribir y desplegar código directamente en producción.

Utiliza cualquier idioma

Los entornos sin servidor admiten cualquier lenguaje o framework, lo que permite a los equipos desarrollar en el lenguaje o con el framework (Go, Python, Java, Node.js o .NET, entre otros) que les resulte más cómodo.

Inconvenientes de la computación sin servidor

Una de las principales desventajas de la computación sin servidor es que se trata de una tecnología relativamente nueva. Por lo tanto, aún no es adecuada para todos los casos prácticos.

También está claro que algunos de los puntos débiles que existen actualmente se resolverán con el tiempo a medida que la computación sin servidor siga evolucionando. En concreto, ya se está trabajando mucho en las implementaciones de código abierto sin servidor y en buscar formas de hacer que los servicios en la nube sean más abiertos para que las soluciones puedan aplicarse en diferentes plataformas y entornos.

  • Idoneidad limitada para casos prácticos: las arquitecturas sin servidor no siempre son adecuadas para aplicaciones con requisitos específicos, como procesos de larga duración o necesidades de latencia muy baja.
  • Restricciones de rendimiento: las funciones sin servidor pueden experimentar arranques en frío (ejecución inicial retrasada) y pueden tener limitaciones en el tiempo de ejecución y la memoria.
  • Dependencia de proveedores: migrar aplicaciones sin servidor entre proveedores de servicios en la nube puede ser complejo debido a las diferencias en las APIs y las configuraciones.
  • Visibilidad reducida del servidor: los desarrolladores tienen una visibilidad limitada de la infraestructura subyacente, lo que dificulta la solución de problemas de rendimiento o la optimización del uso de los recursos.
  • Inicio lento: a veces, las funciones sin servidor pueden experimentar un "arranque en frío", que provoca un retraso en la invocación de la función y puede afectar a la latencia.

Ve un paso más allá

Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.

Google Cloud