Testes de Escalabilidade de Serviços Web



Documentos relacionados
O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

Minicurso Computação em Nuvem Prática: Openstack

Varnish-Cache: Velocidade e disponibilidade para aplicações WEB

Modelos de Arquiteturas. Prof. Andrêza Leite

Máquinas Virtuais: Windows 2008 Server

Curso de Aprendizado Industrial Desenvolvedor WEB

A partir do XMon é possível:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE

Instalar o MarkVision

MODELO CLIENTE SERVIDOR

Acordo de Nível de Serviço (SLA)

Organização e Arquitetura de Computadores I. de Computadores

Uma Proposta de Framework de Comparação de Provedores de Computação em Nuvem

FTP Protocolo de Transferência de Arquivos

1

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Soluções em. Cloud Computing. Midia Indoor. para

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Gerência de Redes. Arquitetura de Gerenciamento.

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

EEP SENAC PELOTAS CENTRO HISTÓRICO PRONATEC/TURMA 2 PROFESSOR: NATANIEL VIEIRA DISCIPLINA: SEGURANÇA DE REDES AVIRA ANTIVIRUS

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Prof. José Maurício S. Pinheiro UniFOA

Sistemas Distribuídos

Case de Sucesso. Integrando CIOs, gerando conhecimento. BANCO TOPÁZIO FORTALECE MONITORAMENTO E CONQUISTA MAIOR CREDIBILIDADE DOS CLIENTES

Sistemas Operacionais


Tópicos Especiais em Redes de Telecomunicações

Soluções em. Cloud Computing. para Calçados Pegada

SSH Secure Shell Secure Shell SSH

GIS Cloud na Prática. Fabiano Cucolo 26/08/2015

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

UFG - Instituto de Informática

Tutorial de instalação do Debian Rudson Ribeiro Alves

Soluções de Gerenciamento de Clientes e de Impressão Universal

GT-VOIP Relatório I.9: Avaliação do Ambiente Sphericall da Marconi. Setembro de 2002

Nuvem UFRGS: IaaS como ferramenta de apoio à pesquisa

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Processos (Threads,Virtualização e Migração de Código)

Quarta-feira, 09 de janeiro de 2008

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Computação em Nuvem. Alunos: Allan e Clayton

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -ARQUITETURAS DE APLICAÇÃO MÓVEL. Prof. Angelo Augusto Frozza, M.Sc.

RAID. Redundant Array of Independent Drives. Conjunto Redundante de Discos Independentes

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Gerência e Administração de Redes

Administração de Redes

Alexandre Malveira, Wolflan Camilo

/ /

Extração de Requisitos

Documento de Análise e Projeto VideoSystem

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO

A.S.P. Servidores Windows

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Documento de Requisitos Projeto SisVendas Sistema de Controle de Vendas para Loja de Informática.

Isolamento de Recursos na Nuvem Por que isso e ta o importante?

PROCESSAMENTO DE DADOS 15/08

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Virtualização Gerencia de Redes Redes de Computadores II

Cloud Computing. Edy Hayashida

Sistemas Distribuídos

Instituto de Educação Tecnológica Pós-graduação Gestão em Tecnologia da Informação - Turma nº 25 08/04/2015. Computação em Nuvem

Impactos do Envelhecimento de Software no Desempenho dos Sistemas. Jean Carlos Teixeira de Araujo

Processamento de Dados

PORTARIA N Nº Rio de Janeiro, 24 de Outubro de 2013.

Virtual Operating Environment (VOE) Marcelo Tomoyose, Kodak Brasileira

3 SCS: Sistema de Componentes de Software

TACTIUM ecrm Guia de Funcionalidades

Você consegue dirigir seu carro sem um painel de controle? Você consegue gerenciar um Service Desk sem Indicadores?

Ferramentas unificadas de SOA alinham negócios e TI IDG Research aponta grandes ganhos potenciais a partir de uma solução integrada

Núvem Pública, Privada ou Híbrida, qual adotar?

Governança de TI. Heleno dos Santos Ferreira

CORPVS SEGURANÇA SETOR DE TECNOLOGIA DA INFORMAÇÃO

Um Driver NDIS Para Interceptação de Datagramas IP

PROCEDIMENTOS PARA A INSTALAÇÃO E UTILIZAÇÃO DO APLICATIVO DE LEILÃO ELETRÔNICO DA CONAB

Desenvolvimento de aplicações web com JSP

Bancos de Dados Paralelos. Alunos: ALLAN ROGER BELLO WILLIAN DIAS TAMAGI

O que é Grid Computing

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

ESPECIFICAÇÕES TÉCNICAS e OPERACIONAIS. BioMatch Server e BioMatch Client

Manual de Utilização do GLPI

Manual do Remote Desktop Connection. Brad Hards Urs Wolfer Tradução: Marcus Gama

WHITE PAPER CERTIFICADOS SSL

Transcrição:

Testes de Escalabilidade de Serviços Web Diego de Araújo Martinez Camarinha Prof. Fabio Kon Paulo Bittencourt Moura (Doutorando) 11 de novembro de 2013

Introdução Serviços Web O que são e por que usar? Componentes de software distribuídos Visam a promover comunicação interoperável entre sistemas Ex: Google Drive

Introdução Escalabilidade Uma das muitas definições: Uma aplicação é escalável se atinge o mesmo desempenho quando a capacidade da infraestrutura aumenta na mesma proporção que o tamanho do problema[1] Escalabilidade também leva em conta a infraestrutura onde o software está rodando!!

Introdução Testes de Escalabilidade Normalmente difíceis de realizar: Infraestrutura Carga Emulação de clientes Além disso, quais métricas escolher?

Ferramentas utilizadas Ferramenta para os testes Scalability Explorer[2] Arcabouço de software livre para testes de escalabilidade que: Possibilita coletar três tipos de métricas Degradação Speedup Performance agregada Fornece suporte à emulação de clientes (Rehearsal[3]) Consegue lidar com aumentos na carga de requisições

Ferramentas utilizadas Porém... E a infraestrutura???

Ferramentas utilizadas OpenStack Sistema operacional de nuvem Gerencia grandes quantidades de recursos em uma nuvem Dashboard que facilita seu uso OpenStack do CCSL oferecia algumas configurações de máquinas virtuais

Ferramentas utilizadas Escolha do Serviço Kalibro Web Service Motivos: Mezuro[4] - plataforma para monitoramento de código-fonte Kalibro[5] - software que realiza coleta e análise de métricas de código-fonte Com o Mezuro prestes a entrar em produção, é preciso que algumas perguntas sejam respondidas: Como o Kalibro se comportará quando forem feitas muitas requisições simultâneas? Quais são os seus limitantes? Se houverem, como melhorá-los?

Ferramentas utilizadas Escolha do Serviço Kalibro Web Service C, C++, JAVA e python Faz uso de coletores auxiliares (Analizo, Checkstyle e CVSAnaly) Utiliza configurações existentes ou personalizadas Fornece uma interpretação padrão para os resultados obtidos

Ferramentas utilizadas Preparação para os testes Instalação do Scalability Explorer Entendimento do funcionamento do arcabouço Escrita dos testes Execução, primeiramente, no localhost Depois, preparação das máquinas virtuais no OpenStack...

Ferramentas utilizadas Preparação para os testes Problemas... Criação das máquinas virtuais manualmente Processo demorado Instabilidade do OpenStack Instalação de dependências e do serviço uma máquina virtual por vez...

Ferramentas utilizadas Preparação para os testes Problemas... Uma...

Ferramentas utilizadas Preparação para os testes Problemas... Por...

Ferramentas utilizadas Preparação para os testes Problemas... Vez...

Ferramentas utilizadas Preparação para os testes Solução! ClusterSSH Controla diversos terminais através de um único console Permite enviar comandos simultaneamente a diversos servidores através de uma conexão ssh Realmente me salvou muitas horas de trabalho!

Ferramentas utilizadas Preparação para os testes Solução! Bom uso do ClusterSSH.

Estudo de caso Preparação para os testes Configuração das máquinas virtuais Tamanho n o de VCPUs 1 RAM HD Médio 2 4 40 Grande 4 8 80 XGrande 8 16 160 XXGRANDE 12 24 6 1 Cada VCPU era de 2.4 GHz

Estudo de caso Identificação da operação mais problemática Processamento de repositório de código-fonte Kalibro possui 50 operações Ao todo, 150 testes Dentre as operações problemáticas, escolhemos tentar melhorar a de processamento de repositório de código-fonte

Estudo de caso Teste de degradação

Estudo de caso Teste de speedup

Estudo de caso Teste de performance agregada

Estudo de caso Primeira solução Balanceamento de carga Antes: Depois: ENDPOINTS Servidor Balanceador Requisição Requisição Cliente Cliente

Estudo de caso Primeira solução Teste de speedup com balanceamento de carga

Estudo de caso Primeira solução Teste de performance agregada com balanceamento de carga

Estudo de caso Segunda solução Mudança na infraestrutura do Kalibro Antes: Depois: Requisição Requisição Validação Resposta Servidor PREPARING Observadores LOADING Resposta Servidor LOADING ANALYZING COLLECTING ANALYZING COLLECTING BUILDING BUILDING AGGREGATING CALCULATING

Estudo de caso Segunda solução Teste de degradação com a infraestrutura nova Antes: Depois:

Estudo de caso Segunda solução Teste de speedup com a infraestrutura nova Antes: Depois:

Estudo de caso Segunda solução Teste de performance agregada com a infraestrutura nova Antes: Depois:

Conclusão Conclusões Scalability Explorer Manipulação de clientes Escrita dos testes Várias opções de parâmetro Paulo Moura

Conclusão Conclusões Balanceamento de carga Vantagens: Estabilidade do sistema em horários de picos de requisição Elasticidade da nuvem Desvantagens: Infraestrutura cara Mais difícil de manter

Conclusão Conclusões Mudança na infraestrutura Vantagens: Feedback muito rápido Criação de mais estados permite melhor identificação de erros Desvantagens: O tempo total de execução piorou Mais complexidade no Kalibro

Conclusão Conclusões Portanto, para melhorar a escalabilidade do Kalibro: Combinar as duas soluções Dessa forma, o feedback é rápido e, em horários de pico de requisição, é possível manter o tempo de resposta quase inalterado

Conclusão Agradecimentos

Conclusão Perguntas?

Conclusão Referências bibliográficas [1] M. Quinn. Parallel Computing: Theory and Practice. McGraw-Hill, 2nd edição, 1994. [2] Moura and Kon, Automated Scalability Testing of Software as a Service, 8th International Workshop on Automation of Software Test, 2013. [3] Besson et al., Rehearsal: Um arcabouço para teste automatizado de coreografias de serviços web. Disseração de mestrado, Instituto de Matemática e Estatística, Universidade de São Paulo, 2012. [4] Meirelles et al., Mezuro Plataform: Source Code Tracking Network, Sessão de Ferramentas do III Congresso Brasileiro de Software: Teoria e Prática, 2012. [5] Morais et al., Kalibro: Interpretação de métricas de código-fonte. Dissertação de mestrado, Instituto de Matemática e Estatística, Univesidade de São Paulo, 2013.