Qué es Serverless y una introducción a AWS Lambda
Hace varios días, subí a mi canal de YouTube un nuevo video (ver enlace al final de esta publicación) explicando qué es Serverless con una breve introducción a AWS Lambda (en hebreo). Este video fue una gran oportunidad para volver a visitar una publicación que publiqué en 2016 y comprobar las novedades de Lambda y cómo se ve la tecnología sin servidor (Serverless) 4 años después.
¿Qué es Serverless?
La idea básica de Serverless, tecnología introducida por AWS en 2014 y que se convirtió en disponibilidad general (GA, General Availability) en 2016, es que usted escribe su código (respetando ciertas reglas y requisitos básicos) y su proveedor de nube (AWS en este caso) ejecutará este código por usted cada vez que suceda algo que anteriormente se definió como desencadenante de este código.
Hoy en día, hay una variedad de desencadenantes, como cambios en los archivos en Amazon S3, cambios en su base de datos, eventos de IoT, eventos de CloudWatch, llamadas a API y muchos otros. En general, el desarrollo impulsado por eventos ha evolucionado mucho en los últimos años y hoy se pueden encontrar arquitecturas robustas que trabajan grandes cantidades de eventos y datos o procesos de llamada (o funciones) sin implementar un solo servidor.
La transición a Serverless ofrece los siguientes 4 beneficios:
- No hay servidores - no es necesario que administre su infraestructura.
- Mejor alineación con los requisitos de mi aplicación - el sistema se escalará automáticamente según las necesidades de la aplicación y sin necesidad de hacer nada para definir este proceso.
- Seguridad y alta disponibilidad para ser implementada – usted puede definir diferentes políticas de seguridad utilizando herramientas y servicios que le ayudarán a proteger su aplicación, sus datos y sus usuarios al configurar quién puede ejecutar su código y a qué partes del sistema puede acceder su código. Además, AWS ejecutará su código en varias zonas de disponibilidad, para proporcionar redundancia integrada (built-in redundancy) en caso de que surgiera algún problema en una de ellas.
- Pago por uso – usted solo paga por los recursos consumidos para la ejecución de su código, en función del tiempo de ejecución medido de su función, en incrementos de 100 ms, la asignación de memoria y el número de ejecuciones.
Puede obtener más información sobre Serverless y Lambda en la documentación oficial de AWS.
¿Cuáles son las novedades de Serverless 4 años más tarde?
El mayor cambio que veo desde GA es la adopción de tecnologías sin servidor por parte de desarrolladores y empresas, para una variedad de casos de uso, tamaños de proyectos, arquitecturas y más.
Personalmente conozco start-ups que han construido toda su pila y producto sin un solo servidor, empresas que desarrollan sistemas complejos, con millones de solicitudes de funciones Lambda por día, y nuevas ideas para usar esta tecnología que se actualizan cada vez que hay un nuevo aviso de activación (trigger announcement) o una integración adicional con nuevas herramientas y servicios de terceros.
Hay algunos cambios específicos que se han desarrollado durante estos últimos 4 años que me gustaría mencionar:
- Cuando Lambda se lanzó por primera vez en 2016, el tiempo máximo de ejecución de una sola función estaba limitado a 5 minutos. Hoy este límite se ha incrementado a 15 minutos por ejecución.
- Lo mismo ocurre con la asignación máxima de memoria que se estableció en 2016 en 1,5 GB y se incrementó a 3 GB más adelante.
- Hay más de 20 desencadenantes diferentes para activar sus funciones Lambda y se agregan nuevos con regularidad. Hay un gran número de posibilidades, lo que permite desarrollar aplicaciones cada vez más complejas, sin ningún servidor.
- Uno de los triggers más populares de Lambda, la puerta de enlace API de Amazon (Amazon API Gateway), ha recibido varias actualizaciones durante estos años. Desde el soporte de WebSockets hasta un servicio API más simple y económico, llamado API HTTP, que proporciona una mejor solución para muchos casos, puesto que las características avanzadas de la API REST original eran excesivas en algunos escenarios.
- Lambda admite hoy más lenguajes de programación que nunca y si el idioma de su elección no es oficialmente compatible, puede agregar sus propios tiempos de ejecución, siempre que haya una versión para Linux) utilizando tiempos de ejecución personalizados, y sí, incluso PHP.
De esta manera, después de 4 años, Serverless se ha convertido en mi tecnología de referencia para todo lo que que desarrollo últimamente. Si bien es cierto que a día de hoy todavía no es una práctica de desarrollo convencional, puede que no sea la mejor opción para todos los proyectos o sistemas y tendrá que transcurrir algún tiempo hasta que la mayoría de los desarrolladores adopten esta tecnología, pero no tengo duda alguna de que esto va a suceder en algún momento. Las ventajas de Serverless son demasiado significativas como para ignorarlas.
Si quiere ver mi video de introducción (y entiende hebreo), lo puede encontrar aquí.
Tradcido por Mireia Kesti Izquierdo