Hola a todos. En el mundo actual de las aplicaciones modernas, la capacidad de respuesta rápida es esencial. Los desarrolladores esperan una excelente experiencia donde cada acción desencadena una respuesta inmediata. Los servicios sin servidor como AWS Lambda permiten a los desarrolladores construir aplicaciones modernas sin la necesidad de aprovisionar servidores ni infraestructura adicional.
Sin embargo, estos servicios a veces introducen o agregan un poco de latencia al aprovisionar un nuevo entorno de ejecución para ejecutar el código del cliente. Esto a veces se conoce como inicio en frío. Y aunque las métricas de producción muestran que los inicios en frío ocurren típicamente en menos del 1% de todas las invocaciones, y a veces incluso menos, aún puede ser un poco destructivo para la experiencia de usuario fluida que estamos buscando.
¿Qué tal si les dijera que hay una solución para los inicios en frío? ¿Qué tal si les dijera que pueden ejecutar aplicaciones JavaScript en AWS Lambda con inicios en frío prácticamente despreciables?
Mi nombre es Richard Davison. Trabajo como arquitecto de soluciones asociado, ayudando a los socios a modernizar sus aplicaciones en AWS utilizando tecnologías sin servidor y de contenedores. Y estoy aquí para hablar sobre el proyecto que he estado construyendo durante algún tiempo llamado LLRT y cómo redefine la latencia sin servidor.
Entonces, LLRT es la abreviatura de tiempo de ejecución de baja latencia. Y es un nuevo tiempo de ejecución de JavaScript construido desde cero para abordar la creciente demanda de aplicaciones sin servidor rápidas y eficientes. ¿Por qué deberíamos construir un nuevo tiempo de ejecución de JavaScript? Entonces, JavaScript es una de las formas más populares de construir y ejecutar aplicaciones sin servidor. También a menudo ofrece consistencia de pila completa, lo que significa que la parte trasera y la parte frontal de su aplicación pueden compartir un lenguaje unificado, lo cual es una ventaja adicional. JavaScript también ofrece un ecosistema de paquetes rico y una gran comunidad que puede ayudar a acelerar el desarrollo de sus aplicaciones. Además, JavaScript es reconocido por ser bastante amigable para el usuario, lo que lo hace fácil de aprender, fácil de leer y fácil de escribir. También es un estándar abierto conocido como ECMAScript, que ha sido implementado por diferentes motores, lo cual es algo que discutiremos más adelante en esta presentación.
Entonces, ¿cómo es LLRT diferente de Node, Abun y Ordino? ¿Qué justifica la introducción de otro tiempo de ejecución de JavaScript a la luz de estas alternativas existentes? Entonces, Node, Abun y Ordino representan tiempos de ejecución de JavaScript altamente competentes. Son extremadamente capaces y tienen un rendimiento muy bueno. Sin embargo, están diseñados pensando en aplicaciones de propósito general, y estos tiempos de ejecución no fueron diseñados específicamente para las demandas de los entornos sin servidor, que a menudo se caracterizan por instancias de tiempo de ejecución de corta duración con recursos limitados. También dependen de un compilador justo a tiempo, un componente tecnológico muy sofisticado que permite compilar y optimizar dinámicamente el código de JavaScript durante la ejecución. Si bien un compilador justo a tiempo ofrece ventajas de rendimiento sustanciales a largo plazo, a menudo conlleva una sobrecarga computacional y de memoria, especialmente cuando se hace con recursos limitados.
En contraste, LLRT se distingue por no incorporar un compilador justo a tiempo, lo cual es una decisión estratégica que ofrece dos ventajas significativas. La primera es que, nuevamente, un compilador justo a tiempo es un componente tecnológico notablemente sofisticado que introduce una mayor complejidad del sistema y contribuye sustancialmente al tamaño total del tiempo de ejecución. Y sin esa sobrecarga de JIT, LLRT conserva tanto los recursos de CPU como de memoria que se pueden asignar de manera más efectiva para ejecutar el código que se ejecuta dentro de su función de Lambda y, por lo tanto, reducir los tiempos de inicio de la aplicación. Entonces, nuevamente, un compilador justo a tiempo ofrecería un aumento de rendimiento sustancial a largo plazo, mientras que la falta de un compilador justo a tiempo puede ofrecer beneficios de inicio.
LLRT se construye desde cero con un enfoque principal, el rendimiento en AWS Lambda. Viene con inicios en frío prácticamente despreciables, y la duración del inicio en frío es inferior a 100 milisegundos para muchos casos de uso y tareas, incluso al realizar llamadas a la versión 3 del SDK de AWS. Utiliza un estándar bastante reciente de ECMAScript, ECMAScript 2020, con muchas API de Node.js. Y el objetivo de esto es hacer que sea una migración lo más simple posible desde Node.
Comments