desenvolvimento de um portal web escalável e de alta performance comcom processamento e memória...

58
Helton Eduardo Ritter - [email protected] – Agosto de 2012 DESENVOLVIMENTO DE UM PORTAL WEB ESCALÁVEL E DE ALTA PERFORMANCE COM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA Helton Eduardo Ritter Orientador: Ms. Claudio Schepke Agosto de 2012

Upload: helton-ritter

Post on 13-May-2015

863 views

Category:

Technology


0 download

DESCRIPTION

Apresentação do TCC em sistemas de Informação pela Sociedade Educacional Três de Maio. Foco em aplicações web de alta performance e escaláveis através de processamento distribuído e memória.

TRANSCRIPT

Page 1: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

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

Helton Eduardo Ritter

Orientador: Ms. Claudio Schepke

Agosto de 2012

Page 2: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto 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: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto 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: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Objetivos Específicos

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

Page 5: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto 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: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto 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 7: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Problema

Portais que crescem em acessos & complexidade dos algoritmos.

X Limitação da abordagem multicore em

virtude do custo.

Page 8: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

O 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 9: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Aplicações de alta performance para web

•  HPC no cotidiano das empresas;

Web como plataforma de aplicação

É preciso pensar as aplicações web diferente!

Page 10: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Memória e processamento distribuído

Fazer pequenos blocos especializados em processamento de tarefas. Distribuir esses blocos em vários hosts. MPI, JAVA RMI, aLua, Sockets, JBOSS, Web Services, SOAP, REST … Não há uma ferramenta, um padrão de fato.

Page 11: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Gearman

Fonte: Gearman, 2011

Page 12: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Fonte: ROTSAERT, 2011, p.40

Page 13: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Memcache

Fonte: FITZPATRICK, 2004

Page 14: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Fonte: ZMIEVSKI, p.10, 2010

Page 15: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Lógica do app com Memcache

Fonte: GALBRAITH, p.316, 2009

Page 16: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto 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 17: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Fonte: ROTSAERT, 2011, p.40

Page 18: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto 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 19: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto 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 20: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto 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ída, sem cache em memória RAM, em função do custo computacional de distribuir o processamento e memória.

Page 21: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Resultados

Page 22: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

SETREM •  8 cursos técnicos, 1 na área de tecnologia; •  9 cursos superiores, 2 na área de tecnologia; •  95 computadores em setores administrativos; •  50 em salas de aula + 50 datashows; •  224 distribuídos em 13 laboratórios + DS`s; •  A noite, juntam-se mais 500 notebooks a

rede (levantamento de Nov. de 2011).

Page 23: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Server 1 - Linux, Apache2, com PHP5, GD, FreeTDS, php5-mssql. Server 2 - Banco de dados SQL Server Server 3 - Storage de imagens

Influenciado por Steve Souders (2007) “Alta performance em sites web ”, Yahoo!

Portal SETREM 2010

Page 24: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

•  Dell  PowerEdge  R210,  com  4  processadores  Intel  Xeon  Quad-­‐Core  E3-­‐1220  (3.10GHz,  8M  Cache,  Turbo/4T  (80W),    16  GB  de  RAM.  

•   O  site  está  em  uma  máquina  virtual  (VMware  ESX  Server)    com  4  processadores  disponíveis,  e  3.5Gb  de  RAM.    

Servidor

Page 25: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Portal proposto

Com processamento e memória distribuída e cacheada!

Page 26: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Page 27: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Projeto piloto: Portal Mobile

Fonte: DOTTO, 2012

Page 28: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Solução adotada

Page 29: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Os dois nós workers, são laptops (Acer Aspire 3100) executando Ubuntu Server 10.10 32 bits, ambos processadores Sempron 3200, um deles com 512Mb e outro com 1GB de RAM. O servidor principal (em verde) foi uma máquina virtual com 1 processador Core i5 2.4Ghz, 1 Gb de RAM, também executando Ubuntu Server.

Page 30: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Page 31: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Novo  Layout  10  

Novo Layout

Gilvan Ritter

100% feito em Gimp

Page 32: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Executando …

Page 33: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Page 34: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Page 35: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Fonte: RITTER e SCHEPKE, 2012

Apenas em arquivos PHP

Page 36: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

•  Medindo o desempenho da solução com Siege.

•  Ambiente e condições dos testes.

Page 37: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Número de transações atendidas

X  2.83  

Page 38: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Número de transações atendidas

X  3.66  

Page 39: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Número de transações atendidas

X  3.25  

Page 40: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Número de transações atendidas

X  3  

Page 41: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Número de transações atendidas

X  3.47  

Page 42: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Número de transações atendidas

X  9.87  

Page 43: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Número de transações atendidas

X  8.82  

Page 44: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Disponibilidade em % conforme a concorrência

Page 45: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Tempo de resposta em segundos

Page 46: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Taxa de transações por segundo conforme a concorrência

Page 47: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Transferência de dados em MB

Page 48: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Concorrência, requisições aguardando resposta

Page 49: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Considerações finais

Page 50: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

•  E  se  um  Gearman  Server  não  for  o  suficiente  para  fazer  a  distribuição  aos  Workers?  

Page 51: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Page 52: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

•  E  se  um  Client  (h1p  server)  não  for  suficiente?  

Page 53: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Page 54: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Conclusão  

•  Melhorias  x  escalabilidade;  

•  Ambiente  criado  para  possibilitar  crescer;  

•  Gerarman  e  Memcache  administram  a  heterogeneidade  do  hardware;  

Page 55: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Conclusão  

•  Memcache  e  o  acesso  ao  BD;  

•  Setup  automá^co  de  novo  worker;  

•  Ferramentas  de  monitoramento;  

Page 56: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Conclusão  

•  Na  arquitetura  proposta  a  comunicação  em  rede  foi  minimizada.  

•  Quan^dade  de  código-­‐fonte  necessário  compensado  pela  arquitetura  adaptável.  

Page 57: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Referências Bibliográficas DOTTO,  Ariel  Ruguéri.  Desenvolvimento  do  Portal  Web  SETREM  na  versão  Mobile  uOlizando  linguagem  de  programação  PHP.  Relatório  de  Estágio  Curricular  Supervisionado  Obrigatório,  Curso  Técnico  em  Informá^ca,  Sociedade  Educacional  Três  de  Maio  -­‐  SETREM,  2012.    FITZPATRICK,  Brad.  Distributed  Caching  with  Memcached.Disponível  em  <hmp://www.linuxjournal.com/ar^cle/7451>,    Linux  Journal,  2004.    GALBRAITH,  Patrick.  Developing  Web  ApplicaOons  with  Perl,  memcached,  MySQL  and  Apache.  Wiley  Publishing  inc.  Indianapolis,  2009.    Gearman.  Disponível  em  <hmp://gearman.org>,  acesso  em  31  Oct.  2011.  

Page 58: Desenvolvimento de um Portal Web  Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA

Helton Eduardo Ritter - [email protected] – Agosto de 2012

Referências Bibliográficas RITTER,  Helton  Eduardo,  SCHEPKE,  Claudio.  Desenvolvimento  de  um  portal  web  escalável  e  de  alta  performance  com  processamento  e  memória  distribuída.  Sistemas  de  Informação,  Faculdade  Três  de  Maio,  2012.      ROTSAERT,  Jayme.  An  insider's  view  on  how  to  build,  maintain  high  traffic  websites.  Canada-­‐Norway  Partnership  in  higher  educa^on  2011.Disponível  em  <hmp://www.slideshare.net/_jayme/an-­‐insiders-­‐view-­‐on-­‐how-­‐to-­‐build-­‐maintain-­‐high-­‐traffic-­‐websites>,  acesso  em  15  Mar.  2012.    ZMIEVSKI,  Andrei.  All  The  Li\le  Pieces,  distributed  systems  with  PHP.  Dutch  PHP  Conference,  Amsterdam,  2009.  Disponível  em  <hmp://www.slideshare.net/andreizm/all-­‐the-­‐limle-­‐pieces-­‐1573862>  acesso  em  15  Mar.  2012.