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

Aunque el concepto pueda resultar confuso, "sin servidor" no significa que no haya servidores. En su lugar, las aplicaciones sin servidor eliminan el trabajo rutinario de infraestructuras asociado con el desarrollo de aplicaciones. No tienes visibilidad sobre las máquinas que ejecutan tus aplicaciones, no puedes configurarlas ni tienes que gestionarlas ni escalarlas. 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.

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

Aquí tienes una analogía sencilla con la que te resultará más fácil entender cómo funciona 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.

Ejemplos y casos prácticos 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.

En general, la computación sin servidor se sigue utilizando principalmente para tareas sencillas y de corta duración. Entre los ejemplos de computación sin servidor más habituales se incluyen los siguientes:

  • Integración con servicios y APIs de terceros
  • Ejecución de tareas programadas (por ejemplo, informes diarios, copias de seguridad o lógica empresarial).
  • Automatización de procesos de TI, como retirar el acceso automáticamente, iniciar comprobaciones de seguridad de cumplimiento o enviar aprobaciones
  • Procesamiento de datos en tiempo real para datos estructurados y sin estructurar
  • Automatización de los flujos de procesamiento de CI/CD (integración continua y entrega continua)
  • Backends de la API REST
  • Acciones basadas en activadores o tareas programadas (por ejemplo, informes diarios, copias de seguridad o lógica empresarial)
  • Procesamiento asíncrono
  • Notificaciones en tiempo real o programadas

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

Gracias a las soluciones sin servidor, los equipos de DevOps no tienen que dedicar tiempo a definir la infraestructura necesaria para integrar, probar, entregar o desplegar código. Simplemente escriben y despliegan 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.

Además, la naturaleza intencionadamente efímera de la computación sin servidor y su capacidad de reducirse verticalmente a cero hacen que esta aplicación no sea adecuada para ciertos tipos de aplicaciones. No está diseñado para ejecutar código durante periodos largos y no siempre puede servir aplicaciones con estrictos requisitos de latencia baja, como las de servicios financieros.

Por último, pero no por ello menos importante, transferir la gestión de todos los recursos informáticos a un proveedor externo también pueden suponer varios inconvenientes. Aunque permite ahorrar tiempo para centrarse en el código, migrar a un nuevo proveedor de servicios en la nube también puede ser complicado. Tampoco tienes visibilidad sobre dónde ni cómo se ejecuta tu servicio y tienes un control limitado sobre cómo escalas, qué tipo de código de hardware se ejecuta y las situaciones de recuperación tras fallos.

Aun así, la informática sin servidor presenta diversas ventajas, especialmente para las empresas que quieren ayudar a los desarrolladores a agilizar sus procesos y buscar una forma más sencilla y rentable de crear aplicaciones basadas en la nube.

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.

Soluciona los retos más complejos 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 comentar tu reto único con más detalle.

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
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
Consola
Google Cloud