¿Qué es sin servidor?
Sin servidor (serverless) es un modelo de desarrollo y ejecución de aplicaciones en la nube que permite a los desarrolladores crear y ejecutar código sin gestionar servidores ni pagar por la infraestructura de nube que esté desocupada
imagen abstracta negra y azul
¿Qué es sin servidor?

Sin servidor es un modelo de desarrollo y ejecución de aplicaciones de cloud computing que permite a los desarrolladores crear y ejecutar código de aplicación sin necesidad de suministrar ni gestionar servidores o infraestructura de backend.

Sin servidor permite a los desarrolladores centrar toda su atención en escribir el mejor código de aplicación frontal y lógica empresarial que puedan. Solo tienen que preocuparse por escribir su código de aplicación y desplegarlo en los contenedores gestionados por un proveedor de servicios en la nube. El proveedor de nube se encarga del resto y suministra la infraestructura de nube para ejecutar el código y escalar la infraestructura hacia arriba y abajo a petición, según sea necesario. El proveedor de nube también es responsable de la gestión y el mantenimiento de toda la infraestructura de rutina, como las actualizaciones y parches del sistema operativo, la gestión de la seguridad, la planificación de la capacidad o la supervisión del sistema, entre otras tareas.

También importante: en un sistema sin servidor, los desarrolladores nunca pagan por capacidad desocupada. El proveedor de nube activa y aprovisiona los recursos informáticos requeridos a petición cuando se ejecuta el código y los vuelve a desactivar, lo que se denomina "escalado a cero", cuando se detiene la ejecución. La facturación comienza cuando se inicia la ejecución y finaliza cuando se detiene la ejecución; normalmente, el establecimiento de precios se basa en el tiempo de ejecución y los recursos requeridos.

La informática sin servidor o serverless no significa que no haya servidores

A pesar del nombre, definitivamente hay servidores en la informática sin servidor. "Serverless" describe la experiencia del desarrollador con estos servidores: son invisibles para el desarrollador, que no los ve, ni los gestiona ni interactúa con ellos de ninguna manera.

Actualmente, todos los principales proveedores de servicios en la nube ofrecen una plataforma sin servidor, incluidos Amazon Web Services (AWS Lambda), Microsoft Azure (Azure Functions), Google Cloud (Google Cloud Functions) e IBM Cloud (IBM Cloud Code Engine). Juntos, la informática sin servidor, los microservicios y los contenedores forman un triunvirato de tecnologías que se suelen considerar el núcleo del desarrollo de aplicaciones nativo en la nube

Sin servidor es más que solo FaaS

Función como servicio, o FaaS, es un 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 requerida para ejecutar el código.

FaaS es el modelo informático fundamental para la informática sin servidor, y los dos términos a menudo se usan indistintamente. Pero sin servidor es mucho más que FaaS. Sin servidor es una pila completa de servicios que pueden responder a eventos o solicitudes específicos, así como escalar a cero cuando ya no se utilizan, y para los cuales el suministro, la gestión y la facturación son manejados por el proveedor de nube e invisibles para los desarrolladores. Además de FaaS, estos servicios incluyen:

  • Bases de datos y almacenamiento sin servidor: bases de datos (SQL y No SQL) y almacenamiento (en concreto, almacenamiento de objetos) constituyen la base de la capa de datos. Un enfoque sin servidor a estas tecnologías implica pasar de suministrar "instancias" con límites definidos de capacidad, conexión y consulta, para avanzar hacia modelos que escalan infraestructura de forma lineal a petición, tanto en infraestructura como en precios.

  • Mensajería y transmisión de eventos: las arquitecturas sin servidor son adecuadas para cargas de trabajo basadas en eventos y de procesamiento de secuencias, en particular la plataforma de transmisión de eventos Apache Kafka de código abierto.

  • Pasarelas de API: las pasarelas de API actúan como proxies para acciones web y proporcionan direccionamiento de métodos HTTP, ID y secretos de cliente, límites de tarifa, CORS, visualización de uso de API, visualización de registros de respuesta y políticas sobre el uso compartido de API

Ashher Syed de IBM ofrece una explicación detallada de la informática sin servidor y la pila sin servidor (6:37):

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

Como la informática sin servidor, la plataforma como servicio (PaaS), los contenedores y las máquinas virtuales (VM) desempeñan un papel fundamental en el desarrollo de aplicaciones en la nube y el ecosistema informático, es útil comparar algunos atributos clave del modelo sin servidor con los demás.

  • Tiempo de aprovisionamiento: medido en milisegundos para sin servidor, frente a minutos u horas para los otros modelos.

     

  • Carga administrativa: ninguna para sin servidor, en comparación con una progresión de ligera a pesada para PaaS, contenedores y máquinas virtuales, respectivamente.

     

  • Mantenimiento: las arquitecturas sin servidor son completamente gestionadas por el proveedor. Lo mismo se aplica a PaaS, pero los contenedores y las máquinas virtuales requieren un mantenimiento significativo, que incluye la actualización y gestión de sistemas operativos, imágenes de contenedor, conexiones, etc.

     

  • Escalado: el escalado automático, incluido el escalado automático a cero, es instantáneo e inherente para la informática sin servidor. Los otros modelos ofrecen un escalado automático pero lento, que requiere un ajuste minucioso de las reglas de escalado automático y no se escalan a cero.

     

  • Planificación de la capacidad: no se necesita para la informática sin servidor. Los otros modelos requieren una combinación de escalabilidad automática y planificación de la capacidad.

     

  • Sin estado: inherente para los sistemas sin servidor, lo que significa que la escalabilidad nunca es un problema porque el estado se mantiene en un recurso o servicio externo. PaaS, contenedores y máquinas virtuales pueden aprovechar HTTP, mantener un socket abierto o una conexión durante largos períodos de tiempo y almacenar el estado en la memoria entre llamadas.

     

  • Alta disponibilidad (HA) y recuperación tras desastre (DR): ambas son inherentes al modelo sin servidor, sin requerir ningún esfuerzo ni coste adicional. Los demás modelos sí conllevan un coste y un esfuerzo de gestión adicionales. En el caso de máquinas virtuales y contenedores, la infraestructura se puede reiniciar automáticamente.

  • Utilización de recursos: el modelo sin servidor es 100 % eficiente porque no existe la capacidad desocupada, se invoca solo por solicitud. Todos los demás modelos presentan al menos cierto grado de capacidad inactiva.

     

  • Granularidad de facturación y ahorro: el modelo sin servidor se mide en unidades de 100 milisegundos, mientras que PaaS, contenedores y máquinas virtuales normalmente se miden por hora o por minuto.

Sin servidor, Kubernetes y Knative

Kubernetes es una plataforma de orquestación de contenedores de código abierto que automatiza el despliegue, la gestión y el escalado de contenedores. La automatización de Kubernetes simplifica en gran medida el desarrollo de aplicaciones basadas en contenedores.

Las aplicaciones sin servidor a menudo se despliegan en contenedores. Por sí solo, Kubernetes no puede ejecutar aplicaciones sin servidor sin software especializado que integre Kubernetes con una plataforma sin servidor de un proveedor de nube específico.

Knative proporciona un marco sin servidor para Kubernetes. Es una extensión de código abierto de Kubernetes, que 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 se crea en torno a una función sin servidor como algún otro código de aplicación (por ejemplo, microservicios). Knative funciona mediante la abstracción del código y el manejo del direccionamiento de red, activadores de eventos y escalado automático para la ejecución sin servidor.

Knative es transparente para los desarrolladores: solo crean un contenedor normalmente con Kubernetes y Knative se encarga del resto, ejecutando el contenedor como una carga de trabajo sin servidor.

Más información sobre Knative

Pros y contras de la informática sin servidor

Pros

Dado todo lo anterior, no debería sorprender que la informática sin servidor ofrezca un buen número de ventajas técnicas y de negocio a los desarrolladores y a los equipos de desarrollo de empresa.

Mayor productividad de los desarrolladores. Como se ha señalado anteriormente, el modelo sin servidor permite a los equipos de desarrollo centrarse en escribir código, no en la gestión de la infraestructura. Da a los desarrolladores mucho más tiempo para innovar y optimizar su aplicación frontal, funcionalidad y lógica empresarial.

Pagar solo por ejecución. El medidor comienza cuando se realiza la solicitud y finaliza cuando se detiene la ejecución. Compare esto con el modelo de infraestructura como servicio (IaaS), en el cual los clientes pagan por los servidores físicos, las máquinas virtuales (VM) y otros recursos necesarios para ejecutar las aplicaciones, desde el momento en que suministran estos recursos hasta el momento en que explícitamente los desconectan.

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 sientan cómodos.

Ciclos de desarrollo/DevOps optimizados. El modelo sin servidor simplifica el despliegue y, en un sentido más amplio, simplifica DevOps porque los desarrolladores no dedican tiempo a definir la infraestructura necesaria para integrar, probar, suministrar y desplegar compilaciones de código a producción.

Rendimiento rentable. Para determinadas cargas de trabajo —vergonzosamente procesamiento paralelo, procesamiento de secuencias y determinadas tareas del procesamiento de datos— la informática sin servidor puede resultar más rápida y rentable que otras formas.

Visibilidad de uso. Las plataformas sin servidor brindan una visibilidad casi total sobre los tiempos del usuario y del sistema, además pueden agregar información de uso sistemáticamente.

Los profesionales de desarrollo y TI citan otras ventajas específicas de la informática sin servidor. Puede explorarlas usando la herramienta interactiva (PDF, 1,8 MB) a continuación.

 

Casos de uso para el modelo sin servidor

Dada su combinación exclusiva de atributos y ventajas, la arquitectura sin servidor es adecuada para casos de uso en torno a microservicios, backends móviles y procesamiento de secuencias de eventos y datos.

Sin servidor y microservicios

Actualmente, el caso de uso más común del modelo sin servidor es el soporte de arquitecturas de microservicios. El modelo de microservicios se centra en la creación de pequeños servicios que hacen un único trabajo y se comunican entre sí mediante API. Si bien los microservicios también se pueden crear y operar utilizando PaaS o contenedores, el sistema sin servidor ha ganado terreno gracias a sus atributos en torno a pequeños fragmentos de código, su escalabilidad inherente y automática, el rápido suministro y un modelo de establecimiento de precios que nunca cobra por la capacidad desocupada.

Backends de API

Cualquier acción (o función) en una plataforma sin servidor puede convertirse en un punto final HTTP listo para su consumo por parte de clientes web. Cuando se habilitan para web, estas acciones se denominan acciones web. Cuando tenga las acciones web, puede ensamblarlas en una API completa con una pasarela de API que brinda seguridad adicional, soporte OAuth, limitación de tarifa y soporte de dominios personalizado.

Para una experiencia práctica con backends de API, consulte el tutorial "Aplicación web sin servidor y API".

Procesamiento de datos

El modelo sin servidor es ideal para trabajar con texto estructurado y datos de vídeo, audio e imagen, en torno a tareas como enriquecimiento, transformación, validación y limpieza de datos; procesamiento de PDF; normalización de audio; procesamiento de imágenes (rotación, perfeccionamiento, reducción de ruido, generación de miniaturas); reconocimiento óptico de caracteres (OCR); y transcodificación de vídeo. Para conocer un caso de uso detallado del proceso de imágenes, lea "Cómo SiteSpirit multiplicó por 10 su velocidad, al 10 % del coste”.

Operaciones "map"/cálculo paralelo masivo

Cualquier tipo de tarea paralela es un buen caso de uso para una ejecución sin servidor, donde cada tarea paralelizable genera una invocación de acción. Las tareas de muestra incluyen todo, desde búsqueda de datos y procesamiento (específicamente Cloud Object Storage), operaciones Map(-Reduce) y web scraping o raspado web para la automatización de procesos de negocio, ajuste de hiperparámetros, simulaciones Monte Carlo y procesamiento de genomas.

Para un ejemplo detallado, lea "Cómo una simulación Monte Carlo se ejecutó 160 veces más rápido en una arquitectura sin servidor frente a una máquina local".

Cargas de trabajo de procesamiento de secuencias

La combinación de Apache Kafka gestionado con FaaS y base de datos/almacenamiento ofrece una potente base para adiciones en tiempo real de canalizaciones de datos y aplicaciones de streaming. Estas arquitecturas son ideales para trabajar con todo tipo de ingestas de secuencias de datos (para validación, limpieza, mejora, transformación), incluidos datos de sensores de IoT, datos de registros de aplicaciones, datos de mercado financiero y secuencias de datos empresariales (de otros orígenes de datos).

Aplicaciones comunes para sin servidor

En una encuesta reciente de IBM, los profesionales de TI afirmaron que utilizan un modelo sin servidor en una amplia gama de aplicaciones, como la gestión de relaciones con los clientes (CRM), análisis e inteligencia empresarial, finanzas y más.

 

Tutoriales: Cómo empezar con la informática sin servidor

Puede ampliar sus conocimientos en informática sin servidor con estos tutoriales:

Soluciones
IBM Cloud Code Engine

Ejecute contenedores, códigos de aplicación o trabajos por lotes en un entorno de ejecución de contenedores totalmente gestionado.

Explore IBM Cloud Code Engine
IBM Cloud Satellite

Despliegue y ejecute aplicaciones de forma coherente en entornos locales, edge computing y nube pública de cualquier proveedor de nube.

Explore IBM Cloud Satellite
IBM Cloudant

La capa de datos para aplicaciones de hiperescala resilientes y disponibles a nivel global, basada en Apache CouchDB de código abierto.

Explore IBM Cloudant
Recursos Serverless in the enterprise, 2021

Una nueva investigación revela información sobre las oportunidades y los desafíos de la informática sin servidor.

Introducción a IBM Cloud Code Engine

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

Enjoy your cloud again

Conozca mejor IBM Cloud Code Engine y las ventajas que aporta.

Dé el siguiente paso

La informática sin servidor ofrece una forma más sencilla y rentable de crear y ejecutar aplicaciones en la nube. Conozca IBM Cloud Code Engine, una plataforma sin servidor de pago por uso que permite a los desarrolladores desplegar aplicaciones y flujos de trabajo sin servidor, sin requerir conocimientos de Kubernetes.

Explore IBM Cloud Code Engine hoy mismo