Saltar al contenido principal

¿Qué es la informática sin servidor?

Aprende sobre la computación sin servidor, un modelo de nube en el que los proveedores de nube gestionan la infraestructura y permiten a los desarrolladores de software enviar aplicaciones rápidamente.
Actualizado 29 jul 2024  · 13 min de lectura

Mantener un servidor físico o virtual no es tarea fácil, ya sea por los elevados costes de mantenimiento o por la necesidad de mano de obra cualificada. La computación sin servidor resuelve estos problemas proporcionando una forma económica de permitir a los desarrolladores crear y ejecutar aplicaciones en la nube. 

En este artículo, repasaremos la computación sin servidor, sus aplicaciones y sus ventajas para desarrolladores y empresas. Se trata de un tema importante porque el tamaño del mercado de la informática sin servidor superó los 9 millones de dólares en 2022 y se prevé que crezca otro 25% en los próximos diez años. Vayamos al grano.

Definición y visión general

Digamos que la luz y el agua que utilizas en tu casa se cobran en función de tu consumo, en lugar de una cuota mensual fija estimada. Así funciona la informática sin servidor: No es más que una forma en que los proveedores de la nube asignan su infraestructura para que puedas crear y ejecutar tus aplicaciones en función del uso, sin preocuparte del mantenimiento de los servidores.

A diferencia de la computación en nube tradicional, en la que se instala un servidor físico o virtualizado, almacenamiento y equipos de red, en la computación sin servidor, el proveedor de la nube gestiona la infraestructura y te asigna recursos automáticamente a medida que tu aplicación escala. En otras palabras, la computación sin servidor es la abstracción del servidor por parte de los desarrolladores, lo que les permite centrarse más en las aplicaciones que están creando en lugar de preocuparse por la infraestructura en la que se aloja la aplicación. 

Imagina que estás acostumbrado a tener entre 100 y 200 usuarios diarios en tu aplicación. Si al día siguiente tus usuarios aumentan repentinamente a 1.000.000, el servidor escalará automáticamente sus recursos para satisfacer esa demanda. Esto no es factible con la computación en nube tradicional, ya que los servidores experimentarán tiempos de inactividad debido al aumento del tráfico, y si el servidor tiene poco almacenamiento, hay que comprar un almacenamiento mayor, lo que lleva tiempo.

Categoría Computación sin servidor Informática tradicional
Escalado Dinámico Fijo
Facturación Según el uso Los costes corrientes, independientemente del uso, también incluyen los costes de mantenimiento y funcionamiento
Gestión de infraestructuras Abstraído de las empresas Requiere una gestión activa

Características principales

Antes de examinar las características clave que distinguen la computación sin servidor de otros modelos tradicionales de nube, veamos las terminologías clave en la computación sin servidor.

  • Función: Se trata de un fragmento de código diseñado para realizar una tarea específica, como cargar un archivo, procesar peticiones HTTP o cualquier otra cosa. Cada función es independiente de las demás y está diseñada para actuar en respuesta a un suceso.
  • Invocación: Es la llamada a una función para que realice una acción concreta, que también puedes tomar como la ejecución de un código de función en respuesta a un evento.
  • Duración: Es el tiempo que tarda en ejecutarse una función desde que es invocada hasta que devuelve una respuesta.
  • Arranque en frío: Es el tiempo que tarda una plataforma sin servidor en asignar recursos cuando se invoca a una función antes de que comience su ejecución.
  • Límite de concurrencia: Es el número máximo de instancias que una función puede ejecutar simultáneamente en respuesta a eventos y peticiones.
  • Tiempo de espera: Es la duración máxima permitida para una función antes de ser terminada por la plataforma sin servidor.

Ejecución basada en eventos

La ejecución dirigida por eventos también se conoce como función como servicio (FAAS), en la que la aplicación sin servidor se divide en funciones independientes sin servidor activadas por eventos específicos de fuentes como peticiones HTTP, cambios en una base de datos, consultas de mensajes o cargas de archivos.

Supón que tienes una aplicación sin servidor que procesa automáticamente imágenes cada vez que se suben a un bucket de Amazon S3. Cuando un usuario sube un archivo de imagen, se activa una función para procesar la imagen y guardarla en otro bucket de Amazon S3. Esto garantiza que la función se ejecute sólo cuando sea necesario, haciendo que el sistema sea eficiente y rentable. 

Imagen que demuestra la ejecución basada en eventos, utilizando la carga de archivos como ejemplo.

Ejecución basada en eventos, utilizando como ejemplo la carga de archivos. Imagen del autor

Autoescalado

Autoescalado es la asignación de recursos informáticos en función de la demanda o del aumento de las cargas de trabajo. Es una característica clave de la computación sin servidor que la hace eficiente y adaptable, garantizando que no se desperdicien recursos si no hay mucha carga de trabajo o demanda en el servidor, y que no se experimente tiempo de inactividad cuando el servidor experimenta una gran demanda.

Por ejemplo, tu aplicación recibe un pico de tráfico. En lugar de experimentar tiempos de inactividad en tu servidor debido al elevado tráfico, la plataforma proporciona automáticamente instancias adicionales para gestionar el aumento de la carga de trabajo. Asimismo, la plataforma reduce los recursos para minimizar los costes cuando el tráfico es bajo. Esto garantiza la eficacia sin intervención manual, haciendo que la aplicación sea rentable y tenga capacidad de respuesta en diversos escenarios. 

Facturación de pago por uso

Las plataformas sin servidor cobran a los usuarios en función de los recursos utilizados y no de los recursos asignados. A diferencia de los modelos de nube tradicionales, en los que puede que no utilices todos los recursos asignados, en las plataformas sin servidor sólo pagas por el tiempo de computación utilizado. Los costes también se miden, lo que significa que pagas por invocación o duración de la ejecución de la función, garantizando que se te facturen exactamente los recursos que utilizas. 

Si, por ejemplo, tu aplicación procesa 100 imágenes de usuarios en un mes determinado, en lugar de pagar por el uso 24/7 del servidor, pagas sólo por el tiempo de cálculo utilizado para las 100 imágenes procesadas. 

Abstracción de la gestión del servidor

Esta es también una característica clave de la computación sin servidor, en la que los desarrolladores y las empresas no tienen que preocuparse de aprovisionar, escalar y mantener los servidores. Esto les permite centrarse en los problemas centrales del negocio y dejar el mantenimiento del servidor a los proveedores de la nube. 

Gestión de la concurrencia

Las plataformas sin servidor pueden ejecutar múltiples funciones simultáneamente. Esto lo hace rápido y eficaz en comparación con los enfoques tradicionales. Si los usuarios quieren subir imágenes a su plataforma y el proveedor sin servidor proporciona un límite de concurrencia por defecto de 100, entonces cualquier petición que supere el límite de concurrencia se pone en cola y se ejecuta en la siguiente ejecución de la función. 

Ventajas de la informática sin servidor

Rentabilidad

A diferencia de la computación en nube tradicional, que requiere servidores dedicados e incurre en costes siempre que el servidor está inactivo, las plataformas sin servidor utilizan un modelo basado en eventos para cobrar a los desarrolladores. Una analogía útil es utilizar un servicio de taxi en lugar de tener un coche. Con un taxi no tienes que preocuparte de los gastos que conlleva, como el aparcamiento, el combustible, etc., pues sólo pagas por la distancia que recorres. En la computación sin servidor, al igual que en el taxi, sólo pagas por los recursos informáticos que utilizas. A diferencia del enfoque tradicional (poseer un coche), eres responsable de cada recurso informático que utilizas, incluso cuando el sistema está inactivo. 

Imagen que muestra la comparación de rentabilidad entre los servidores tradicionales y la informática sin servidor.

Comparación de rentabilidad entre tipos de servidores. Fuente: Cloudflare

Reducción de la complejidad operativa

Se ahorra mucho tiempo en la computación sin servidor porque los desarrolladores no necesitan dedicar su tiempo a instalar y mantener servidores; se centran más en construir la aplicación. Dado que las aplicaciones se construyen como funciones independientes en la nube, se puede actualizar una función sin alterar las demás o toda la aplicación.

Escalabilidad mejorada

Esta es una de las ventajas más importantes de una plataforma sin servidor y la razón por la que es popular entre las organizaciones más pequeñas y las startups. Las plataformas sin servidor facilitan a los desarrolladores escalar sus operaciones automáticamente cuando aumenta la demanda. Para las funciones que experimentan fluctuaciones en las peticiones, las plataformas sin servidor escalan para satisfacerlas aumentando o disminuyendo la asignación de recursos, garantizando así la optimización de los recursos informáticos. 

Tiempo de comercialización más rápido

Con las aplicaciones sin servidor, puedes lanzar aplicaciones rápidamente y obtener de inmediato los comentarios de los usuarios. Esto es importante para las startups, ya que reduce el tiempo invertido y la mano de obra necesaria para crear aplicaciones.

Fiabilidad

A diferencia de las aplicaciones alojadas en servidores dedicados, se pueden ejecutar aplicaciones sin servidor desde cualquier lugar. Esto mejora el rendimiento de las aplicaciones y reduce la latencia en comparación con la computación en nube tradicional.

Arquitectura sin servidor y cómo funciona

La arquitectura sin servidor es una forma de construir aplicaciones sin instalar ni gestionar la infraestructura que aloja la aplicación. Los desarrolladores pueden crear aplicaciones sin servidor utilizando cualquiera de los dos modelos sin servidor: Backend as a Service (BaaS) o Function as a Service (FaaS).

  • Backend como servicio (BaaS): Este modelo sin servidor suele utilizarse cuando se construyen backends de aplicaciones web y móviles. Los desarrolladores no necesitan codificar funciones backend como bases de datos, autenticación de usuarios, almacenamiento y otras. Esto agiliza el desarrollo, ya que los desarrolladores se centran principalmente en el frontend de la aplicación. Ejemplos de proveedores que ofrecen BaaS, son Firebase, SupaBase y AWS Amplify.
  • Función como servicio (FaaS): En FaaS, los desarrolladores escriben el código para que la plataforma lo ejecute sin preocuparse de gestionar los recursos informáticos y el escalado. Esto permite la ejecución de funciones en respuesta a eventos desencadenados. Ejemplos de proveedores que ofrecen FaaS son AWS Lambda, Azure Cloud Functions y Google Cloud Functions.

Imagen que muestra las arquitecturas de nube sin servidor FAAS y BAAS

Arquitecturas de nube sin servidor FAAS y BAAS. Fuente: Revista de Computación en la Nube

El principal objetivo de la arquitectura sin servidor es abstraer la gestión del servidor de los desarrolladores. Aquí tienes un desglose de cómo funcionan las plataformas sin servidor en su infraestructura.

  • Creación de funciones: Las aplicaciones construidas con una arquitectura sin servidor tienen su código escrito en subpartes, donde cada parte es una función individual independiente de otras funciones y destinada a lograr una tarea específica. 
  • Desarrollo de funciones: Estas funciones se empaquetan y despliegan en una plataforma sin servidor como AWS Lambda, Azure Cloud Functions o Google Cloud Functions.
  • Ejecución dirigida por eventos: Estas funciones se invocan en respuesta a un determinado acontecimiento o desencadenante. Estos desencadenantes son cambios en la base de datos, peticiones HTTP o cualquier otra cosa. 
  • Autoescalado: Las plataformas sin servidor gestionan el uso de recursos por eventos según aumente o disminuya la carga de trabajo. Por ejemplo, el servidor asigna más recursos cuando una función concreta recibe mucho tráfico.
  • Contenedores transitorios: Al desencadenar un evento se crean contenedores que permiten a la función ejecutada acceder a los recursos necesarios. Tras completar una tarea, estos contenedores se destruyen.
  • Facturación: La facturación se realiza en función del tiempo de ejecución y de los recursos informáticos utilizados. 
  • Apátridas: Las funciones sin servidor, cuando se ejecutan, no retienen información. Cualquier información necesaria en una invocación se guarda en una base de datos o externamente. 
  • Registros y monitorización: Las plataformas sin servidor proporcionan herramientas de registro y supervisión para realizar un seguimiento del rendimiento de la aplicación y de los problemas en las funciones.

Cabe preguntarse: ¿No es la arquitectura sin servidor lo mismo que la arquitectura de contenedores, ya que ambas abstraen el servidor de los desarrolladores? Esto es cierto, pero a diferencia de las funciones sin servidor, que abstraen completamente el servidor al construir y enviar aplicaciones en contenedores, cuando una aplicación experimenta un tráfico elevado, es necesario escalar los contenedores utilizando herramientas como Kubernetes. Esto contradice el objetivo de FaaS, donde todas las acciones relacionadas con el servidor son gestionadas automáticamente por la plataforma sin servidor.

En una arquitectura de contenedor, puedes tener instancias de contenedor que pueden ejecutarse durante un largo periodo, lo que puede generar costes, a diferencia de las funciones sin servidor, en las que se factura por el tiempo que tu función pasa ejecutándose. Para aplicaciones más pequeñas, utilizar una arquitectura sin servidor facilita su desacoplamiento en partes que las plataformas sin servidor pueden ejecutar como funciones independientes.

Plataformas de computación sin servidor

Antes de la llegada de Google App Engine en 2008, Zimki ofrecía la primera plataforma de "pago por uso" para la ejecución de código, pero más tarde se cerró. En su fase inicial, Google App Engine sólo admitía Python y ofrecía facturación por contador para aplicaciones, entre las que se encontraba SnapChat. Hacia 2010, otra plataforma llamada PiCloud también ofrecía soporte FaaS para aplicaciones Python.

En 2014, AWS popularizó el modelo sin servidor lanzando herramientas como AWS Serverless Application Model (AWS SAM) y Amazon CloudWatch. Google lanzó entonces su segunda oferta sin servidor, Google Cloud functions, junto con Azure functions, en 2016. Desde entonces se han lanzado varias plataformas sin servidor, como Function Compute de Ali Baba Cloud e IBM Cloud Functions de IBM Cloud.

Para eliminar la necesidad de una base de datos virtualizada o física, también se han desarrollado bases de datos sin servidor. AWS ofrece Amazon Aurora, una versión sin servidor basada en MySQL y PostgreSQL. Azure ofrece Azure Data Lake, y Google proporciona Firestore.

Plataformas en la nube sin servidor. Fuente: Entrevista en red

Aplicaciones prácticas y casos de uso

Sitios web y API

La computación sin servidor se utiliza para crear aplicaciones web y API REST. Lo interesante es que las aplicaciones se construyen utilizando una infraestructura sin servidor autoescalable en función de las demandas de los usuarios, lo que mejora su experiencia.

Tratamiento de los medios

La arquitectura sin servidor facilita el procesamiento de los medios. Los usuarios pueden cargar contenido multimedia desde distintos dispositivos y tamaños, y la plataforma procesa una única función que satisface la demanda de cada usuario sin reducir el rendimiento de la aplicación. Por ejemplo, un usuario puede subir una imagen a través de un bucket de S3 que activa una función de AWS Lambda para añadir una marca de agua o una miniatura a la imagen.

Chatbots

Los desarrolladores pueden implementar un chatbot para responder a las preguntas de los clientes utilizando una arquitectura sin servidor y pagar sólo por los recursos que utilice el Chatbot. Por ejemplo, Slack utiliza una arquitectura sin servidor para gestionar las solicitudes variables de los bots, con el fin de evitar la infrautilización del ancho de banda debido a la fluctuación diaria de las necesidades de los clientes.

Webhooks

Puedes utilizar una plataforma sin servidor para interactuar con los proveedores de SaaS a través de un punto final HTTP webhook, que recibe notificaciones y realiza tareas. Esto ofrece un mantenimiento mínimo, bajos costes y escalado automático para el webhook incorporado.

IoT

Coca-Cola utiliza arquitecturas sin servidor en su máquina expendedora Freestyle para permitir a los clientes pedir, pagar y recibir notificaciones de pago por sus bebidas. Coca-Cola afirmó que gastaba unos 13.000 $/año en el funcionamiento de sus máquinas expendedoras, cantidad que se redujo a 4.500 $/año tras implantar arquitecturas sin servidor en las máquinas expendedoras. 

Tratamiento de datos

Major League Baseball Advanced Media construyó su producto Statcast con arquitectura sin servidor para proporcionar a los usuarios métricas deportivas precisas y en tiempo real. Utiliza la informática sin servidor para procesar datos y ofrecer a los usuarios información sobre los partidos de béisbol. 

Aplicaciones basadas en eventos

La arquitectura sin servidor se utiliza para aplicaciones basadas en eventos, de forma que cuando un evento o un estado cambia, activa un servicio. Se pueden utilizar plataformas sin servidor para vigilar los cambios en una base de datos y compararlos con las normas de calidad.

Edge Computing sin servidor

Debido al viaje de larga distancia de los datos, las aplicaciones tardan en procesar las peticiones y entregar el contenido desde los servidores centralizados, lo que introduce problemas de latencia y cuellos de botella.

La computación de borde sin servidor resuelve este problema distribuyendo los recursos informáticos a múltiples ubicaciones para reducir la carga de trabajo del servidor central. La computación de borde sin servidor es la ubicación de recursos informáticos que ejecutan funciones sin servidor más cerca de los usuarios finales (borde). Esto permite que la aplicación sin servidor funcione en más dispositivos, disminuya la congestión y reduzca la latencia.

En la computación de borde sin servidor, la infraestructura se dedica a cada dispositivo, permitiéndole realizar tareas complejas sin enviar los datos de vuelta a la ubicación central para su procesamiento. He aquí algunos casos de uso que optimizan la experiencia del usuario utilizando funciones edge sin servidor:

  • Experiencia personalizada: Con las funciones de borde sin servidor, los usuarios pueden personalizar el contenido en función de sus preferencias, ubicación y tipo de dispositivo. 
  • Streaming de vídeo y juegos: Procesar las peticiones cerca de los usuarios reduce la latencia y el almacenamiento en búfer que se experimenta al transmitir vídeo o jugar a juegos en línea.
  • Seguridad y autenticación: Al distribuir la carga de trabajo en varias ubicaciones periféricas, el tráfico malicioso se comprueba y filtra antes de que llegue a la infraestructura central.
  • Dispositivos IOT: La computación de borde sin servidor facilita que los dispositivos IoT funcionen con eficacia, asegurando que la infraestructura que ejecuta el dispositivo esté cerca de los usuarios. 

Retos y consideraciones

A pesar de las ventajas que aporta la computación sin servidor, se enfrenta a algunos de los siguientes inconvenientes.

  • Bloqueo del vendedor: La mayoría de los proveedores de la nube ofrecen varios servicios que se integran bien con las aplicaciones sin servidor. Aunque es posible utilizar el servicio de otro proveedor en tu aplicación de servidor, los servicios prestados por un único proveedor son fáciles de integrar. 
  • Menos Control: Otro problema es la falta de control sobre el servidor. Si hay un problema con el servidor, como una interrupción o un problema de hardware, no puedes solucionarlo y el proveedor de la nube se encarga de arreglarlo.
  • Arranques en frío: El arranque en frío se produce cuando se invoca una función que ha estado inactiva durante un tiempo y tarda varios segundos en ejecutarse. Esto puede introducir una latencia que puede afectar al rendimiento de la aplicación y también a la experiencia del usuario.
  • Seguridad: Al confiar tus datos a un tercero y compartir un servidor con otros usuarios, corres el riesgo de exponer los datos de tus aplicaciones y usuarios si los servidores no están configurados correctamente.
  • Depuración de complejidades: Es difícil para los desarrolladores replicar localmente el entorno de producción debido a las características de las aplicaciones sin servidor, por lo que resulta difícil probar el código localmente. Las pruebas de integración que comprueban la interacción entre el código del frontend y el del backend también son difíciles de realizar en un entorno sin servidor. 

Conclusión

Para las empresas interesadas en crear aplicaciones ligeras, la computación sin servidor es el camino a seguir. Para aplicaciones compuestas por un gran número de servicios con interacciones complejas, se recomienda una infraestructura híbrida formada por máquinas virtuales para grandes procesos; en este caso, los contenedores sin servidor se utilizan sólo para tareas cortas. También se pueden considerar las funciones de borde sin servidor porque minimizan la latencia procesando los datos localmente sin poner mucha carga de trabajo en el servidor central.

Ten en cuenta que aún se están realizando diversos avances y desarrollos para ampliar las capacidades de la informática sin servidor. Por ejemplo, se puede utilizar un enfoque multi-nube para construir aplicaciones sin servidor, donde se puede construir una aplicación sin servidor utilizando servicios de más de un proveedor de nubes. También se han realizado más desarrollos para garantizar el arranque en frío cero de las funciones sin servidor, como se implementa en Cloudflare Workers

Gracias por sintonizarnos. Para saber más sobre la computación sin servidor y desarrollar tus habilidades en este campo, consulta los siguientes recursos de DataCamp:

Para una lectura más breve, consulta nuestra entrada de blog con ideas de proyectos para todos los niveles de habilidad.

Preguntas frecuentes

¿Qué es la informática sin servidor?

La computación sin servidor es un modelo de computación en nube en el que los proveedores de la nube gestionan la infraestructura, asignando automáticamente los recursos a medida que las aplicaciones escalan. Los desarrolladores pueden centrarse en crear y ejecutar aplicaciones sin preocuparse del mantenimiento del servidor.

¿En qué se diferencia la computación sin servidor de la computación en nube tradicional?

A diferencia de la computación en nube tradicional, la computación sin servidor ofrece escalado dinámico, facturación de pago por uso y abstrae la gestión de la infraestructura de las empresas.

¿Cuáles son las principales ventajas de la computación sin servidor?

Entre las principales ventajas están la rentabilidad, la reducción de la complejidad operativa, la mejora de la escalabilidad, la mayor rapidez de comercialización y el aumento de la fiabilidad.

¿Cuáles son algunos casos de uso habituales de la informática sin servidor?

La computación sin servidor se utiliza para crear sitios web y API, procesamiento multimedia, chatbots, webhooks, aplicaciones IoT, procesamiento de datos y aplicaciones basadas en eventos.

¿Qué retos deben tenerse en cuenta al adoptar la computación sin servidor?

Algunos retos son la dependencia del proveedor, el menor control sobre la infraestructura subyacente, los arranques en frío, los posibles problemas de seguridad por compartir recursos y las complejidades de depuración debidas a la naturaleza distribuida de las aplicaciones sin servidor.

Temas

Aprende con DataCamp

curso

Understanding Cloud Computing

2 hr
81.7K
A non-coding introduction to cloud computing, covering key concepts, terminology, and tools.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

Las 20 mejores preguntas y respuestas de la entrevista sobre AWS Lambda para 2024

AWS Lambda es un servicio de computación sin servidor y un tema cada vez más común en las entrevistas técnicas. Tanto si eres nuevo en la computación en la nube como si eres un profesional experimentado, comprender AWS Lambda es esencial.
Zoumana Keita 's photo

Zoumana Keita

12 min

blog

5 competencias esenciales en ingeniería de datos

Descubra los conocimientos de ingeniería de datos que necesita para prosperar en el sector. Descubra las funciones y responsabilidades de un ingeniero de datos y cómo puede desarrollar sus propias habilidades.
Joleen Bothma's photo

Joleen Bothma

11 min

blog

¿Qué es un modelo generativo?

Los modelos generativos utilizan el machine learning para descubrir patrones en los datos y generar datos nuevos. Conoce su importancia y sus aplicaciones en la IA.
Abid Ali Awan's photo

Abid Ali Awan

11 min

blog

¿Qué es Microsoft Fabric?

Descubra cómo Microsoft Fabric revoluciona el análisis de datos y conozca cómo sus características principales permiten a las empresas tomar decisiones basadas en datos.
Kurtis Pykes 's photo

Kurtis Pykes

10 min

blog

La importancia de los datos: 5 razones principales

¿Por qué son importantes los datos? Conoce la importancia de los datos en el mundo actual y descubre algunos cursos que te ayudarán a mejorar tus propias habilidades con los datos.
Kurtis Pykes 's photo

Kurtis Pykes

6 min

tutorial

Tutorial de GitHub y Git para principiantes

Un tutorial para principiantes que muestra cómo funciona el control de versiones Git y por qué es crucial para los proyectos de ciencia de datos.
Abid Ali Awan's photo

Abid Ali Awan

17 min

Ver másVer más