Upload
helton-ritter
View
3.178
Download
5
Embed Size (px)
DESCRIPTION
Sistemas web distribuídos, memória e processamento
Citation preview
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.