Quando se fala em websites, webservices e outras aplicações, é impossível não mencionar o quão crescente está o acesso de usuários em sistemas de lojas, prestadoras de serviços, empresas terceirizadas, entre outros. O que muitos não sabem é que, por trás de todas essas páginas, textos, imagens, vídeos, entre outros, há uma rica infraestrutura com a missão de manter disponível esses ambientes para acesso e visualização por parte dos usuários.
Têm-se, atualmente, um grande número de sites que têm base em virtualização de servidores, disponibilizados para tal demanda, conforme acontece com as aplicações do site do campus São José do Instituto Federal de Santa Catarina, por exemplo.
Uma adversidade que é encontrada em alguns momentos, é o fato de que essas aplicações estão sujeitas à performance dos servidores virtuais ou físicos no decorrer do período de utilização, seja essa uma performance satisfatória ou precária.
Objetivo
Nesse ponto da análise, pode-se destacar uma solução muito interessante, visando melhoria de performance e praticidade, baseada no conceito de contêineres web. Em linhas gerais, trata-se de uma solução de código aberto que consiste em uma espécie de virtualização a nível de sistema operacional, comparável ao método de utilização de máquinas virtuais. Para uma melhor compreensão do conceito, pode-se pensar que cada contêiner em uma máquina é um processo isolado, com uma imagem para execução e contendo um determinado serviço em seu escopo, seja ele uma aplicação, um banco de dados ou um servidor web. O atual cenário das aplicações demonstra uma grande utilização de máquinas virtuais, com sistemas operacionais em funcionamento, onde essas aplicações estão sendo executadas.
A implementação de uma topologia baseada no conceito de contêineres e no gerenciamento dos mesmos, permite que seja flexível o redimensionamento sob demanda da infraestrutura de uma determinada aplicação , visto que não é necessária a utilização de um sistema operacional de uma maquina virtual que, por sua vez, já é executada sobre uma máquina real, contando com a vantagem de que esses contêineres permitem a inicialização de instâncias sob demanda a nível de processo e a facilidade de se ter o compartilhamento de arquivos de configuração, bibliotecas, binários, entre tantos outros, entre o host e o contêiner.
Para tal solução, propõe-se também a utilização de uma ferramenta de gerenciamento denominada Kubernetes, que pode orquestrar uma grande quantidade de contêineres web. Desenvolvida pelo Google, essa ferramenta pode encarregar-se de serviços como balanceamento de carga, DNS, monitoramento de desempenho, entre outros. Ainda conta com a vantagem de trabalhar com uma variedade de sistemas de armazenamento locais e em nuvem oferecidos por corporações como Google e Amazon Web Services, por exemplo.
Cronograma
Etapas
out/2015
nov/2015
dez/2016
jan/2016
fev/2016
mar/2016
{{{8}}}
{{{9}}}
{{{10}}}
{{{11}}}
{{{12}}}
Pesquisa Bibliográfica X X X
Escrita do Documento X X X
Entrega do Documento e Defesa X
Apresentação do Trabalho à Banca X
Referências Bibliográficas
Newman, S. Building Microservices: Designing Fine-Grained Systems. Sebastopol (CA): O'Reilly Media, 2015.