dc.description.abstract |
A arquitetura de microsserviços possui diversas vantagens quando comparada com a abordagem monolítica, como, escalabilidade, facilidade de implantação e reuso de componentes. Sendo a maioria das arquiteturas de microsserviços implementadas através de contêineres.
Em qualquer sistema, é necessário levar em conta suas possíveis falhas tal como indisponibilidade de serviços, corrupção de dados, etc. A tolerância a falhas é um conjunto de técnicas empregadas para manter a confiabilidade de sistemas na presença de falhas, com diversas abordagens, sendo algumas delas a redundância e salvamento/restauração.
O enfoque desse projeto foi avaliar ferramentas e estratégias para salvamento/restauração de contêineres em ambientes de microsserviços.
Ao procurar estudos relacionados com salvamento/restauração de contêineres, algumas ferramentas foram encontradas, tal como a ferramenta CRIU, BCLR e DMTCP. A ferramenta CRIU foi a escolhida para ser estudada por ter sido amplamente adotada e por possuir integração com a plataforma de contêineres docker.
Quando se fala em técnicas de salvamento/restauração, é preciso considerar o tamanho ocupado pelo salvamento e também que quando ocorrem salvamentos periódicos do estado de uma aplicação, pode afetar o seu normal funcionamento, devido aos períodos de interrupção.
Para observar estes e outros pontos, foi desenvolvido um protótipo de banco de dados chave-valor em memória, com clientes geradores de carga, fazendo requisições de escrita/leitura e realização de salvamento periodicamente durante a execução.
Com o protótipo, foi possível observar e medir através de experimentos: tempos de indisponibilidade, tamanhos de salvamento e algumas limitações da técnica, por exemplo chamadas de sistema se perdem.
Com esse projeto adquiriu-se conhecimentos sobre arquiteturas de microsserviços, técnicas de tolerância a falhas, configuração de sistemas distribuídos, configuração de experimentos, automação de experimentos com shell script e analise experimental. |
pt_BR |