dc.contributor.advisor | Nery Simões, Sérgio | |
dc.contributor.author | Pacheco, Diego Rodrigo Perez | |
dc.date.accessioned | 2024-03-07T20:41:58Z | |
dc.date.available | 2024-03-07T20:41:58Z | |
dc.date.issued | 2023-12-21 | |
dc.identifier.citation | PEREZ P, Diego Rodrigo. Escalabilidade horizontal automática de serviços utilizando o componente HPA do Kubernetes. 2023. 58 f. (Monografia) - IFES, Serra, 2023. | pt_BR |
dc.identifier.uri | https://repositorio.ifes.edu.br/handle/123456789/4416 | |
dc.description.abstract | O mercado de computação em nuvem tem previsão para movimentar em torno de US$ 31,4
Bilhões até 2025, um aumento de aproximadamente 196,23% em relação a 2020 que
apresentou uma movimentação de US$10,6 Bilhões. A nuvem foi impulsionada em
princípio pela pandemia, que forçou trabalho remoto nos mais diversos setores e as
empresas precisaram manter seu funcionamento. Além disso, estima-se que até 2025, 85%
das empresas operem dentro da nuvem. Dentre as vantagens disponibilizadas pela nuvem
está estabilidade, escalabilidade, redução de custo, entre outras. Entretanto, não é trivial
a migração para computação em nuvem e a utilização dos serviços em nuvem possuem
diversas formas de serem hospedadas, uma das dificuldades é inclusive escolher qual é a
melhor forma de migrar a aplicação de maneira que ela se mantenha escalável e atenda as
necessidades do negócio. Neste trabalho, desenvolvemos uma solução para automatizar a
escalabilidade horizontal de aplicações, com o objetivo de otimizar recursos e aprimorar
tanto a escalabilidade quanto a elasticidade. A escalabilidade horizontal consiste em
adicionar computing nodes no sistema enquanto a escalabilidade trás um aspecto dinâmico
no provisionamento de recurso em resposta a um aumento ou redução de consumo da
aplicação. A aplicação de exemplo do trabalho é disponibilizada por meio de APIs. O
sistema recebe as informações de consumo de recursos dos serviços e a partir disso gera
uma nova instância da aplicação com um balanceamento de carga para dividir a carga. A
aplicação monitora periodicamente os recursos de memória e CPU e, ao atingir um dado
limiar (ex: 80%) de consumo configurado para cada recurso, o sistema gera uma nova
instância. Além disso, é utilizado o recurso do Kubernetes chamado HPA (Horizontal
Pod Autoscale) para automatizar a alocação e desalocação de instâncias. O HPA foi
configurado para verificar a cada 15 segundos o consumo dos recursos. Realizamos diversos testes, dentre eles foi utilizado duas configurações: (1) com requisições de processamento leve, mas com alto tráfego e outra (2) de processamento pesado com tráfego menor, para exemplificar dois cenários de aplicação. Após os testes, verificamos que em ambos os casos o sistema escalou apropriadamente de acordo com a demanda, o que demonstra que a solução realmente é escalável. Portanto, o cluster responde dinamicamente para alocação e desalocação de recursos de forma automática ajudando na economia dos gastos com computação em nuvem, além de ajudar a distribuir melhor os recursos do cluster. A solução foi construída como prova de conceito, realizamos testes em uma máquina local, mas esta solução pode ser implementada em qualquer nuvem que tenha Kubernetes como serviço ou máquinas disponíveis para instalação, atendendo a escalabilidade necessária para modelos de negócio que proveem diversos tipos de serviço, com pequenas alterações pode ser generalizada para outras aplicações. | pt_BR |
dc.description.abstract | O mercado de computação em nuvem tem previsão para movimentar em torno de US$ 31,4
Bilhões até 2025, um aumento de aproximadamente 196,23% em relação a 2020 que
apresentou uma movimentação de US$10,6 Bilhões. A nuvem foi impulsionada em
princípio pela pandemia, que forçou trabalho remoto nos mais diversos setores e as
empresas precisaram manter seu funcionamento. Além disso, estima-se que até 2025, 85%
das empresas operem dentro da nuvem. Dentre as vantagens disponibilizadas pela nuvem
está estabilidade, escalabilidade, redução de custo, entre outras. Entretanto, não é trivial
a migração para computação em nuvem e a utilização dos serviços em nuvem possuem
diversas formas de serem hospedadas, uma das dificuldades é inclusive escolher qual é a
melhor forma de migrar a aplicação de maneira que ela se mantenha escalável e atenda as
necessidades do negócio. Neste trabalho, desenvolvemos uma solução para automatizar a
escalabilidade horizontal de aplicações, com o objetivo de otimizar recursos e aprimorar
tanto a escalabilidade quanto a elasticidade. A escalabilidade horizontal consiste em
adicionar computing nodes no sistema enquanto a escalabilidade trás um aspecto dinâmico
no provisionamento de recurso em resposta a um aumento ou redução de consumo da
aplicação. A aplicação de exemplo do trabalho é disponibilizada por meio de APIs. O
sistema recebe as informações de consumo de recursos dos serviços e a partir disso gera
uma nova instância da aplicação com um balanceamento de carga para dividir a carga. A
aplicação monitora periodicamente os recursos de memória e CPU e, ao atingir um dado
limiar (ex: 80%) de consumo configurado para cada recurso, o sistema gera uma nova
instância. Além disso, é utilizado o recurso do Kubernetes chamado HPA (Horizontal
Pod Autoscale) para automatizar a alocação e desalocação de instâncias. O HPA foi
configurado para verificar a cada 15 segundos o consumo dos recursos. Realizamos diversos testes, dentre eles foi utilizado duas configurações: (1) com requisições de processamento leve, mas com alto tráfego e outra (2) de processamento pesado com tráfego menor, para exemplificar dois cenários de aplicação. Após os testes, verificamos que em ambos os casos o sistema escalou apropriadamente de acordo com a demanda, o que demonstra que a solução realmente é escalável. Portanto, o cluster responde dinamicamente para alocação e desalocação de recursos de forma automática ajudando na economia dos gastos com computação em nuvem, além de ajudar a distribuir melhor os recursos do cluster. A solução foi construída como prova de conceito, realizamos testes em uma máquina local, mas esta solução pode ser implementada em qualquer nuvem que tenha Kubernetes como serviço ou máquinas disponíveis para instalação, atendendo a escalabilidade necessária para modelos de negócio que proveem diversos tipos de serviço, com pequenas alterações pode ser generalizada para outras aplicações. | pt_BR |
dc.format.extent | 58 f | pt_BR |
dc.language | pt_BR | pt_BR |
dc.rights | acesso_aberto | pt_BR |
dc.subject | Computação em nuvem | pt_BR |
dc.subject | Kubernetes | pt_BR |
dc.subject | Horizontal pod autoscale (HPA) | pt_BR |
dc.subject | Escalabilidade horizontal | pt_BR |
dc.title | Escalabilidade horizontal automática de serviços utilizando o componente HPA do Kubernetes | pt_BR |
dc.type | tcc | pt_BR |
dc.publisher.local | Serra | pt_BR |
dc.contributor.member | Oliveira Andrade, Jefferson | |
Redes Sociais