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.
Contribuição da teoria do equilíbrio na identificação de Truste
Desenvolvimento de um Portal Web Escalável e de alta Performance comCOM PROCESSAMENTO E MEMÓRIA DISTRIBUÍDA
1. 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
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
2. 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 - heltonritter@gmail.com – Agosto de 2012
3. 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 - heltonritter@gmail.com – Agosto de 2012
4. Objetivos Específicos
• Desenvolver a novo portal, e medir o
ganho de performance comparado com o
atual.
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
5. 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 - heltonritter@gmail.com – Agosto de 2012
6. 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 - heltonritter@gmail.com – Agosto de 2012
7. Problema
Portais que crescem em acessos &
complexidade dos algoritmos.
X
Limitação da abordagem multicore em
virtude do custo.
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
8. 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.
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
9. 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!
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
10. 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.
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
14. Fonte: ZMIEVSKI, p.10, 2010
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
15. Lógica do app com Memcache
Fonte: GALBRAITH, p.316, 2009
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
16. 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 - heltonritter@gmail.com – Agosto de 2012
17. Fonte: ROTSAERT, 2011, p.40
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
18. 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 - heltonritter@gmail.com – Agosto de 2012
19. 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 - heltonritter@gmail.com – Agosto de 2012
20. 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.
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
22. 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).
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
23. Portal SETREM 2010
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!
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
24. Servidor
• 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.
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
27. Projeto piloto: Portal Mobile
Fonte: DOTTO, 2012
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
28. Solução adotada
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
29. 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.
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
50. • E
se
um
Gearman
Server
não
for
o
suficiente
para
fazer
a
distribuição
aos
Workers?
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
54. Conclusão
• Melhorias
x
escalabilidade;
• Ambiente
criado
para
possibilitar
crescer;
• Gerarman
e
Memcache
administram
a
heterogeneidade
do
hardware;
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
55. Conclusão
• Memcache
e
o
acesso
ao
BD;
• Setup
automá^co
de
novo
worker;
• Ferramentas
de
monitoramento;
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
56. 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.
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
57. 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.
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012
58. 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
Lile
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.
Helton Eduardo Ritter - heltonritter@gmail.com – Agosto de 2012