1. Temas
  2. Desarrollo y distribución de aplicaciones.
  3. ¿Qué es la informática sin servidor?

¿Qué es la informática sin servidor?

CopiadoError al copiarCopiar URL

La informática sin servidor es un modelo de desarrollo directo en la nube que permite que los desarrolladores diseñen y ejecuten aplicaciones sin tener que gestionar los servidores. La informática sin servidor se basa en eventos, se ajusta automáticamente y suele tener un modelo de precios de pago según el consumo. La arquitectura sin servidor es un enfoque de diseño en el que las aplicaciones se inician solo cuando es necesario. 

Gracias a esta tecnología, los desarrolladores solo deben empaquetar el código en contenedores para implementarlo. Una vez que se instalan las aplicaciones sin servidor, estas responden a la demanda y se amplían o reducen automáticamente en función de las necesidades. Por lo general, los proveedores de nube pública ofrecen esta tecnología a un costo que se mide a través de un modelo de ejecución basado en eventos, según se solicite. Por eso, cuando una función permanece inactiva, no se genera ningún cargo.

El término "sin servidor" no significa que no haya servidores. Significa que los servidores no se involucran en el desarrollo de las aplicaciones. Los proveedores de nube se encargan de las tareas rutinarias de aprovisionamiento, mantenimiento y ajuste de la infraestructura de los servidores. En los modelos de informática sin servidor, los proveedores de nube ejecutan los servidores físicos y asignan los recursos por los usuarios, que pueden implementar el código directamente en la producción.

Descubre Red Hat OpenShift Serverless

La informática sin servidor se refiere al modelo de desarrollo de una aplicación, mientras que la arquitectura sin servidor hace referencia al enfoque de diseño de esa aplicación. Si bien los dos términos suelen utilizarse indistintamente, son conceptos diferentes.

Informática sin servidor 

Lo que distingue a la informática sin servidor de los demás modelos de cloud computing es que el proveedor de nube se encarga de gestionar tanto la infraestructura de nube como el ajuste de las aplicaciones. En lugar de tener que preparar y mantener los servidores, puedes ejecutar las aplicaciones en recursos informáticos de gestión automática que proporcionan los proveedores de nube. Las aplicaciones sin servidor se implementan en contenedores que se inician automáticamente cuando se solicitan. 

En el caso de los modelos estándares de cloud computing de infraestructura como servicio (IaaS), los usuarios adquieren cierta capacidad por adelantado, lo cual significa que pagan a un proveedor de nube pública por elementos del servidor que funcionan permanentemente para ejecutar sus aplicaciones. El usuario debe encargarse de ampliar la capacidad durante los períodos de mayor demanda y reducirla cuando ya no haga falta. La infraestructura de nube requerida para ejecutar las aplicaciones permanece activa incluso cuando no se utilizan.

Tipos de informática sin servidor

La informática sin servidor se puede clasificar en varias categorías:

  • Función como servicio (FaaS). La FaaS ejecuta funciones basadas en eventos en contenedores a corto plazo. No es necesario gestionar instancias de servidores, ya que solo se ejecuta cuando se activa.
  • Backend como servicio (BaaS). El BaaS ofrece servicios de backend totalmente gestionados que se ocupan de la autenticación, las bases de datos, la mensajería y el almacenamiento. Suele utilizarse en aplicaciones web y móviles.
  • Bases de datos sin servidor. Las bases de datos sin servidor se ajustan automáticamente y no requieren la gestión de la infraestructura.
  • Contenedores sin servidor. Los contenedores sin servidor se ejecutan sin un aprovisionamiento manual y se ajustan de forma dinámica.
  • Edge computing sin servidor. El edge computing sin servidor ejecuta el código más cerca de los usuarios para reducir la latencia.

Arquitectura sin servidor

Cuando un evento activa el funcionamiento del código de las aplicaciones, el proveedor de nube pública le asigna los recursos correspondientes, y el usuario deja de pagar cuando termina de ejecutarse. Con este enfoque, los desarrolladores no tienen que encargarse de las tareas asociadas con la preparación de los servidores y el ajuste de las aplicaciones. El proveedor de servicios de nube es quien se ocupa de las tareas rutinarias como gestionar el sistema operativo y el sistema de archivos, ejecutar los parches de seguridad, equilibrar la carga y administrar la capacidad. Se puede diseñar una aplicación completamente sin servidor, o una de microservicios en parte tradicionales y en parte sin servidor.

La arquitectura sin servidor que utiliza elementos de microservicios es conocida como "microservicios sin servidor". En este caso, la arquitectura sin servidor permite que el desarrollador escriba código, mientras que los microservicios dividen las aplicaciones en elementos más pequeños y fáciles de gestionar. Esta combinación agiliza las tareas de implementación y desarrollo. 

Recursos de Red Hat

Ventajas

  • Delegación de las tareas de gestión de los servidores: Como no es necesario aprovisionar, mantener ni ajustar los servidores, los desarrolladores tienen más tiempo para centrarse en las aplicaciones.
  • Rentabilidad: Con el modelo de pago por uso, solo pagas por el tiempo real de ejecución de las funciones, por lo que ya no deberás asumir los costos de los recursos inactivos.
  • Desarrollo e implementación más rápidos: Aumenta la productividad de los desarrolladores, ya que para gestionar e implementar la infraestructura se requiere una mínima configuración.
  • Ajuste automático: Las funciones y los servicios se amplían o reducen automáticamente en función de la demanda.
  • Seguridad integrada: El proveedor es quien se ocupa de gestionar los parches y las actualizaciones de seguridad, por lo que se reducen los riesgos asociados con errores de configuración en los servidores.

Desventajas

  • Complejidad de la arquitectura: Los flujos de trabajo basados en eventos pueden volverse complejos cuando interactúan varias funciones de manera asincrónica.
  • Limitaciones de interacción: Los proveedores de nube pueden imponer límites al uso de sus recursos, lo que disminuye la flexibilidad.
  • Dependencia de un proveedor: Los servicios sin servidor que se integran directamente a los ecosistemas de los proveedores de nube pueden dificultar la migración.

Casos prácticos de la informática sin servidor

Algunos casos prácticos conocidos son las aplicaciones web y las interfaces de programación de aplicaciones (API) de backend, la automatización de los procesos empresariales, los sitios web sin servidor y la integración en varios sistemas.

La arquitectura sin servidor es ideal para las aplicaciones asincrónicas y sin estado que pueden iniciarse de forma instantánea. Es una buena opción para los casos en los que la demanda aumenta de manera inusual e impredecible.

Piensa en el procesamiento por lotes de archivos entrantes de imagen, el cual tal vez sea poco frecuente, pero debe estar listo cuando ingresa una gran cantidad de imágenes al mismo tiempo. Otro buen ejemplo es la observación de los cambios entrantes en una base de datos seguida de la ejecución de una serie de funciones, como verificar los cambios según los estándares de calidad o traducirlos automáticamente.

Las aplicaciones sin servidor también son ideales para los casos prácticos que involucran flujos de datos entrantes, chatbots, tareas programadas o lógica empresarial.

La función como servicio (FaaS)es un modelo conocido de informática sin servidor que se centra en funciones basadas en eventos y permite que los desarrolladores escriban la lógica que se implementa en los contenedores, cuya gestión corresponde a los proveedores de servicios de nube. Estas son las características de los contenedores: 

  • Sin estado: Simplifican aún más la integración de los datos.
  • Efímeros: Pueden ejecutarse durante un período muy breve.
  • Activados por eventos: Pueden ejecutarse de forma automática cuando sea necesario.
  • Totalmente gestionados: Solo pagas por lo que utilizas.

Con este modelo, los desarrolladores tienen un mayor grado de control y pueden solicitar funciones mediante llamadas a las API que el proveedor de nube gestiona a través de una puerta de enlace de API.

Los proveedores de nube principales ofrecen soluciones de FaaS, como AWS Lambda, Azure Functions, Google Cloud e IBM Cloud Functions. Algunas empresas usan plataformas open source como Red Hat® OpenShift® Serverless (basada en Knative) para ejecutar sus propios entornos de FaaS.

La FaaS se diferencia del modelo de servicios de backend, BaaS, en que este último brinda a los desarrolladores acceso a servicios de terceros como la autenticación, el cifrado y las bases de datos, generalmente a través de las API. El BaaS simplifica las tareas de backend, pero ofrece menos control sobre la lógica personalizada de las aplicaciones.

Obtén más información sobre la FaaS

Kubernetes es una plataforma conocida para gestionar aplicaciones en contenedores, pero no ofrece soporte integrado para las cargas de trabajo de la informática sin servidor. Knative es un proyecto open source que incorpora los elementos necesarios para implementar, ejecutar y gestionar las aplicaciones sin servidor en Kubernetes.

Knative te permite implementar el código en una plataforma de Kubernetes, como Red Hat OpenShift, para que puedas utilizar los entornos sin servidor. Con él, puedes empaquetar el código como una imagen de contenedor, y el sistema inicia y detiene las instancias cuando es necesario.

Knative consta de tres elementos principales:

  • Compilación: Se convierte el código fuente en contenedores.
  • Publicación: Se implementan y ajustan automáticamente los contenedores según las solicitudes.
  • Gestión de eventos: Se gestionan eventos de varias fuentes, como aplicaciones, servicios de nube, sistemas de software como servicio (SaaS) y flujos de Apache Kafka, para activar funciones.

A diferencia de las soluciones de informática sin servidor tradicionales, Knative respalda una gran variedad de cargas de trabajo, desde las aplicaciones monolíticas hasta los microservicios y las funciones menores. Se puede ejecutar en cualquier plataforma con Kubernetes, incluidos los entornos en las instalaciones.

Knative ofrece algunos beneficios clave:

  • Cargas de trabajo sin servidor y microservicios compatibles: Puedes implementar funciones sin estado y basadas en eventos dentro de Kubernetes. Además, puedes implementar microservicios de larga duración que se ajusten de forma dinámica sin tener que mantener instancias de servidores manualmente.
  • Optimización del uso de los recursos y los costos: A diferencia de los microservicios tradicionales, en los que los pods pueden funcionar permanentemente, Knative permite desactivar los recursos cuando no hay solicitudes y, así, reducir los costos.
  • Flexibilidad y API estandarizadas: Knative se ajusta a los patrones de Kubernetes y funciona con distintos proveedores de nube.

Knative incorpora el valor de la informática sin servidor a Kubernetes para simplificar la implementación y la gestión de las cargas de trabajo sin servidor.

Diseña una arquitectura sin servidor con Knative

Red Hat OpenShift Serverless te permite diseñar e implementar aplicaciones sin servidor más rápido sin que tengas que preocuparte por todos los detalles de la gestión de la infraestructura. Ofrece una plataforma sin servidor para empresas que aporta portabilidad y uniformidad en todos los entornos de nube híbrida y multicloud. 

Con OpenShift Serverless, los desarrolladores pueden crear aplicaciones centradas en el código fuente directamente en la nube gracias a que utiliza una serie de definiciones de recursos personalizados (CRD) y los controladores asociados en Kubernetes. Además, esta solución simplifica el trabajo de los equipos de operaciones, ya que se instala fácilmente en Red Hat OpenShift, se ha probado con otros productos de Red Hat e incluye acceso a un servicio de soporte galardonado. 

OpenShift Serverless ofrece una solución completa de desarrollo e implementación de aplicaciones sin servidor al integrar las aplicaciones a otros servicios de Red Hat OpenShift Container Platform, como Red Hat OpenShift Service Mesh y la supervisión de clústeres. Los desarrolladores pueden usar una sola plataforma para alojar las aplicaciones heredadas, de microservicios y sin servidor. Además, estas se empaquetan como contenedores de Linux®, por lo que pueden ejecutarse en cualquier parte. 

Create an OpenShift Serverless function

Blog oficial de Red Hat: últimas novedades sobre la automatización empresarial, la nube híbrida, la inteligencia artificial y mucho más.

Más información sobre nuestro ecosistema de clientes, socios y comunidades y las últimas novedades sobre la automatización empresarial, la nube híbrida, la inteligencia artificial y mucho más.

Todas las versiones de prueba de los productos de Red Hat

Con las versiones de prueba gratuitas de nuestros productos, podrás adquirir experiencia práctica, prepararte para obtener una certificación o evaluar las soluciones para saber si son adecuadas para tu empresa.

Más información

¿Qué es una aplicación empresarial?

Una aplicación empresarial es un software que gestiona los procesos fundamentales de toda una empresa.

¿Qué es la experiencia de los desarrolladores (DevEx)?

Obtén más información sobre la experiencia de los desarrolladores, es decir, sus acciones y sensaciones al interactuar con las herramientas y los procesos de desarrollo, y descubre los motivos por los que es importante.

IDE: ¿Qué es y para qué sirve?

Un entorno de desarrollo integrado (IDE) es un sistema de software para el diseño de aplicaciones que combina herramientas del desarrollador comunes en una sola GUI. Vea las ventajas y tipos más populares de IDE.

Desarrollo y distribución de aplicaciones.: lecturas recomendadas

Artículos relacionados