Escalonamento horizontal baseado em Reinforcement Learning
Date
2021Author
Scholze, Alice Neves
Metadata
Show full item recordSubject
Inteligência artificialComputação em nuvem
Algorítmos de computador
xmlui.dri2xhtml.METS-1.0.item-type
Monografia Especialização DigitalAbstract
Resumo: A computação em nuvem trouxe o conceito de escalabilidade e, como forma de dispor os sistemas na nuvem, passaram a ser utilizadas aplicações conteinerizadas. O Kubernetes provê a possibilidade de escalar aplicações por meio dos pods — conjunto de containers. Consegue realizar este processo de forma automática (HPA) utilizando métricas de CPU e memória, porém não com a latência, um valor que pode ser constantemente alterado conforme a quantidade de requisições. Dado que Reinforcement Learnings (RLs) atuam com cenários iterativos, esta pesquisa partiu da hipótese de que os modelos Q-Learning e SARSA conseguem escalar a quantidade de pods de uma aplicação, baseados na latência e, atingir melhores resultados que o HPA. Para testar esta hipótese, foi desenvolvida uma aplicação contida no Kubernetes que informa a métrica de latência. Esta métrica é lida pelos modelos, que a utilizam para definir a quantidade de pods. Como resultado, a hipótese se mostrou verdadeira dado que ambos os modelos mostraram adaptabilidade, aumentando e diminuindo a quantidade de pods quanto necessário. As principais diferenças entre eles foram que o SARSA manteve em maior proporção a latência dentro do ideal, enquanto que o Q-Learning demonstrou uma adaptação mais rápida ao sair de um estado de alta para baixa latência. Já comparados ao HPA, ambos os modelos atingiram melhores resultados.