Apresentacao pré banca TCC em SI

33
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

description

Sistemas web distribuídos, memória e processamento

Transcript of Apresentacao pré banca TCC em SI

Page 1: 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

Page 2: Apresentacao pré banca TCC em SI

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.

Page 3: Apresentacao pré banca TCC em SI

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.

Page 4: Apresentacao pré banca TCC em SI

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.

Page 5: Apresentacao pré banca TCC em SI

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).

Page 6: Apresentacao pré banca TCC em SI

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.

Page 7: Apresentacao pré banca TCC em SI

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

Page 8: Apresentacao pré banca TCC em SI

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.

Page 9: Apresentacao pré banca TCC em SI

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.

Page 10: Apresentacao pré banca TCC em SI

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.

Page 11: Apresentacao pré banca TCC em SI

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.

Page 12: Apresentacao pré banca TCC em SI

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).

Page 13: Apresentacao pré banca TCC em SI

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.

Page 14: Apresentacao pré banca TCC em SI

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

Referencial

Page 15: Apresentacao pré banca TCC em SI

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!

Page 16: Apresentacao pré banca TCC em SI

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).

Page 17: Apresentacao pré banca TCC em SI

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

Page 18: Apresentacao pré banca TCC em SI

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

Gearman

Page 19: Apresentacao pré banca TCC em SI

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

Memcache

Page 20: Apresentacao pré banca TCC em SI

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

Lógica do app com Memcache

Page 21: Apresentacao pré banca TCC em SI

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

Medindo a performance da aplicação web

Page 22: Apresentacao pré banca TCC em SI

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).

Page 23: Apresentacao pré banca TCC em SI

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

jMeter

Page 24: Apresentacao pré banca TCC em SI

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

Resultados já obtidos

Page 25: Apresentacao pré banca TCC em SI

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.

Page 26: Apresentacao pré banca TCC em SI

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

Page 27: Apresentacao pré banca TCC em SI

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

Page 28: Apresentacao pré banca TCC em SI

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

Page 29: Apresentacao pré banca TCC em SI

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).

Page 30: Apresentacao pré banca TCC em SI

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

• Demonstração gearman + memcache• video

Page 31: Apresentacao pré banca TCC em SI

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

Page 32: Apresentacao pré banca TCC em SI

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

Page 33: Apresentacao pré banca TCC em SI

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.