Apresentacao pré banca TCC em SI

Post on 19-Nov-2014

3.179 views 5 download

description

Sistemas web distribuídos, memória e processamento

Transcript of Apresentacao pré banca TCC em SI

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

DESENVOLVIMENTO DE UM PORTAL WEB ESCALÁVEL E DE ALTA PERFORMANCE COM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter

Orientador: MSc. Claudio Schepke

Abril de 2012

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Objetivo Geral

Projetar e desenvolver a nova versão do Portal SETREM, de modo que seja escalável, mantendo a performance através de processamento distribuído e memória distribuída e cacheada.

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Objetivos Específicos

• Estudar as ferramentas, fazer um piloto a fim de avaliar como projetar o portal.

• Projetar a arquitetura do portal de maneira que faça uso de processamento e memória distribuída.

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Objetivos Específicos

• Desenvolver a novo portal, e medir o ganho de performance comparado com o atual.

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Objetivos Específicos

• Medir qual é o número de visualizações de páginas que torna uma ou outra abordagem mais adequada (sem cache e processamento distribuído versus com cache e processamento distribuído).

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Objetivos Específicos• Publicar em eventos e/ou periódicos

científicos os resultados do teste piloto, e do resultado final.

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Delimitação do Tema

• Foco em escalabilidade e performance• Servidores GNU/Linux• LAMP + Gearman + Memcache• Novembro de 2011 a Agosto de 2012

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Problema

Portais que crescem em acessos + complexidade dos algoritmos.

XLimitação da abordagem multicore em

virtude do custo.

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

ProblemaO que então, e como seria uma arquitetura que permitisse o crescimento de um portal em PHP, tanto em questões de código como para atender mais usuários simultaneamente mantendo a performance, criando um ambiente escalável a baixo custo.

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Hipóteses

• A abordagem do uso de Memcache e Gearman resolve o gargalo dos vários workers buscarem informações no mesmo banco de dados.

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Hipóteses

• Existe a possibilidade de setup automático de um novo worker sem a necessidade de parar serviços ou configuração manual.

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Hipóteses

• Existem ferramentas de monitoramento para saber o quanto os workers, servers e clients estão ocupados, facilitando saber quando alocar ou desalocar um nó (seja ele worker, server ou client).

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Hipóteses• Para até 500 page views em 1 minuto, o

melhor tempo de resposta é na abordagem sem processamento e memória distribuído, sem cache em memória RAM, em função do custo computacional de distribuir o processamento e memória.

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Referencial

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Aplicações de alta performancepara web• Antes: HPC Ciência• Hoje: HPC Cotidiano das empresas• Web como plataforma de aplicação

É preciso pensar as aplicações web diferente!

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Memória e processamento distribuído“These models assume that information processing through the interactions of a large number of simple processing elements called units, each sending signals to other units” (MCCLELLAND, 1986, p.8).

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Memória e processamento distribuído

MPI, JAVA RMI, aLua, Sockets, JBOSS, Web Services SOAP, REST … Não há uma ferramenta, um padrão de fato.

GEARMAN & Memcache

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Gearman

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Memcache

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Lógica do app com Memcache

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Medindo a performance da aplicação web

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

SiegeSiege is an http load testing and benchmarking utility. It was designed to let web developers measure their code under duress, to see how it will stand up to load on the internet. Siege supports basic authentication, cookies, HTTP and HTTPS protocols. It lets its user hit a web server with a configurable number of simulated web browsers. Those browsers place the server “under siege” (FULMER, 2012).

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

jMeter

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Resultados já obtidos

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Situação atual – Portal SETREM

•Projeto de 2007, no ar desde 14/06/2010•Critério de classificação de conteúdo por áreas.•Papéis: visitante, usuário, revisor, administrador, tradutor.

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Performance do portal atual• Com cada Nro de usuários concorrentes,

feito 5 testes. Entre cada teste, reiniciado o servidor web.

• Testes com o siege e com o jMeter

Ver gráficos - siege

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

The Web Cofee Machine 2 Mysql Databases

• Client (gearman, memcache, view, controller)

• Worker• Core, Action, Model, DB, Config

• Ver figuras

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Piloto, portal Mobile• Implementado por Ariel Dotto, estagiário• Com banco SQL Server• Dezembro, Janeiro e início de Fevereiro.

Ver figuras

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Layout• Desenhado em Fevereiro de 2012 por

Gilvan Daniel Ritter, bolsista do CTI, usando algumas ideias de Leonardo de Almeida (bolsista do CTI, Nov. 2011).

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

• Demonstração gearman + memcache• video

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Pendências• Escrever o HTML e CSS do layout – 16/04

• Implementar a interface do visitante – 07/05

• Fazer os testes de performance novamente – 12/05

• Ver como monitorar e setup automático – 25/05

• Continuar desenvolvimento na interface administrativa – 15/06

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Pendências

• Escrever artigo para FISL – 15/04

• Trazer outras ferramentas em outras linguagens de programação cap2 – 30/04

• Concluir relatório – 02/07

Helton Eduardo Ritter - Trabalho de Estágio – Abril de 2012

Referências BibliográficasFITZPATRICK, Brad. Distributed Caching with Memcached.Disponível em <http://www.linuxjournal.com/article/7451>, Linux Journal, 2004.

GALBRAITH, Patrick. Developing Web Applications with Perl, memcached, MySQL and Apache. Wiley Publishing inc. Indianapolis, 2009.

MINETTO, Elton Luís. Ao infinito e além com PHP, Memcached e Gearman. Disponível em <http://www.slideshare.net/eminetto/ao-infinito-e-alm-com-php-memcached-e-gearman>, 2010.

ZMIEVSKI, Andrei. All The Little Pieces, distributed systems with PHP. Dutch PHP Conference, Amsterdam, 2009. Disponível em <http://www.slideshare.net/andreizm/all-the-little-pieces-1573862> acesso em 15 Mar. 2012.