Titulo Estágio
Benchmarking da disponibilidade de aplicações para a cloud
Áreas de especialidade
Engenharia de Software
Local do Estágio
DEI-FCTUC
Enquadramento
Hoje em dia a maioria das organizações usa aplicações na cloud, isto é, acede a aplicações que estão a correr em infraestruturas computacionais genéricas e escaláveis. Uma organização que pretenda colocar uma aplicação na cloud terá de avaliar, entre outros atributos, a disponibilidade do serviço. Neste contexto, é relevante poder fazer benchmarking de várias soluções para garantir a disponibilidade e obter as métricas relevantes, por forma a classifiar e ordenar as soluções.
Tem-se assistido a um aumento do número de serviços em ambientes cloud, caracterizados pela colocação dos dados e do software em infraestruturas remotas. Apesar dos benefícios, os utilizadores confiam a execução das suas aplicações a sistemas que são geridos por outras entidades. Assim, é importante poder comparar alternativas para garantir os níveis de serviço.
Habitualmente existem dos desafios principais: a carga que consiste nos pedidos que chegam ao sistema, e as avarias de software. Assim, neste contexto, o objetivo da tese será construir uma benchmark que introduza carga numa aplicação e que realize injeção de falhas com ferramentas existentes para o efeito. O resultado será uma avaliação rigorosa da capacidade de uma aplicação que esteja na cloud de recuperar de variações na carga e de avarias.
Objetivo
Esta tese tem fundamentalmente dois objetivos:
- Desenho e implementação de uma benchmark, incluindo os processos de medição de disponibilidade e desempenho.
- Construção de um ambiente para gestão de experiências de benchmarking e armazenamento dos resultados.
Uma benchmark consiste numa sequência de passos a levar a cabo por forma a fazer um ranking de alternativas, de acordo com um conjunto de métricas. Neste contexto, as métricas a considerar serão a disponibilidade e o desempenho de uma dada aplicação cloud. Pretende-se então desenhar e implementar uma benchmark capaz de comparar diferentes alternativas.
Por forma a armazenar os resultados das experiências conduzidas, de uma forma estruturada, é necessário um sistema de informação capaz de registar e aceder a informações numa base de dados. Consequentemente, faz parte dos objetivos do estágio a construção de um ambiente que comunique com o motor de avaliação e armazene os resultados para posterior análise.
Plano de Trabalhos - Semestre 1
- Estudo do estado da arte e levantamento de requisitos (mês 1).
A primeira fase consistirá em tomar contato com tecnologias de virtualização e aplicações para a cloud, bem como a familiarização com conceitos de benchmarking. Isto resultará numa clara formulação dos objetivos a alcançar.
- Construção do ambiente de benchmarking (meses 2 a 4).
Esta tarefa consiste na implementação de um componente que exercite o sistema e na seleção de um componente que perturbe o sistema (com boa probabilidade tratar-se-á do Litmus Chaos ou do ucXception). A finalidade é poder usar estes componentes para medir e classificar o resultado de cada cloud provider.
- Primeira fase de experimentação (meses 2 a 4).
Pretende-se, durante o primeiro semestre, poder conduzir as primeiras experiências e avaliar os primeiros resultados de benchmarking serviços cloud. Para tal, assim que o ambiente de benchmarking o permita, devem ser realizadas experiências que o demonstrem.
- Escrita do relatório intermédio (mês 5).
Deve apresentar as tarefas efetuadas durante o primeiro semestre e descrever o trabalho a realizar no segundo semestre, escrevendo para esse efeito um relatório intermédio e preparando uma apresentação pública para discussão.
Plano de Trabalhos - Semestre 2
- Finalização da benchmark (meses 6 e 7).
Esta tarefa consiste na continuação do desenvolvimento da benchmark, tendo como base os resultados da primeira fase de experimentação. No final, dever-se-á obter um ambiente muito próximo de real e ser-se capaz de comparar soluções alternativas.
- Experimentação em ambiente real (meses 8 e 9).
Esta tarefa consiste na aplicação em ambiente real, por forma a comparar soluções alternativas. Para efeitos práticos, esta tarefa permitirá avaliar a própria benchmark desenvolvida, em particular no que toca à capacidade de comparar a disponibilidade e o desempenho.
- Escrita do relatório final (mês 10).
Deve apresentar todo o trabalho levado a cabo no decorrer do trabalho de Mestrado. Para tal, deverá escrever uma tese descrevendo o problema e a sua solução, bem como preparar a sua apresentação e discussão pública.
Condições
O trabalho será levado a cabo no Departamento de Engenharia Informática da Universidade de Coimbra, em contexto de investigação do CISUC, sendo que serão disponibilizados os recursos computacionais para a realização das experiências.
Observações
Sem elementos adicionais.
Orientador
Raul Barbosa e Filipe Araújo
rbarbosa@dei.uc.pt 📩