Performance and predictability analysis of local file system I/O workloads on serverless cloud platforms - Robaina, Gabriel Pimenta (2024)
Serverless é um paradigma emergente para computação em nuvem que habilita o desenvolvimento de aplicações em nuvem com uma abstração do provisionamento e gerenciamento da infraestrutura computacional. AWS Lambda e Google Cloud Functions (GCF) são exemplos de grandes plataformas de nuvem que já oferecem produtos para serverless. Usuários de plataformas serverless são cobrados apenas pelos recursos de nuvem consumidos e tempo de execução de suas aplicações, chamadas nesse paradigma de funções, em um modelo pay-per-use. Embora a abstração de infraestrutura facilite e acelere o desenvolvimento de aplicações nas plataformas serverless, ela limita o controle e visibilidade de aspectos que são determinantes para o desempenho das aplicações. Esse cenário prejudica a previsibilidade de desempenho e custo das aplicações serverless uma vez que desempenho e tempo de execução tem impacto direto em custo. A falta de previsibilidade de custo é um fator de risco relevante principalmente na avaliação do potencial de retorno financeiro relacionado a migração de aplicações legadas em ambientes on-premises para plataformas serverless na nuvem. Atualmente as plataformas serverless dispõem de um sistema de arquivos efêmero que pode ser acessado pelas funções, habilitando assim a migração de uma classe de aplicações que interagem com o sistema de arquivos em operações de entrada e saída (I/O). Esse trabalho busca aumentar a visibilidade de aspectos caixa-preta das plataformas serverless e ajudar desenvolvedores a tomar decisões informadas sobre a migração de aplicações de I/O de arquivos para AWS Lambda e GCF. Para isso, este trabalho apresenta um agregado de fatores que impactam desempenho e previsibilidade em plataformas serverless, e uma análise comparativa de desempenho e previsibilidade entre AWS Lambda e GCF de segunda geração para cargas de trabalho de I/O no sistema de arquivos local das funções. Resultados mostraram que AWS Lambda tem desempenho igual ao GCF para escrita de arquivos pequenos (10 KB) e superior na escrita de arquivos grandes (1 GB). Esses resultados contradizem as expectativas de que o desempenho do GCF seria superior devido ao seu sistema de arquivos ser mantido em memória. Por outro lado, GCF teve desempenho superior para todas as operações de leitura com I/O direto. AWS Lambda foi mais previsível para leituras e escritas em arquivos pequenos com mínima alocação de recursos de memória e CPU. Ainda, GCF foi mais previsível para leituras com I/O direto em arquivos grandes. Por fim, esses resultados permitiram a construção de um conjunto de recomendações para desenvolvedores que usam ou buscam usar AWS Lambda e GCF para cargas de trabalho de I/O para o sistema de arquivos local.