Inicio Temas Sin servidor ¿Qué es la computación sin servidor?
Explorar la solución sin servidor de IBM Registrarse para recibir actualizaciones en la nube
Ilustración con collage de pictogramas de monitor de computadora, servidor, nubes, puntos

Publicación: 10 de junio de 2024
Colaboradores: Stephanie Susnjara, Ian Smalley

¿Qué es la computación sin servidor?

La computación sin servidor es un modelo de desarrollo y ejecución de aplicaciones que permite a los desarrolladores crear y ejecutar código de aplicación sin aprovisionar ni gestionar servidores o infraestructura de back-end.

Sin servidor no significa "sin servidores". A pesar del nombre, los servidores de la computación sin servidor son administrados por un proveedor de servicios en la nube (CSP). "Sin servidor" describe la experiencia del desarrollador con esos servidores: son invisibles para el desarrollador, quien no los ve, no los administra ni interactúa con ellos de ninguna manera.

Los desarrolladores pueden enfocar en escribir el mejor código de aplicación front-end y lógica de negocios con computación sin servidor. Todo lo que necesitan hacer es escribir el código de su aplicación y desplegarlo en contenedores gestionados por un CSP.

El proveedor de la nube se encarga del resto, aprovisionando la infraestructura en la nube necesaria para ejecutar el código y ampliando y reduciendo la infraestructura según sea necesario, y también es responsable de toda la gestión y el mantenimiento rutinarios de la infraestructura, como las actualizaciones y parches del sistema operativo, la gestión de la seguridad, la planeación de la capacidad, la supervisión del sistema y mucho más.

Además, los desarrolladores nunca pagan por la capacidad inactiva con la tecnología sin servidor. El proveedor de la nube acelera y suministra los recursos informáticos necesarios bajo demanda cuando se ejecuta el código, y los reduce nuevamente (lo que se denomina "esca a cero") cuando se detiene la ejecución. La facturación comienza cuando comienza la ejecución y finaliza cuando se detiene la ejecución; normalmente, los precios se basan en el tiempo de ejecución y los recursos necesarios.

Junto con la infraestructura como servicio (IaaS), la plataforma como servicio (PaaS), la función como servicio (FaaS) y el software como servicio (SaaS), el modelo sin servidor se convirtió en una oferta líder de servicios en la nube. Según un reporte de SkyQuest Technology, el tamaño del mercado global de arquitectura sin servidor se valoró en 8010 millones USD en 2022 y se espera que crezca de 9840 millones USD en 2023 a 50860 millones USD en 20311. Hoy en día, todos los proveedores líderes de servicios en la nube ofrecen una plataforma sin servidor, entre los que se encuentran Amazon Web Services (AWS Lambda), Microsoft Azure (Azure Functions), Google Cloud (Google Cloud Functions) y IBM Cloud (IBM Cloud Code Engine).

Juntos, la computación sin servidor, los microservicioslos contenedores forman un triunvirato de tecnologías en el núcleo del desarrollo de aplicaciones nativas de la nube .

Mira este video para obtener una explicación detallada de qué es serverless y qué es la pila serverless (6:37).

Aproveche todo el valor de su nube híbrida

Conecte e integre sus sistemas para preparar su infraestructura para la IA.

Contenido relacionado

Regístrese para obtener la guía sobre modernización de aplicaciones

Los orígenes de la tecnología sin servidor

La tecnología sin servidor se originó en 2008 cuando Google lanzó Google App Engine (GAE), una plataforma para desarrollar y alojar aplicaciones sitio web en centros de datos gestionados por Google. Con GAE, un desarrollador de software podría crear y lanzar software en Google Cloud sin preocupar por las tareas de administración del servidor, como la aplicación de parches o el equilibrio de carga, que Google manejaba.

El término "sin servidor" apareció por primera vez en un artículo tecnológico del especialista en computación en la nube Ken Fromm en 20122. En 2014, Amazon presentó AWS Lambda, la primera plataforma sin servidor. AWS Lambda, un modelo de FaaS, que lleva el nombre de funciones de cálculo y programación lambda, ayudó a que el marco de computación sin servidor ganara atractivo en el mercado masivo y se adoptara rápidamente entre los desarrolladores de software, ya que les permitió ejecutar código en respuesta a eventos sin necesidad de gestionar el servidor. En 2016, Microsoft Azure Functions y Google Cloud Functions lanzaron sus plataformas sin servidor.

Otros actores importantes en el mercado actual de plataformas sin servidor son IBM Cloud® Code Engine, Oracle Cloud Infrastructure (OCI) Functions, Cloudflare Workers y Alibaba Function Compute.

El ecosistema sin servidor
Sin servidor y FaaS

Serverless es más que la función como servicio (FaaS), el servicio de computación en la nube que permite a los desarrolladores ejecutar código o contenedores en respuesta a eventos o solicitudes específicos sin especificar ni administrar la infraestructura requerida para ejecutar el código.

FaaS es el modelo de computación central de la tecnología sin servidor, y los dos términos a menudo se usan indistintamente. En comparación con FaaS, sin servidor es una pila completa de servicios que pueden responder a eventos o solicitudes específicas y escalar a cero cuando ya no están en uso, y cuyo aprovisionamiento, aprovisionamiento, administración y facturación son manejados por el proveedor de la nube y son invisibles para los desarrolladores.

Además de FaaS, estos servicios incluyen bases de datos y almacenamiento, puertas de enlace de interfaz de programación de aplicaciones (API) y arquitectura basada en eventos.

Bases de datos y almacenamiento sin servidor

Las bases de datos (SQL y NoSQL) y el almacenamiento (particularmente el almacenamiento de objetos) son la base de la capa de datos. Un enfoque sin servidor para estas tecnologías implica dejar de aprovisionar "instancias" con capacidad definida, límites de conexión y consultas y pasar a modelos que escalan linealmente con la demanda tanto en infraestructura como en precios.

API Gateways

API Gateway actúa como proxy para acciones de aplicación web y proporciona enrutamiento de métodos HTTP, ID de cliente y secretos, límites de velocidad, CORS, visualización del uso de API, visualización de registros de respuesta y políticas de uso compartido de API.

Arquitectura sin servidor y basada en eventos

Las arquitecturas sin servidor funcionan bien para cargas de trabajo impulsadas por eventos y de procesamiento de transmisiones, sobre todo la plataforma de transmisión de eventos de código abierto Apache Kafka .

Las funciones automatizadas sin servidor no tienen estado y están diseñadas para manejar eventos individuales. Estas funciones se han convertido en una parte esencial del modelo de diseño de software basado en eventos (EDA)construido en torno a la publicación, la captura, el procesamiento y el almacenamiento de eventos. En un marco de EDA, los productores de eventos (por ejemplo, microservicios, API, dispositivos IoT) envían notificaciones de eventos en tiempo real a los consumidores de eventos, activando rutinas de procesamiento específicas. Por ejemplo, cuando Netflix lanza un nuevo serial original, varios servicios EDA esperan en espera la notificación de lanzamiento, lo que desencadena una cascada de actualizaciones para informar a los usuarios. Muchas otras compañías basadas en aplicaciones sitio web y celulares orientadas al usuario (por ejemplo, Uber, DoorDash, Instacart) confían en la arquitectura basada en eventos.

Sin servidor frente a PaaS, contenedores y máquinas virtuales

Debido a que la tecnología sin servidor, la plataforma como servicio (PaaS), el contenedor y las máquinas virtuales (VM) (VM) desempeñan un papel fundamental en el desarrollo de aplicaciones cloud y el ecosistema informático, es útil medir cómo se compara la tecnología sin servidor con las demás en algunos atributos clave.

  • Tiempo de aprovisionamiento: medido en milisegundos para el modelo sin servidor en comparación con minutos a horas para los otros modelos.
  • Carga administrativa: ninguna para sistemas sin servidor, en comparación con un continuo de ligero a media y pesada para PaaS, contenedor y MV, respectivamente.
  • Mantenimiento: las arquitecturas sin servidor son administradas al 100% por los CSP. Lo mismo ocurre con PaaS, pero los contenedores y las VM requieren un mantenimiento significativo, incluyendo la actualización y administración de sistemas operativos, imágenes de contenedores, conexiones, etc.
  • Scaling: AutoScaling, incluido Auto-Scaling a cero, es instantáneo e inherente a la tecnología sin servidor. Los otros modelos ofrecen un escalado automático pero lento que requiere un ajuste cuidadoso de las reglas autoscale y ningún escalado a cero.
  • Planeación de capacidad: no se necesita ninguna para la tecnología sin servidor. Los otros modelos requieren una combinación de escalabilidad automática y planeación de capacidad.
  • Statelessness: inherente a los sistemas sin servidor, lo que significa que la escalabilidad nunca es un problema; el estado se mantiene en un servicio o recursos externos. PaaS, contenedor y VM pueden usar HTTP, mantener un sockets o conexión abierta para largos períodos y almacenar el estado en la memoria entre llamadas.
  • Alta disponibilidad (HA) y recuperación ante desastres (DR): la tecnología sin servidor ofrece alta disponibilidad y recuperación ante desastres sin esfuerzo ni costo adicional. Los otros modelos requieren costos adicionales y esfuerzo de gestión. La infraestructura se puede resetear automáticamente con máquinas virtuales y contenedores.
  • Utilización de recursos: La tecnología sin servidor es 100% eficiente porque no hay capacidad inactiva, solo se invoca a pedido. Todos los demás modelos presentan al menos cierto grado de capacidad inactiva.
  • Facturación y ahorro: sin servidor se mide en unidades de 100 milisegundos. PaaS, contenedor y VM normalmente se miden por hora o minuto.
Sin servidor, Kubernetes y Knative

Kubernetes es una plataforma de orquestación de contenedores de código abierto que automatiza la implementación, la gestión y el escalamiento de contenedores. La automatización de Kubernetes simplifica drásticamente el desarrollo de aplicaciones basadas en contenedores.

Las aplicaciones sin servidor suelen desplegarse en contenedores. Sin embargo, Kubernetes solo puede ejecutar aplicaciones sin servidor de forma independiente con un software especializado que integre Kubernetes con la plataforma sin servidor de un proveedor de nube específico.

Knative es una extensión de código abierto de Kubernetes que proporciona un marco sin servidor. Permite que cualquier contenedor se ejecute como una carga de trabajo sin servidor en cualquier plataforma en la nube que ejecute Kubernetes, ya sea que el contenedor esté construido alrededor de una función sin servidor o algún otro código de aplicación (por ejemplo, microservicios). Knative funciona abstrayendo el código y manejando el enrutamiento de la red, los activadores de eventos y el escalado automático para la ejecución sin servidor.

Knative es transparente para los desarrolladores. Construyen un contenedor empleando Kubernetes, y Knative hace el resto, ejecutando el contenedor como una carga de trabajo sin servidor.

Pros y contras del modelo sin servidor
Pros

La computación sin servidor ofrece a los desarrolladores individuales y a los equipos de desarrollo empresarial muchos beneficios técnicos y comerciales:

  • Mejora de la productividad de los desarrolladores: como se señaló, la tecnología sin servidor permite a los equipos de desarrollo centrar en escribir código, no en gestionar la infraestructura. Da a los desarrolladores más tiempo para innovar y optimizar las funciones de sus aplicaciones front-end y la lógica empresarial.
  • Pago solo por ejecución: el medidor comienza a contar cuando se realiza la solicitud, y termina cuando termina la ejecución. Compare esto con el modelo informático de IaaS, donde los clientes pagan por los servidores físicos, las máquinas virtuales y otros recursos necesarios para ejecutar aplicaciones, desde que aprovisionan esos recursos hasta que los retiran explícitamente.
  • Desarrollar en cualquier lenguaje: sin servidor es un entorno políglota que permite a los desarrolladores codificar en cualquier lenguaje o marco (Java, Python, JavaScript, node.js) con el que se sienten cómodos.
  • Ciclos optimizados de desarrollo/DevOps. La tecnología sin servidor simplifica la implementación y, en un sentido más amplio, simplifica DevOps porque los desarrolladores no pierden tiempo en definir la infraestructura necesaria para integrar, probar, entregar y desplegar código desarrollado en producción.
  • Rendimiento rentable. Para ciertas cargas de trabajo (procesamiento increíblemente paralelo, procesamiento de flujos, ciertas tareas de procesamiento de datos), la computación sin servidor puede ser más rápida y rentable que otras formas de computación.
  • Reduzca la latencia: en un entorno sin servidor, el código puede ejecutar más cerca del usuario final, lo que disminuye la latencia.
  • Visibilidad de uso: Las plataformas sin servidor proporcionan una visibilidad casi total de los tiempos del sistema y de los usuarios y pueden agregar información de uso de manera sistemática.
Contras

Si bien la tecnología sin servidor tiene muchos beneficios, es esencial considerar algunas desventajas:

  • Menos control: en un entorno sin servidor, una organización cede el control del servidor a un CSP externo, renunciando así a la gestión del hardware y los entornos de ejecución.
  • Dependencia del proveedor: cada proveedor de servicios ofrece capacidades y características sin servidor únicas que son incompatibles con otros proveedores.
  • Inicio lento: también conocido como "inicio en frío", el inicio lento puede afectar el rendimiento y la capacidad de respuesta de las aplicaciones sin servidor, especialmente en entornos de demanda en tiempo real. 
  • Pruebas y depuración complejas: la depuración puede ser más complicada con un modelo informático sin servidor, ya que los desarrolladores carecen de visibilidad de los procesos de back-end.
  • Mayor costo de ejecución de aplicaciones largas: Los modelos de ejecución sin servidor no están diseñados para ejecutar código durante periodos prolongados. Por lo tanto, los procesos de larga duración pueden costar más que los entornos tradicionales de servidores dedicados o máquinas virtuales.
Sin servidor y seguridad

Si bien los CSP proporcionan medidas de seguridad para gestionar aplicaciones sin servidor, el cliente también es responsable de proteger el código y los datos de la aplicación mediante un modelo de responsabilidad compartida. Las medidas de seguridad basadas en la nube para la tecnología sin servidor incluyen políticas y soluciones de seguridad automatizadas, como la gestión de eventos e información de seguridad (SIEM), la gestión de identidad y acceso (IAM) y la detección y respuesta a amenazas.

Seguir las prácticas de DevSecOps ayuda a los equipos de desarrollo a proteger las tecnologías sin servidor. DevSecOps, que significa desarrollo, seguridad y operaciones, es una práctica de desarrollo de aplicaciones que automatiza la integración de las prácticas de seguridad y protección en cada fase del ciclo de vida del desarrollo de software, desde el diseño inicial hasta el despliegue.

Sin servidor y sostenibilidad

A diferencia de los entornos de centros de datos locales tradicionales, un modelo informático sin servidor puede ayudar a las organizaciones a reducir el consumo de energía y disminuir su huella de carbono en las operaciones de TI.

Además, un modelo sin servidor permite a las compañías optimizar sus emisiones a través de la eficiencia de los recursos pagando y empleando solo los recursos necesarios. Esta característica da como resultado menos energía desperdiciada en procesos inactivos o en exceso.

Casos de uso sin servidor

Dados sus atributos y beneficios únicos, la arquitectura sin servidor funciona mejor para casos de uso que involucran microservicios, back-ends móviles y procesamiento de flujos de datos y eventos.

Microservicios y sin servidor

El caso de uso más común de la tecnología sin servidor en la actualidad es el soporte a arquitecturas de microservicios. El modelo de microservicios se centra en la creación de servicios pequeños que realizan un solo trabajo y se comunican entre sí mediante API Si bien los microservicios también se pueden crear y operar mediante PaaS o contenedor, la tecnología sin servidor ganó un impulso significativo debido a sus atributos en torno a pequeños fragmentos de código, escalamiento inherente y automático, aprovisionamiento rápido y un modelo de precios que nunca cobra por la capacidad inactiva.

Backends de API

Cualquier acción (o función) en una plataforma sin servidor se puede convertir en un endpoint HTTP listo para ser consumido por clientes. Cuando se habilita para web, estas acciones se denominan acciones web. Una vez que tenga acciones web, puede ensamblarlas en una API con todas las funciones con una API Gateway que brinda más seguridad, soporte técnico, limitación de velocidad y soporte de dominio personalizado.

Open Liberty InstantOn (CRIU)

Open Liberty InstantOn4 adopta un enfoque novedoso para admitir el inicio rápido de aplicaciones sin servidor. Con InstantOn, puede tomar un punto de control del proceso de su aplicación Java en ejecución durante la creación de la aplicación y luego restaurar ese punto de control en producción. La restauración es rápida (en los bajos cientos de milisegundos), lo que la hace ideal para la arquitectura sin servidor. Dado que InstantOn es un punto de control de su aplicación existente, su comportamiento luego de la restauración es idéntico, incluido el mismo rendimiento excelente. Este proceso permite a las organizaciones adoptar la tecnología sin servidor para nuevas aplicaciones nativas de la nube y brinda la oportunidad de llevar la tecnología sin servidor a la compañía existente.

Procesamiento de datos

La tecnología sin servidor es ideal para trabajar con datos estructurados de texto, audio, imágenes y video en torno a tareas como el enriquecimiento, la transformación, la validación y la limpieza de datos. Los desarrolladores también pueden usarlo para procesamiento de PDF, normalización de audio, procesamiento de imágenes (rotación, nitidez, reducción de ruido, generación de miniaturas), reconocimiento óptico de caracteres (OCR) y transcodificación de video.

Operaciones masivamente paralelas de cálculo y "mapa"

Cualquier tipo de tarea lamentablemente paralela es un buen caso práctico para un tiempo de ejecución sin servidor, con cada tarea paralelizable resultando en una invocación de acción. Entre las tareas de muestra se incluyen desde la búsqueda y el procesamiento de datos (en concreto, cloud object storage), operaciones MapReduce y raspado web hasta la automatización de procesos empresariales, el ajuste de hiperparámetros, las simulaciones Monte Carlo y el procesamiento de genomas.

Procesamiento de flujo carga de trabajo

La combinación de Apache Kafka gestionado con FaaS y base de datos/almacenamiento ofrece una base poderosa para la creación en tiempo real de pipelines de datos y aplicaciones de streaming. Estas arquitecturas son ideales para trabajar con todo tipo de ingestiones de flujos de datos (para validación, depuración, enriquecimiento, transformación), incluidos datos de sensores de IoT, datos de registros de aplicaciones, datos de mercados financieros y flujos de datos comerciales (de otras fuentes de datos).

IA y sin servidor

Serverless proporciona la escalabilidad automatizada necesaria para ejecutar cargas de trabajo de inteligencia artificial (IA) y aprendizaje automático (ML), garantizando un rendimiento óptimo y acelerando la innovación.

Nube híbrida y sin servidor

La informática sin servidor da soporte a una estrategia de nube híbrida brindando la agilidad, flexibilidad y escalabilidad necesarias para adaptarse a cargas de trabajo fluctuantes en entornos on-premise, nube pública, nube privada y edge.

Aplicaciones comunes para el modelo sin servidor

La tecnología sin servidor admite muchas de las aplicaciones más comunes de la actualidad, incluida la gestión de relaciones con el cliente (CRM), la computación de alto rendimiento (HPC), el análisis de big data, la automatización de procesos empresariales, la transmisión de video, los juegos, la telemedicina, el comercio digital, la creación de chatbots y más.

Tutoriales: Primeros pasos con la tecnología sin servidor

Puede ampliar sus habilidades de computación sin servidor con estos tutoriales:

  • Experimente Liberty InstantOn (CRIU): descubra nuevo valor para su organización con IBM WebSphere ® Liberty optimizando su implementación en la nube y mejorando la eficiencia operativa. Liberty InstantOn muestra una mejor manera de lograr un rendimiento sin servidor sin concesiones.
  • Ejecutar trabajos por lotes: aprenda a ejecutar un trabajo por lotes que emplea la consola de Code Engine. Un trabajo ejecuta una o más instancias del código ejecutable. A diferencia de las aplicaciones que manejan solicitudes HTTP, los trabajos están diseñados para ejecutarse una y salir.
Solutions
IBM Cloud Code Engine

Ejecute su contenedor, código de aplicación o trabajo por lotes en un tiempo de ejecución de contenedor totalmente gestionado

Conozca BM Cloud Code Engine
IBM Cloud Pak for Applications

Ya sea despliegue, creación de nuevas aplicaciones nativas de la nube, refactorización o cambio de plataforma de aplicaciones existentes, Cloud Pak for Applications (CP4Apps) lo resuelve.

Explore IBM Cloud Pak for Applications
IBM Cloud Satellite

Despliegue y ejecute aplicaciones de manera constante en entornos locales, de computación edge y de nube pública de cualquier proveedor de nube.

Explore IBM Cloud Satellite
IBM Cloudant

La capa de datos para aplicaciones de aplicaciones de hiperescala, resilientes y disponibles globalmente, basada en Apache Cactos de código abierto.

Conozca IBM Cloudant
Supervisión sin servidor de Instana®

Supervise sus aplicaciones y servicios sin servidor para optimizar el rendimiento, la disponibilidad y la seguridad

Explore el monitoreo sin servidor de Instana
Recursos Sin servidor en la empresa, 2021

Obtenga más información sobre las oportunidades y desafíos del mundo real de la computación sin servidor.

Introducción a IBM Cloud Code Engine

Vaya más allá de las funciones para ejecutar toda su carga de trabajo en contenedores, incluidas aplicaciones web, microservicios y trabajo por lotes, en esta plataforma sin servidor totalmente administrada.

Vuelva a disfrutar su cloud

Eche un vistazo más de cerca a IBM Cloud Code Code Engine y los beneficios que ofrece.

Dé el siguiente paso

La computación sin servidor ofrece una forma más sencilla y rentable de crear y operar aplicaciones en cloud. Conozca IBM Cloud Code Engine, una plataforma sin servidor de pago por uso que permite a los desarrolladores desplegar aplicaciones sin servidor y flujo de trabajo sin necesidad de conocimientos de Kubernetes.

Explore Cloud Code Engine
Notas de pie de página

(Todos los enlaces residen fuera de ibm.com)

Global Serverless Architecture Market Report, SkyQuest, Marzo de 2024

Why The Future Of Software And Apps Is Serverless, ReadWrite, Octubre de 2012

3 About OAuth 2.0, OAuth

4 Faster startup for containerized applications with Open Liberty InstantOn, Open Liberty