Este documento descreve um trabalho prático sobre implementação de serviços REST em nuvem, comparando as plataformas Amazon AWS e JElastic. Ele apresenta as ferramentas e linguagens utilizadas, como JAX-RS, e descreve teoricamente e na prática três consultas a uma API de cotações da BMF Bovespa hospedada nessas plataformas. Resultados de testes mostraram que AWS teve melhores tempos de resposta e taxa de sucesso, enquanto JElastic foi mais simples de configurar. Desafios incluíram definição da
1. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Trabalho Prático 02
Implementação de um serviço REST
Elasticidade
2. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Agenda
• Plataforma de nuvem
• Linguagens
• Descrição Teórica da Solução
• Descrição Prática da Solução
• Desafios
• Referências
3. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Ferramentas utilizadas
4. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Linguagens utilizadas
API JAX-RS
5. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Descrição Teórica da Solução
Consultas:
I. listar os códigos de todas as ações de todas empresas da BMF Bovespa
II. listar a cotação mais recente para uma ação informada
III.listar a cotação para uma data informada
6. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Descrição Prática da Solução
Listar os códigos de todas as ações de todas empresas da BMF Bovespa
URL: http://bmfbovespa.elasticbeanstalk.com/bmfbovespa
7. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Descrição Prática da Solução
Listar a cotação mais recente para uma ação informada
URL: http://bmfbovespa.elasticbeanstalk.com/bmfbovespa/<CODNEG>
Exemplo: http://bmfbovespa.elasticbeanstalk.com/bmfbovespa/IBOVB98
8. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Descrição Prática da Solução
Listar a cotação para uma data informada
URL: http://bmfbovespa.elasticbeanstalk.com/bmfbovespa/<CODNEG>/<DATA_PREGAO>
Exemplo: http://bmfbovespa.elasticbeanstalk.com/bmfbovespa/IBOVB98/2015-01-23
9. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Descrição Prática da Solução
10. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Plano de Teste
11. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Resultados - Tempo de Resposta
Amazon
JElastic
12. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Resultados - Requisições/segundo
Amazon
JElastic
13. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Resultados - Taxa de erro
Amazon
JElastic
14. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Conclusão
Amazon JElastic
Diversas opções de configuração para disparar o
escalonamento
Apenas as opções baseadas no consumo de memória e CPU
Diversas métricas para auto-escaling, tais como soma das
requisições, média do uso de CPU, etc.
Apenas baseado no consumo
Diversos gráficos para realizar monitoração dos servidores Gráficos limitados
Configuração um pouco complexa Fácil configuração
Configuração e envio de alerta Configuração e envio de alerta
Apenas escalonamento horizontal Escalonamento horizontal e vertical
15. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Desafios
• Definir a plataforma;
• Estouro de memória na Aws;
• Uso do JMeter;
• Configuração da aplicação no JElastic.
16. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
17. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Referências
AWS Elastic BeanStalk Developer Guide
Disponível em: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html
Acesso em: 17/Nov/2015
Apache JMeter User´s Manual
Disponível em: http://jmeter.apache.org/usermanual/index.html
Acesso em: 05/Dez/2015
Apache JElastic
Disponível em: https://jelastic.com/features/scalability/
Acesso em: 05/Dez/2015
18. João Bachiega Jr. / Rodrigo Pinheiro de Almeida
Disciplina: Tópicos em Sistemas de Computação – Computação em Nuvem
Demonstração