[en] Recently, serverless computing has garnered attention from academia and industry due to its on-demand resource provisioning, allowing users to focus solely on their core business logic by breaking down tasks into small stateless functions. Serverless offers benefits like a 'pay-per-use' cost model, greater flexibility, and transparent elastic resource auto-scaling. Researchers in academia and industry are increasingly exploring serverless computing's potential in complex, data-intensive analytics. These tasks, resource-heavy and highly parallel, involve significant inter-function communications. However, this shift presents challenges, requiring alignment with the specific needs and constraints of such applications. This research area is currently considered one of the most compelling areas of study. This thesis shows that it is possible to efficiently execute modern data-intensive analytics workloads, traditionally deployed in managed cloud clusters, within serverless computing environments using direct data inter-function communication and optimized performance-cost efficient resource allocation policies. To demonstrate this thesis, we first build a performance model for serverless workloads, considering data sharing, volume, and communication technologies. The model, with a relative error of 5.52%, evaluates the performance of a representative workload in serverless, analyzing task granularity and concurrency, data locality, resource allocation, and scheduling policies. Our results indicate that the performance of data-intensive analytics workloads in serverless can be up to 4.32x faster depending on how these are deployed. Furthermore, this characterization highlights inefficiencies in centralized object storage and stresses the primary importance of efficient resource use. We then introduce Floki, a data forwarding system that tackles the centralized object storage bottleneck. It enables direct communication between producer-consumer function pairs using fixed-size communication methods. Floki establishes point-to-point data channels for intra- and inter-node data transmission, allowing transparent data transfer and reducing network data copying. This workflow-oriented approach boosts performance and minimize resource requirements without restricting function placement.Our experimental evaluation, performed on the principal communication patterns in distributed systems, shows that Floki reduces the end-to-end time up to 74.95x, decreasing the most extensive data sharing time from 12.55 to 4.33 minutes, saving almost two-thirds of time. Additionally, Floki achieves up to 50,738x of resource-saving, equivalent to a memory allocation of approximately 1.9MB instead of an object storage allocation of 96GB. Finally, we investigates how to achieve efficient resource utilization in modern serverless environments and proposes Dexter, a novel resource allocation manager, leveraging serverless computing elasticity. Dexter continuously monitors application execution, dynamically allocating resources at a fine-grained level combining predictive and reactive strategies to ensure performance-cost efficiency (optimizing total runtime cost). Unlike black-box Machine Learning (ML) models, Dexter reaches a sufficiently good solution, prioritizing simplicity, generality, and ease of understanding. The proposed experimental evaluation demonstrates that our solution achieves a significant cost reduction of up to 4.65x, while improving resource efficiency up to 3.50x, when compared with the default serverless Spark resource allocation that dynamically requests exponentially more executors to accommodate pending tasks. Dexter also enables substantial resource savings, demanding up to 5.71x fewer resources. Dexter is a robust solution to new, unseen workloads, achieving up to 2.72x higher performance-cost efficiency thanks to its conservative resource scaling approach.

[es] Recientemente, la computación sin servidor ha captado la atención de la academia y la industria debido a su aprovisionamiento de recursos bajo demanda, permitiendo a los usuarios enfocarse únicamente en la lógica central de sus negocios al descomponer tareas en pequeñas funciones sin estado. La sin servidor ofrece beneficios como un modelo de costo 'pago por uso', mayor flexibilidad y auto-escalado transparente de recursos elásticos. Los investigadores están explorando cada vez más el potencial de la computación sin servidor en análisis complejos e intensivos en datos. Estas tareas, que requieren muchos recursos y son altamente paralelas, involucran una comunicación significativa entre funciones. Sin embargo, este cambio presenta desafíos, requiriendo alineación con las necesidades y limitaciones específicas de tales aplicaciones. Esta tesis muestra que es posible ejecutar eficientemente cargas de trabajo modernas de análisis intensivo en datos, tradicionalmente implementadas en clústeres en la nube gestionados, dentro de entornos de computación sin servidor utilizando comunicación directa entre funciones y políticas optimizadas de asignación de recursos eficientes en rendimiento-costo. Para demostrar esta tesis, primero construimos un modelo de rendimiento para cargas de trabajo sin servidor, considerando el intercambio de datos, el volumen y las tecnologías de comunicación. El modelo, con un error relativo del 5.52%, evalúa el rendimiento de una carga de trabajo representativa en sin servidor, analizando la granularidad y concurrencia de tareas, la localidad de los datos, la asignación de recursos y las políticas de programación. Nuestros resultados indican que el rendimiento de las cargas de trabajo de análisis intensivo en datos puede ser hasta 4.32x más rápido dependiendo de cómo se implementen. Luego presentamos Floki, un sistema de envío de datos que aborda el cuello de botella del almacenamiento centralizado. Habilita la comunicación directa entre pares de funciones productor-consumidor utilizando métodos de comunicación de tamaño fijo, permitiendo una transferencia de datos transparente y reduciendo la copia de datos de red. Este enfoque orientado al flujo de trabajo mejora el rendimiento y minimiza los requisitos de recursos sin restringir la ubicación de funciones. Nuestra evaluación experimental, realizada en los patrones de comunicación principales en sistemas distribuidos, muestra que Floki reduce el tiempo de extremo a extremo hasta 74.95x, disminuyendo el tiempo de intercambio de datos más extenso de 12.55 a 4.33 minutos, ahorrando casi dos tercios del tiempo. Además, Floki logra hasta 50,738x de ahorro de recursos, equivalente a una asignación de memoria de aproximadamente 1.9MB en lugar de una asignación de almacenamiento de objetos de 96GB. Finalmente, investigamos cómo lograr una utilización eficiente de recursos en entornos modernos sin servidor y proponemos Dexter, un nuevo gestor de asignación de recursos, aprovechando la elasticidad de la computación sin servidor. Dexter monitorea continuamente la ejecución de la aplicación, asignando recursos de manera dinámica a un nivel fino combinando estrategias predictivas y reactivas para garantizar la eficiencia en rendimiento-costo (optimizando el costo total de tiempo de ejecución). A diferencia de los modelos de Machine Learning (ML) de caja negra, Dexter alcanza una solución lo suficientemente buena, priorizando la simplicidad, generalidad y facilidad de comprensión. La evaluación experimental demuestra que nuestra solución logra una reducción significativa de costos de hasta 4.65x, al tiempo que mejora la eficiencia de recursos hasta 3.50x, en comparación con la asignación de recursos predeterminada de Spark sin servidor. Dexter también permite hasta 5.71x de ahorros de recursos. Dexter es una solución robusta para cargas de trabajo nuevas, logrando hasta 2.72x más eficiencia en rendimiento-costo gracias a su enfoque conservador de escalado de recursos.