Inicio

Topics

Sin servidor

¿Qué es la informática sin servidor?
Explore la solución sin servidor de IBM Regístrese para recibir actualizaciones en la nube
Ilustración con collage de pictogramas de monitor de ordenador, servidor, nubes, puntos

Publicado: 10 de junio de 2024
Colaboradores: Stephanie Susnjara, Ian Smalley

¿Qué es la informática sin servidor?

La informática 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 ni infraestructura de back-end.

Sin servidor no significa que "no haya servidores". A pesar del nombre, los servidores en la informática sin servidor son gestionados por un proveedor de servicios en la nube (CSP). "Sin servidor" describe la experiencia del desarrollador con esos servidores: son invisibles para el desarrollador, que no los ve, no los gestiona ni interactúa con ellos de ninguna manera.

Los desarrolladores pueden centrarse en escribir el mejor código de aplicación front-end y la lógica empresarial con la computación sin servidor. Todo lo que necesitan hacer es escribir el código de su aplicación e implementarlo en contenedores administrados por un CSP.

El proveedor de servicios en la nube se encarga del resto, el aprovisionamiento de la infraestructura en la nube necesaria para ejecutar el código y la ampliación y reducción de la infraestructura en función de las necesidades, y también es responsable de toda la gestión y el mantenimiento rutinarios de la infraestructura, como las actualizaciones y los parches del sistema operativo, la gestión de la seguridad, la planificación de la capacidad, la monitorización del sistema, etc.

Además, los desarrolladores nunca pagan por la capacidad inactiva con sin servidor. El proveedor de servicios en la nube pone en marcha y suministra los recursos informáticos necesarios cuando se ejecuta el código, después los vuelve a reducir, llevando a cabo lo que se conoce como "escalado a cero" cuando se detiene la ejecución. La facturación comienza cuando se inicia la ejecución y termina cuando se detiene; normalmente, la tarificación se basa 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), sin servidor se ha convertido en una oferta líder de servicios en la nube. Según un informe de SkyQuest Technology, el tamaño del mercado mundial de arquitectura sin servidores se valoró en 8010 millones de dólares en 2022 y se espera que pase de 9840 millones de dólares en 2023 a 50 860 millones de dólares en 20311. Hoy en día, todos los principales proveedores de servicios en la nube ofrecen una plataforma sin servidor, incluidos Amazon Web Services (AWS Lambda), Microsoft Azure (Azure), Google Cloud (Google Cloud Cloud Cloud Code Engine).

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

Eche un vistazo a este vídeo para obtener una explicación detallada de sin servidor y la pila sin servidor (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 sin servidor

Sin servidor se originó en 2008 cuando Google lanzó Google App Engine (GAE), una plataforma para desarrollar y alojar aplicaciones web en centros de datos gestionados por Google. Con GAE, un desarrollador de software podría crear e iniciar software en la nube de Google sin preocuparse por tareas de gestión de servidores como parches o equilibrio de carga, que Google gestionó.

El término "sin servidor" apareció por primera vez en un artículo técnico por el especialista en cloud computing Ken Fromm en 20122. En 2014, Amazon introdujo 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 administrar servidores. 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

Sin servidor es mucho más que una función como servicio (FaaS), el servicio de cloud computing que permite a los desarrolladores ejecutar código o contenedores en respuesta a eventos o solicitudes específicos sin especificar ni gestionar la infraestructura necesaria para ejecutar el código.

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

Además de FaaS, estos servicios incluyen bases de datos y almacenamiento, pasarelas 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 (en particular el almacenamiento de objetos) son la base de la capa de datos. Un enfoque sin servidor de estas tecnologías implica pasar de aprovisionar "instancias" con límites definidos de capacidad, conexión y consulta a modelos que se escalan linealmente con la demanda, tanto en infraestructura como en precios.

Pasarelas de API

Las pasarelas de API actúan como proxies de las acciones web y proporcionan enrutamiento de métodos HTTP, ID y secretos de los clientes, límites de velocidad, CORS, visualización del uso de la 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 de procesamiento basadas en eventos y flujos de trabajo, 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 controlar eventos individuales. Estas funciones se han convertido en una parte esencial de la arquitectura basada en eventos (EDA): un modelo de diseño de software construido en torno a la publicación, captura, procesamiento y almacenamiento de eventos. En un marco 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 estrena una nueva serie original, varios servicios de EDA están a la espera de la notificación del estreno, lo que desencadena una cascada de actualizaciones para informar a los usuarios. Muchas otras empresas basadas en aplicaciones web y móviles orientadas al usuario (por ejemplo, Uber, DoorDash, Instacart) se basan en la arquitectura basada en eventos.

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

Dado que sin servidor, la plataforma como servicio (PaaS), los contenedores y las máquinas virtuales (VM) desempeñan un papel crucial en el ecosistema de computación y desarrollo de aplicaciones en la nube, resulta útil medir cómo se comparan los servicios sin servidor con los demás en algunos atributos clave.

  • Tiempo de suministro: se mide en milisegundos para modelos sin servidor, frente a los minutos u horas de los otros modelos.
  • Carga administrativa: ninguna para sin servidor, en comparación con un continuo de ligera a media a pesada para PaaS, contenedores y VMs, respectivamente.
  • Mantenimiento: las arquitecturas sin servidor las gestionan al 100 % los CSP. Lo mismo ocurre con PaaS, pero los contenedores y las máquinas virtuales requieren un mantenimiento significativo, incluida la actualización y administración de sistemas operativos, imágenes de contenedores, conexiones, etc.
  • Escalado: el autoescalado, incluido el autoescalado 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 de escalado automático y ningún escalado a cero.
  • Planificación de la capacidad: no se necesita para sin servidor. Los demás modelos precisan una mezcla de escalabilidad automática y de planificación de la capacidad.
  • Sin estado: inherente para sin servidor, lo que significa que la escalabilidad nunca supone un problema. El estado se mantiene en un servicio o recurso externo. PaaS, contenedores y máquinas virtuales pueden aprovechar HTTP, mantener un socket o conexión abiertos durante largos periodos de tiempo y almacenar el estado en la memoria entre llamadas.
  • Alta disponibilidad (HA) y recuperación ante desastres (DR): sin servidor ofrece alta disponibilidad y recuperación ante desastres sin esfuerzo ni coste adicional. Los otros modelos requieren costes y esfuerzos de gestión adicionales. La infraestructura se puede reiniciar automáticamente con máquinas virtuales y contenedores.
  • Uso de los recursos: sin servidor es eficiente al 100 % porque no hay capacidad inactiva; solo se invoca a petición. Todos los demás modelos presentan al menos cierto grado de capacidad desocupada.
  • Facturación y ahorro en la facturación: sin servidor se mide en unidades de 100 milisegundos. La PaaS, los contenedores y las máquinas virtuales suelen medirse en horas o minutos.
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 escalado de contenedores. La automatización de Kubernetes simplifica drásticamente el desarrollo de aplicaciones basadas en contenedores.

Las aplicaciones sin servidor suelen implementarse 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 para 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, tanto si el contenedor está construido en torno a una función sin servidor como a algún otro código de aplicación (por ejemplo, microservicios). Knative funciona abstrayendo el código y gestionando el enrutamiento de red, los activadores de eventos y el autoescalado para la ejecución sin servidor.

Knative es transparente para los desarrolladores. Construyen un contenedor utilizando Kubernetes, y Knative hace el resto, mediante la ejecución del contenedor como una carga de trabajo sin servidor.

Ventajas y desventajas de sin servidor
Ventajas

La informática sin servidor ofrece a los desarrolladores individuales y a los equipos de desarrollo empresarial muchas ventajas técnicas y empresariales:

  • Mejora de la productividad de los desarrolladores: como se ha señalado anteriormente, sin servidor permite a los equipos de desarrollo centrarse en escribir código, no en gestionar la infraestructura. Así, los desarrolladores tienen mucho más tiempo para innovar y optimizar la funcionalidad y la lógica empresarial de sus aplicaciones front-end.
  • Pague sólo por la ejecución: el contador comienza cuando se realiza la solicitud y termina cuando finaliza la ejecución. Compare esto con el modelo informático IaaS, en el que los clientes pagan por los servidores físicos, las máquinas virtuales y otros recursos necesarios para ejecutar aplicaciones, desde el momento en 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.
  • Racionalización de los ciclos de desarrollo/DevOps: sin servidor simplifica la implementación y, en un sentido más amplio, también simplifica DevOps porque los desarrolladores no pierden tiempo definiendo la infraestructura necesaria para integrar, probar, entregar e implementar compilaciones de código en producción.
  • Rendimiento rentable: para cargas de trabajo específicas (por ejemplo, el procesamiento lamentablemente paralelo, el procesamiento de flujos, tareas específicas de procesamiento de datos), la informática sin servidor puede ser más rápida y rentable que otras formas de procesamiento.
  • Reducir latencia: en un entorno sin servidor, el código puede ejecutarse más cerca del usuario final, lo que reduce 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 forma sistemática.
Desventajas

Aunque sin servidor tiene muchas ventajas, es esencial tener en cuenta algunas desventajas:

  • Menos control: en un entorno sin servidor, una organización entrega el control del servidor a un CSP de terceros, renunciando así a la gestión del hardware y los entornos de ejecución.
  • Bloqueo del proveedor: cada proveedor de servicios ofrece capacidades y características únicas sin servidor que son incompatibles con otros proveedores.
  • Inicio lento: también conocido como "arranque 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 de informática sin servidor, ya que los desarrolladores carecen de visibilidad de los procesos back-end.
  • Mayor coste para la ejecución de aplicaciones largas: los modelos de ejecución sin servidor no están diseñados para ejecutar código durante períodos prolongados. Por lo tanto, los procesos de larga duración pueden costar más que los entornos tradicionales de servidores especializados o máquinas virtuales.
Sin servidor y seguridad

Aunque los CSP proporcionan medidas de seguridad para gestionar las aplicaciones sin servidor, el cliente también es responsable de asegurar el código y los datos de la aplicación según un modelo de responsabilidad compartida. Las medidas de seguridad basadas en la nube para sin servidor incluyen políticas de seguridad automatizadas y soluciones como la gestión de eventos e información de seguridad (SIEM), la gestión de identidades y accesos (IAM) y la detección y respuesta ante amenazas.

Seguir las prácticas de DevSecOps ayuda a los equipos de desarrollo a proteger sin servidor. DevSecOps, que son las siglas de "desarrollo, seguridad y operaciones", es una práctica de desarrollo de aplicaciones que automatiza la integración de la seguridad y las prácticas de seguridad en cada fase del ciclo de vida del desarrollo de software, desde el diseño inicial hasta la integración, las pruebas, la entrega y la implantación.

Sin servidor y sostenibilidad

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

Además, un modelo sin servidor permite a las empresas optimizar sus emisiones a través de la eficiencia de los recursos, al pagar únicamente por los recursos necesarios y utilizarlos. Esta característica da como resultado menos energía desperdiciada en procesos inactivos o excesivos.

Casos de uso sin servidores

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.

Sin servidor y microservicios

El caso práctico más común sin servidor hoy en día es dar soporte a arquitecturas de microservicios. El modelo de microservicios se centra en la creación de pequeños servicios que realizan una única tarea y se comunican entre sí mediante API. Aunque los microservicios también pueden construirse y operarse a través de PaaS o contenedores, sin servidor ha cobrado un impulso significativo debido a sus atributos en torno a pequeños fragmentos de código, escalado inherente y automático, aprovisionamiento rápido y un modelo de precios que nunca cobra por capacidad ociosa.

Backends de API

Cualquier acción (o función) en una plataforma sin servidor puede convertirse en un endpoint HTTP listo para ser consumido por clientes web. Cuando se habilitan para la web, estas acciones se denominan acciones web. Una vez que disponga de acciones web, puede ensamblarlas en una API completa con una pasarela API que aporte más seguridad, compatibilidad conOAuth3, limitación de tarifas y compatibilidad con dominios personalizados.

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 de su proceso de aplicación Java en ejecución durante la compilación de la aplicación y, a continuación, restaurar ese punto de control en producción. La restauración es rápida (en el bajo 100 s de milisegundos), lo que lo hace ideal para sin servidor. Dado que InstantOn es un punto de control de su aplicación existente, su comportamiento después de la restauración es idéntico, incluido el mismo rendimiento excelente. Este proceso permite a las organizaciones adoptar sin servidor para las nuevas aplicaciones nativas de la nube y ofrece la oportunidad de llevar la tecnología sin servidor a las empresas existentes.

Tratamiento de datos

Sin servidor es ideal para trabajar con datos estructurados de texto, audio, imagen y vídeo 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 el procesamiento de PDF, la normalización de audio, el procesamiento de imágenes (rotación, nitidez, reducción de ruido, generación de miniaturas), el reconocimiento óptico de caracteres (OCR) y la transcodificación de video.

Operaciones de cálculo paralelo masivo y "map"

Cualquier tipo de tarea lamentablemente paralela es un buen caso de uso 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,el almacenamiento de objetos en la nube), 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.

Cargas de trabajo de procesamiento de flujos

La combinación de Apache Kafka administrado con FaaS y base de datos o almacenamiento ofrece una base sólida para desarrollos en tiempo real de canales de datos y aplicaciones de transmisión. Estas arquitecturas son ideales para trabajar con todo tipo de entradas de flujos de datos (para validación, limpieza, enriquecimiento, transformación), incluidos datos de sensores IoT, datos de registro de aplicaciones, datos de mercados financieros y flujos de datos empresariales (de otras fuentes de datos).

IA y sin servidor

Sin servidor proporciona la escalabilidad automatizada necesaria para ejecutar cargas de trabajo de inteligencia artificial (IA) y machine learning (ML), lo que garantiza un rendimiento óptimo y acelera la innovación.

Nube híbrida y sin servidor

La informática sin servidor admite una estrategia de nube híbrida al proporcionar la agilidad, flexibilidad y escalabilidad necesarias para acomodar cargas de trabajo fluctuantes en entornos locales, nube pública, nube privada y perimetral.

Aplicaciones comunes para sin servidor

Sin servidor admite muchas de las aplicaciones más comunes actuales, como gestión de relaciones con los clientes (CRM), informática de alto rendimiento (HPC), análisis de Big Data, automatización de procesos empresariales, transmisión de vídeo, juegos, telemedicina, comercio digital, creación de chatbots y más.

Tutoriales: Introducción a sin servidor

Puede ampliar sus conocimientos de informática serverless con los siguientes tutoriales:

  • Experimente Liberty InstantOn (CRIU): desbloquee nuevo valor para su organización con IBM WebSphere Liberty optimizando su despliegue cloud y mejorando la eficiencia operativa. Liberty InstantOn muestra una forma mejor de lograr un rendimiento sin servidores sin concesiones.
  • Ejecute trabajos por lotes: aprenda a ejecutar un trabajo por lotes utilizando la consola de Code Engine. Un trabajo ejecuta una o más instancias de su código ejecutable. A diferencia de las aplicaciones que manejan solicitudes HTTP, los trabajos están diseñados para ejecutarse una vez y salir.
Soluciones
IBM Cloud Code Engine

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

Explore IBM Cloud Code Engine
IBM Cloud Pak for Applications

Ya se trate de la implementación, la creación de nuevas aplicaciones nativas de la nube, la refactorización o la replanificación de aplicaciones existentes, Cloud Pak for Applications (CP4Apps) lo tiene todo cubierto.

Explorar IBM Cloud Pak for Applications
IBM Cloud Satellite

Implemente y ejecute aplicaciones de forma constante en entornos locales, edge computing y nube pública de cualquier proveedor de servicios de nube.

Explore IBM Cloud Satellite
IBM Cloudant

La capa de datos para aplicaciones a hiperescala, resistentes y disponibles en todo el mundo, basada en el entorno de código abierto Apache CouchDB.

Explore IBM Cloudant
Monitorización sin servidor Instana

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

Explora la monitorización sin servidor de Instana
Recursos
Serverless in the enterprise, 2021

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

Vaya más allá de las funciones para ejecutar todas sus cargas de trabajo en contenedores, incluidas aplicaciones web, microservicios y trabajos por lotes, en esta plataforma serverless totalmente gestionada.

Vuelva a disfrutar de su nube

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

Dé el siguiente paso

La informática serverless ofrece una forma más sencilla y rentable de crear y operar aplicaciones en la nube. Obtenga información sobre IBM Cloud Code Engine, una plataforma sin servidor de pago por uso que permite a los desarrolladores implementar aplicaciones y flujos de trabajo sin servidor sin necesidad de tener conocimientos de Kubernetes.

Explore Cloud Code Engine
Notas a pie de página

(Enlaces externos a 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 Acerca de OAuth 2.0, OAuth

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