|
|
7 years ago | |
|---|---|---|
| mongo | 7 years ago | |
| nginx | 7 years ago | |
| node | 7 years ago | |
| .gitignore | 7 years ago | |
| .gitlab-ci.yml | 7 years ago | |
| From JMeter-1548074478117.json | 7 years ago | |
| JMeter.json | 7 years ago | |
| README.md | 7 years ago | |
| View Results Tree.jmx | 7 years ago | |
| ambiente_git_labbs.txt | 7 years ago | |
| docker-compose-full.yml | 7 years ago | |
| docker-compose.yml | 7 years ago | |
| jmeter.log | 7 years ago | |
| org_cheat_sheet | 7 years ago | |
| package-lock.json | 7 years ago | |
| prometheus.yml | 7 years ago | |
README.md
Fase III
Primera tarefa:
Implemente um serviço REST em NodeJS que exponha o endpoint "/token" que receba o JSON "{user:'user1', password:'pass1'}" e retorne um token JWT caso sucesso, ou status 500 caso contrário.
Segunda tarefa:
Crie uma página HTML que solicite usuário/senha, invoque o serviço da primeira tarefa e mostre a mensagem "Autenticado com sucesso" ou "Falha na autenticação".
Essa página deve estar em um segundo container e servida por NGINX. Mande o print da sua tela!
Terceira tarefa:
Faça com que a geração de token (/token) para o usuário 'power', com senha 'weak', inclua no token JWT o scope "admin".
Quarta tarefa:
Crie um endpoint REST '/restricted' que receba o token JWT e retorne o JSON "{message:'You have access to restricted contents!'} caso o token tenha scope "admin". Crie uma página HTML também que mostre essa mensagem retornada pelo serviço. Mande prints de telas mostrando acesso ao conteúdo com sucesso e sem sucesso.
Quinta tarefa:
Altere o serviço '/restricted' e adicione ao cabeçalho HTTP de retorno 'HOSTNAME=[container-hostname]' para identificarmos a instância do container que atendeu à requisição. Mande o print da chamada cURL mostrando esse cabeçalho HTTP na resposta.
Sexta tarefa:
Levante a página e o serviço REST em Swarm Mode. Escale o container do NodeJS para 6 instâncias e do NGINX para 3 instâncias. Altere a página HTML para mostrar o nome do hostname retornado no cabeçalho de /restricted pra vc saber qual instância te respondeu. Mande o print da página HTML funcionando, demonstrando que a cada requisição uma instância diferente de NodeJS responde à requisição.
Sétima tarefa:
Faça um teste de escala de 6 threads em paralelo no serviço /restricted usando JMeter, validando se o retorno do servidor está conforme esperado. Mande um print de 'docker stats' enquanto o teste roda para demonstrar a distribuição de gasto de CPU entre as instâncias do container de NodeJS e um print dos resultados do JMeter.
Nona tarefa:
Rode o mesmo teste anterior, mas agora monitore o andamento do teste do JMeter pelo Grafana por meio do Prometheus. Monte um painel Grafana com a qtde de requisições cujo assert JMeter foi OK, qtos foi com erro e a qtde de requisições por segundo que o JMeter está lançando.