Topics Sin servidor

¿Qué significa sin servidor (serverless)?


Sin servidor es un patrón de diseño de arquitectura de software que aprovecha la ejecución de código basada en eventos impulsada por servicios gestionados en la nube para crear aplicaciones masivamente escalables y rentables compuestas de pequeñas funciones discretas sin que los desarrolladores tengan que diseñar o pensar en la infraestructura subyacente donde se ejecuta su código.

Más información sobre GitLab

¿Qué es la lógica empresarial sin servidor?

Entonces, ¿qué es la lógica empresarial sin servidor? Todas las aplicaciones utilizan servidores en algún momento. El término sin servidor enfatiza un modelo de arquitectura y servicio en el que los desarrolladores no necesitan preocuparse por la infraestructura y, en cambio, pueden centrarse en la lógica empresarial de su aplicación. Sin servidor es la próxima evolución del diseño arquitectónico desde el monolito, a los microservicios, a las funciones, como Adrian Cockcroft explica en este video.

Sin servidor, FaaS (funciones como servicio) y servicios gestionados

A menudo, sin servidor y FaaS se tratan como términos intercambiables, pero esto no es realmente exacto. Sin servidor es un patrón arquitectónico general que utiliza un FaaS junto con otros servicios gestionados en la nube. FaaS es un tipo específico de servicio, como AWS Lambda, Google Cloud Functions y Azure Functions, que permite a los desarrolladores implementar funciones.

Atributos del patrón sin servidor

  1. Unidades de código pequeñas y discretas. Por lo general, los servicios escritos con arquitectura sin servidor se componen de una sola función.

  2. Ejecución basada en eventos. La infraestructura necesaria para ejecutar una función no existe hasta que se activa una función. Una vez que se recibe un evento, se crea un entorno informático efímero para ejecutar esa solicitud. El entorno puede destruirse de inmediato, o lo más habitual es que permanezca activo durante un breve período de tiempo, normalmente 5 minutos.

  3. Escala a cero. Una vez que una función deja de recibir solicitudes, la infraestructura se desactiva y deja de funcionar por completo. Esto ahorra costos, ya que la infraestructura solo se ejecuta cuando hay uso. Si no hay uso, el entorno se reduce a cero.

  4. Escala al infinito. El FaaS se encarga de monitorear la carga y crear instancias adicionales cuando sea necesario, en teoría, hasta el infinito. Esto prácticamente elimina la necesidad de que los desarrolladores piensen en la escala a medida que diseñan aplicaciones. Una sola función implementada puede manejar una o mil millones de solicitudes sin ningún cambio en el código.

  5. Uso de servicios gestionados. Las arquitecturas sin servidor suelen utilizar servicios proporcionados por la nube para elementos de su aplicación que proporcionan trabajo pesado no diferenciado, como almacenamiento de archivos, bases de datos, colas, entre otros. Por ejemplo, Firebase de Google es popular en la comunidad sin servidor como un servicio de gestión de bases de datos y estados que se conecta a otros servicios de Google como Cloud Functions.

Comparación de servicios gestionados en la nube

Este es un gráfico con ejemplos de servicios gestionados de AWS, Google Cloud y Azure junto con sus contrapartes de código abierto.

Servicio __ Código abierto__ AWS Google Cloud Azure
FaaS Knative Lambda Funciones de la nube Funciones de Azure
Almacenamiento Minio S3 Almacenamiento en la nube Almacenamiento en Azure
SQL DB MySQL RDS Cloud SQL Azure SQL Database
NoSQL DB MongoDB, Cassandra, CouchDB DynamoDB Cloud Datastore Cosmos DB
Cola de mensajes Kafka, Redis, RabbitMQ SQS, Kinesis Google Pub/Sub Azure Queue Storage
Service mesh Istio App Mesh Istio en GKE Azure Service Fabric Mesh

Valores comerciales y beneficios de GitLab sin servidor

GitLab sin servidor permite a las empresas implementar su propio FaaS en Kubernetes.

Más rápido

Ritmo de innovación más rápido. La productividad de los desarrolladores aumenta cuando pueden centrarse únicamente en la lógica empresarial.

Estabilidad

Mayor estabilidad/resiliencia (menos pérdida de ingresos debido al tiempo de inactividad).

Escala

A mayor escala, el software puede mantenerse al día con la demanda comercial.

Costo

Costos más bajos. Dado que el cómputo solo se factura cuando un servicio está activo, la tecnología sin servidor ofrece un enorme ahorro de costos en comparación con la infraestructura siempre activa.

Sin bloqueo de proveedores

Sin bloqueo de proveedores. Las organizaciones pueden elegir quién quieren que gestione su informática. En cualquier nube que admita Kubernetes, o incluso servidores locales.

Flujo de trabajo

Su FaaS forma parte del mismo flujo de trabajo que el resto del ciclo de vida del software con una sola aplicación, desde la planificación y las pruebas hasta la implementación y la supervisión.

## Implementación

Las funciones de implementación se optimizan y simplifican en gran medida en comparación con el uso directo de Knative.

¿Todo listo para comenzar?

Descubra lo que su equipo puede hacer con una plataforma de DevSecOps unificada.