rights reserved. • Mínima administración de infraestructura • Escala automáticamente • Pago por utilización • Casos de uso ◦ Procesamiento de datos ◦ Web interactiva y backends/APIs ◦ Aplicaciones basadas en eventos ◦ etc Serverless
rights reserved. • Las capas le permiten administrar mejor su código de función Lambda al separar su código de función de sus recursos. • Se puede compartir código, librerías y otros componentes con capas en múltiples funciones. Layers
rights reserved. • Las extensiones de AWS Lambda se pueden utilizar para integrar funciones de Lambda con sus herramientas preferidas para monitoreo, observabilidad, seguridad y gobernanza. • Además, pueden ejecutar código adicional durante el ciclo de vida de una invocación de función. Extensiones
rights reserved. • AWS X-Ray ◦ Ayuda a comprender cómo funcionan su aplicación y sus servicios subyacentes y dónde se producen los cuellos de botella. Además, puede usarlo para rastrear solicitudes de principio a fin y obtener un mapa de servicios en su aplicación. Fine-tuning
rights reserved. Ocurren cuando AWS tiene que configurar un nuevo contexto de ejecución para su función, lo que resulta en un tiempo de inicio más largo. • Razones: ◦ Cambio en código ◦ Scale-up ◦ Rebalanceo de AZs ◦ Fallos Cold Starts https://docs.aws.amazon.com/lambda/latest/operatorguide/execution-environments.html
rights reserved. • Funciones activas configurando un evento de CloudWatch (PING) o usando EventBridge que activa la función cada X minutos. • Trade-offs: ▪ Periodico ▪ Mejor configuración? ▪ Confiable? ▪ Posibles cambios en código ▪ No puedo escoger el target Minimizando Cold-Starts
rights reserved. • Costo: ◦ Se ejecuta 8640 veces al mes = $0.18 ◦ 10 lambdas: cada una invocada 8640 veces al mes = $14.4 dólares ◦ Total = $14.58 ◦ + costos de Cloudwatch Minimizando Cold-Starts
rights reserved. • Provisioned concurrency: ◦ Característica que permite mantener una cantidad específica de entornos de ejecución inicializados y listos para responder Minimizando Cold Starts https://aws.amazon.com/blogs/compute/operating-lambda-performance-optimization-part-1/
rights reserved. • Toma en cuenta el escalado: ◦ Utilización ◦ Invocaciones programadas • Costo: ◦ Pago por uso ◦ Recomendable en run-time(s) que normalmente tardan más en inicializarse Minimizando Cold-Starts
rights reserved. • Por cada unidad de simultaneidad aprovisionada, hay un mínimo de dos entornos de ejecución preparados en zonas de disponibilidad separadas. • No se puede utilizar con la versión $LATEST. • No funciona con Lambda Edge Minimizando Cold-Starts https://aws.amazon.com/blogs/compute/operating-lambda-performance-optimization-part-1/
rights reserved. • SnapStart es un mecanismo de instantáneas y restauración que reduce drásticamente el tiempo de inicio en frío de las funciones de Java en AWS. ◦ Mejora hasta en un 90% ▪ Hasta 10x más rápido ◦ Disponible en: consola, SAM, CDK ▪ No require cambios en codigo ◦ Se utilizará la versión almacenada en caché. SnapStart
rights reserved. • LLRT (Low Latency Runtime) es un tiempo de ejecución de JavaScript liviano. • LLRT ofrece un inicio hasta 10 veces más rápido y un costo general hasta 2 veces menor • Escrito en RUST LLTR https://github.com/awslabs/llrt/tree/main
rights reserved. • Funciones pequeñas ◦ Eliminar código innecesario ◦ Frameworks más ligeros ◦ Dependencias mínimas • Empaquetado en un único archivo • Runtimes actualizados • Lazy-load Optimizaciones de código
rights reserved. • BD Relacionales ◦ RDS Proxy ▪ Agrupación de conexiones ▪ Escalabilidad y disponibilidad ▪ Almacenamiento en caché de consultas Optimizaciones de código https://github.com/aws-samples/serverless-patterns/tree/main/apigw-http-api-lambda-rds-proxy-cdk
rights reserved. • En lugar de medir el desempeño con respecto a un número promedio, puede resultar más útil medir los valores atípicos • Utilizando percentiles, se puede identificar la latencia experimentada en el rango p95 o p99, por ejemplo. ▪ Esto muestra el rendimiento para el 5% o el 1% más lento de las solicitudes, respectivamente. Mejores Prácticas
rights reserved. • La mejoras de rendimiento están impulsados por el caso de uso. ◦ En cargas de trabajo interactivas, las invocaciones se activan directamente mediante un evento. ◦ Para aplicaciones como aplicaciones web o aplicaciones móviles, el usuario final experimenta directamente el rendimiento de ida y vuelta de las solicitudes. Mejores Prácticas
rights reserved. • No usar Lambda, el 100% de las veces: ◦ Orquestramiento - Step Functions ◦ SNS - Filtrado de Mensajes ◦ Amazon Event Bridge - Scheduling Mejores Prácticas