Desenvolvimento Serverless: Soluções, Impacto e Futuro - Rocha, Pedro Lucas Moreira (2022)
Os processos de implantação de software tradicionais, i.e baseados num modelo on-premises, com um conjunto de servidores mais ou menos estático e bem definido tem cada vez mais vindo a revelar-se problemático quer seja pela rápida obsolescência dos dispositivos, quer seja pelo aumento da necessidade de equipamentos quer seja pelos custos de manutenção, ou outros. Assim, para dar resposta a estes problemas, os processos de implantação tem evoluído e conduzido a novos modelos de serviço que visam então simplificar esta implantação. Deixou de ser necessário preparar e alocar espaço para máquinas físicas e equipamentos de rede, passando-se a alugar máquinas virtuais e a delegar a preocupação de gerir os recursos físicos que estas acarretam a uma outra entidade. Apesar desta evolução, as empresas continuam ainda a pensar e a despender tempo útil nos seus sistemas em termos de servidores, deixando por vezes para segundo plano o que é efetivamente mais relevante para si em termos operacionais: que as suas aplicações executem a lógica que é suposto e que os seus dados estejam seguros e corretos. Neste sentido, desde 2012, têm surgido estudos sobre o que significaria gerir sistemas e não servidores. A esta forma de trabalhar deu-se o nome de serverless, nome esse que não se deve ao facto de não existirem servidores mas sim ao facto de não se pensar tanto neles. Por outro lado, esta evolução nos processos de implantação também tem impactado diretamente a forma como o próprio software é desenvolvido de modo a suportar estes novos modelos e paradigmas (e.g serverless). Assim o principal objetivo desta dissertação é aferir este impacto e identificar e desenhar um conjunto de recomendações que devem ser adotadas no desenvolvimento de aplicações e respetivas arquiteturas com vista a eliminar ou minimizar as dificuldades que condicionam a adoção de serverless. De forma a aferir este impacto foi desenvolvido um caso de estudo, inserido no contexto de uma loja e-Commerce de artigos de arte, que permitiu identificar as diferenças existentes entre o desenvolvimento serverless e os métodos de desenvolvimento atuais como é o caso de desenvolvimento orientado a microserviços. Para além disso, os resultados obtidos na avaliação deste caso de estudo permitiram concluir que, quando aplicado em contextos específicos, o desenvolvimento serverless ainda que apresente um rendimento superior e melhores tempos de resposta quando exposto a cargas de utilização maiores quando comparado com arquiteturas atuais como é o caso de arquiteturas orientadas a microserviços esta diferença nos resultados ainda não é significativa, havendo espaço para evolução neste aspecto.