¿Qué es la informática sin servidor?

La computación sin servidor es un modelo de desarrollo de aplicaciones en el que puede crear e implementar aplicaciones en una infraestructura de servidores administrados por terceros. Todas las aplicaciones requieren servidores para ejecutarse. Sin embargo, en el modelo sin servidor, un proveedor de servicios en la nube se encarga del trabajo rutinario; aprovisiona, escala y mantiene la infraestructura subyacente. El proveedor de servicios en la nube realiza varias tareas, como la administración del sistema operativo, la aplicación de parches de seguridad, la administración del sistema de archivos y la capacidad, el equilibrio de carga, la supervisión y el registro. Como resultado, los desarrolladores pueden centrarse en el diseño de las aplicaciones y seguir recibiendo los beneficios de una infraestructura de servidores rentable, eficiente y escalable de forma masiva.

¿Por qué es importante la computación sin servidor?

En los primeros días de Internet, cualquier persona que quisiera ejecutar una aplicación web tenía que comprar y mantener servidores físicos. Por lo general, las empresas almacenaban sus dispositivos de servidor físico en centros de datos locales o en instalaciones de coubicación. Esto podía resultar caro, ya que la mayoría de las aplicaciones solo utilizaban una fracción muy pequeña de los recursos del equipo del servidor.

El modelo de computación en la nube resolvió inicialmente este problema al permitir a los clientes crear servidores o instancias virtuales en el equipo del proveedor de servicios en la nube. Sin embargo, los clientes aún tenían que aprovisionar, configurar, actualizar y escalar sus servidores virtuales.

En respuesta a estos problemas, los proveedores de servicios en la nube comenzaron a ofrecer tecnologías sin servidor para aumentar la agilidad y optimizar aún más los costes. Con la computación sin servidor, sus desarrolladores pueden ejecutar código, administrar datos e integrar aplicaciones sin preocuparse por las tareas de administración de la infraestructura.

La adopción de la tecnología sin servidor tiene varios beneficios, que describimos a continuación.

Aumento de la productividad de los desarrolladores

Sus equipos de desarrollo pueden centrarse en crear aplicaciones en lugar de configurarlas. La reducción de los gastos operativos significa que sus aplicaciones llegan al mercado más rápido. Sus desarrolladores pueden responder a los comentarios de los clientes y publicar cambios frecuentes en el código de las aplicaciones.

Escalabilidad eficiente

Los proveedores de servicios en la nube proporcionan una característica de escalamiento automático en sus entornos sin servidores. Sus aplicaciones sin servidor se escalan automáticamente de cero a picos de demanda. Sus desarrolladores no tienen que pensar en el uso al escribir código.

Costos más bajos

Solo paga por la CPU, la memoria y otros recursos informáticos necesarios cuando se ejecuta el código. No paga nada por los recursos inactivos. Este modelo de facturación de pago por valor garantiza una utilización óptima de los recursos y no se desperdicia debido al exceso de aprovisionamiento.

¿Cuáles son los casos de uso de la computación sin servidor?

Hay muchas aplicaciones y sistemas en los que la computación sin servidor puede resultar útil.

Desarrollo de aplicaciones sin estado

La arquitectura sin servidor es ideal para aplicaciones asincrónicas y sin estado que no guardan los datos del cliente entre sesiones. Algunos ejemplos de aplicaciones sin servidor son los chatbots, los programadores de tareas y las aplicaciones de IoT. Por ejemplo, Coca-Cola utilizó AWS para desarrollar una aplicación móvil de vertido para su dispensador de bebidas sin contacto en tan solo 100 días. Coca-Cola utilizó componentes básicos sin servidor, como AWS Lambda.

Procesamiento por lotes

Las aplicaciones de procesamiento por lotes realizan periódicamente trabajos de datos repetitivos y de gran volumen, como copias de seguridad, filtrado y clasificación. El procesamiento por lotes es ideal para entornos sin servidores que se escalan de forma masiva cuando es necesario y no tienen coste alguno cuando no se utilizan.

Por ejemplo, Liberty Mutual utilizó AWS para consolidar sus distintas líneas de negocio globales en un sistema centralizado denominado Financial Central Services (FCS). Utilizó AWS Step Functions para crear una aplicación sin servidor que puede procesar 100 millones de transacciones en una sola ejecución al final de cada mes.

Análisis de datos en tiempo real

La computación sin servidor es ideal para que los motores de streaming en tiempo real mejoren la capacidad de respuesta de los clientes. Las aplicaciones sin servidor pueden gestionar grandes cantidades de datos de streaming de cientos de miles de fuentes y, al mismo tiempo, disfrutar de una latencia baja y un ancho de banda elevado. Como resultado, puede obtener información en segundos en lugar de minutos.

Por ejemplo, Genentech utiliza la funcionalidad sin servidor de AWS para el análisis de datos clínicos. Los investigadores ahora pueden completar tareas en unas pocas horas que antes tardarían semanas en ejecutarse.

Automatización de procesos empresariales

Puede utilizar el enfoque sin servidor para automatizar los procesos empresariales que son tediosos y consumen mucho tiempo. Sus desarrolladores pueden centrarse en traducir la lógica empresarial al código de la aplicación sin administrar los servidores.

Por ejemplo, Taco Bell usó AWS con el fin de crear aplicaciones sin servidor para realizar transformaciones de datos y lógica empresarial. Estas proporcionaron información sobre menús y restaurantes en tiempo real a los socios de entrega de Taco Bell. Las inversiones en servidores ayudaron a la marca a cambiar rápidamente para satisfacer la demanda de entrega de los consumidores durante la pandemia de COVID-19.

¿Cómo funciona la arquitectura sin servidor?

Cualquier aplicación tiene dos áreas amplias de funcionalidad: el frontend y el backend. El frontend incluye todo aquello con lo que interactúan los usuarios finales, como el diseño visual, los botones y el texto de la pantalla. El backend incluye funciones a las que los usuarios no pueden acceder, como el almacenamiento y el procesamiento de datos.

Por ejemplo, piense en una aplicación de reserva de vuelos en su dispositivo móvil. El frontend es la interfaz de usuario de la aplicación, donde puede elegir fechas y solicitar una lista de vuelos disponibles. Su solicitud va al backend, que busca en la base de datos y devuelve información sobre todos los vuelos disponibles en el periodo elegido. El siguiente diagrama ilustra la arquitectura tradicional.

Diagrama del marco de aplicaciones web tradicional

En la arquitectura sin servidor, los desarrolladores implementan el código de backend en la infraestructura de nube proporcionada por los proveedores de servicios en la nube. La clave de las aplicaciones sin servidor es la arquitectura basada en eventos, que es un patrón de arquitectura moderna diseñado a partir de servicios pequeños y desacoplados que publican, consumen o enrutan eventos. Los eventos son mensajes que se envían entre servicios.

Esta arquitectura hace que sea más fácil escalar, actualizar e implementar de manera independiente componentes individuales de un sistema. El siguiente diagrama ilustra un microservicio sin servidor basado en eventos.

Diagrama de microservicios sin servidor basado en eventos

A continuación, ofrecemos una descripción general de cómo funciona la arquitectura sin servidor.

Funciones

Las funciones son unidades de código pequeñas y discretas que realizan una sola tarea. Una función requiere recursos informáticos como la CPU y la memoria para ejecutarse. El proveedor de servicios en la nube asigna estos recursos solo cuando es necesario. Crea un entorno temporal para que se ejecute la función sin servidor.

Ciertos eventos pueden activar la unidad de código o hacer que se ejecute. Por ejemplo, un evento podría ejecutarse si un usuario selecciona un botón en una aplicación. La solicitud activaría una función que lee la base de datos y devuelve la información relevante al usuario.

Escalado de solicitudes

Cuantas más solicitudes reciba una función, más recursos necesitará para ejecutarse. La plataforma sin servidor monitorea la carga y sigue asignando los recursos de la nube a una escala casi infinita. De este modo, una sola función sin servidor puede gestionar una o un millón de solicitudes sin cambios en el código.

Una vez que una función deja de recibir solicitudes, el proveedor de servicios en la nube desactiva la infraestructura asociada para ahorrar costes. Asigna recursos solo cuando es necesario. Si no se usa, el entorno puede reducirse a cero.

¿Cuáles son los tipos de arquitectura sin servidor?

En la arquitectura sin servidor, el proveedor de servicios en la nube administra varias tareas de backend pequeñas y grandes para su aplicación. Puede implementar código personalizado; el proveedor de servicios en la nube asignará recursos de forma dinámica cada vez que se ejecute el código. La plataforma en la nube también puede proporcionar una funcionalidad de backend que puede usar directamente sin escribir código desde cero.

A continuación, explicamos ambos tipos de arquitecturas sin servidor.

Función como servicio

La función como servicio (FaaS) es una arquitectura sin servidor que los desarrolladores pueden usar para escribir funciones de backend personalizadas e implementar el código de la función directamente en la infraestructura de la nube. Cuando se llama a una función, el proveedor de servicios en la nube ejecuta la función en un servidor activo existente o activa un nuevo servidor si es necesario. Estas funciones se denominan funciones sin servidor porque su proceso de ejecución se abstrae de los desarrolladores. Los desarrolladores pueden escribir e implementar código sin preocuparse por cómo y dónde se ejecuta.

Backend como servicio

El backend como servicio (BaaS) brinda a los desarrolladores acceso a las funciones del backend mediante una API. Las API son mecanismos que permiten a dos componentes de software comunicarse entre sí mediante un conjunto de definiciones y protocolos.

En su entorno sin servidor, los proveedores de servicios en la nube brindan acceso basado en API a bases de datos adicionales de cifrado, autenticación y acceso a la nube. También pueden proporcionar acceso a otros servicios y aplicaciones de terceros. Estas funciones sin servidor vienen preescritas y se pueden llamar directamente en el código.

¿Qué es la estrategia de priorizar la tecnología sin servidor?

La arquitectura sin servidor se reconoce por los siguientes principios:

  • No hay que administrar servidores
  • Servicios de pago por valor
  • Escalado continuo
  • Tolerancia a errores integrada

Una estrategia que prioriza la tecnología sin servidores prioriza estos principios a lo largo de los ciclos de desarrollo, operaciones y aplicaciones de una organización. Un desarrollador sin servidor o una empresa que prioriza la tecnología sin servidores trabaja para crear en función de estos principios ante todo.

Sin embargo, la computación sin servidor no es adecuada para todas las cargas de trabajo. Puede incorporar tecnologías que no sean sin servidor en la arquitectura de soporte que necesite.

¿Es segura la arquitectura sin servidor?

La mayoría de los proveedores de servicios en la nube adoptan un modelo de seguridad compartido. El proveedor de servicios en la nube es responsable de la seguridad de la nube, mientras que los clientes son responsables de la seguridad en la nube.

Con la tecnología sin servidor, el proveedor de servicios en la nube administra muchas capas de infraestructura adicionales, incluidos los sistemas operativos y las redes. Los clientes deben seguir los principios de privilegios mínimos y las prácticas recomendadas para proteger una aplicación sin servidor.

Por ejemplo, en las soluciones de FaaS de AWS, como AWS Lambda, puede proteger cada recurso con permisos detallados mediante herramientas conocidas, como AWS IAM Identity Center. Esto puede ayudarlo a adoptar una postura de seguridad sólida para sus aplicaciones sin servidor.

¿Cómo puede AWS satisfacer sus requisitos de computación sin servidor?

Amazon Web Services (AWS) tiene muchas ofertas para respaldar su computación sin servidor.

En Sin servidor en AWS, se detallan las tecnologías que puede usar para ejecutar código, administrar datos e integrar aplicaciones sin administrar servidores. Con la tecnología sin servidor de AWS, obtiene escalamiento automático, alta disponibilidad integrada y un modelo de facturación de pago por uso para aumentar la agilidad y optimizar los costes. Estas tecnologías también eliminan las tareas de administración de infraestructura, como el aprovisionamiento de capacidad y la aplicación de parches, de manera que pueda enfocarse en escribir el código que sirva a sus clientes. 

Las aplicaciones sin servidor comienzan con AWS Lambda, un servicio informático basado en eventos que se integra de forma nativa con más de 200 servicios de AWS. También tenemos una gran cantidad de servicios de respaldo adicionales, como los siguientes:

Cree una cuenta hoy mismo para comenzar a utilizar la tecnología sin servidor en AWS.

Pasos siguientes en AWS

Descubra otros recursos relacionados con el producto
Innove más rápido con el conjunto más completo de servicios sin servidor 
Regístrese para obtener una cuenta gratuita

Obtenga acceso instantáneo al nivel Gratuito de AWS.

Regístrese 
Comenzar a crear en la consola

Comience a crear en la consola de administración de AWS.

Iniciar sesión