SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Plone na Nuvem
Fabiano Weimar dos Santos
xiru@xiru.org
CONSEGI 2010
Roteiro
● Introdução
● Plataformas
● Arquitetura “Padrão”
● Arquitetura na Nuvem
● Escalabilidade e Cache
● Elasticidade e Energia
Introdução
● Normalmente a infraestrutura de TI é
dimensionada para suportar a “carga de
pico”
● Na prática, durante boa parte do tempo,
temos hardware ocioso
● Gasto de recursos desnecessários (energia
elétrica, refrigeração, etc)
Introdução
● Mesmo dimensionando bem sua
infraestrutura, picos inesperados são
problemáticos (efeito “slashdot”)
● As redes sociais tem potencial para atrair
quantidades de tráfego incríveis
● Sites governamentais sofrem com problemas
sazonais (eleições, plebiscitos, debates
polêmicos, etc)
Plataformas
● Atualmente, é mais difícil escalar
software do que hardware
● Virtualização não é novidade
● Já temos diversas plataformas de cloud
computing que ajudam a resolver a
escalabilidade do “hardware”
● Amazon Elastic Compute Cloud (Amazon
EC2), Eucalyptus, Ubuntu Enterprise Cloud
(UEC), Ganeti, Open Nebula, ...
Ubuntu Enterprise Cloud - UEC
● Baseado na versão opensource do
Eucalyptus: Elastic Utility Computing
Architecture Linking Your Programs To Useful
Systems
● Permite a criação de clouds privadas e
públicas
● API similar ao Amazon EC2 e S3
e outras plataformas...
● O UEC e o EC2 são tão parecidos que
ferramentas desenvolvidas para gerenciar
clouds no EC2 funcionam no UEC.
● O importante mesmo é adotar uma
tecnologia de cloud computing que
privilegie a escalabilidade de acordo
com a sua realidade
Arquitetura “Padrão”
Você deve estar rodando algo assim...
Balanceadores
de Carga
Firewalls
Servidores Web
ou Proxy Reverso
(Apache, nginx,
Squid, Varnish, etc)
Servidores Zope
ZEO, ZODB e DRDB
Solução de
Backup
Arquitetura na Nuvem
Em breve você vai querer ter algo assim...
Servidores Web
ou Proxy Reverso
Servidores de Aplicação
Zope/Plone
Porta 80, 443 e 22
Acesso Web
Porta 8080 e 22
Acesso Administrativo
Sem acesso
Grupo de Servidores Web
acessa servidores do grupo
de Servidores de Aplicação
Grupo de Servidores de
Aplicação acessa grupo de
Servidores de Banco de Dados
Escalabilidade e Cache
● Não há como escalar uma aplicação
dinâmica sem cache
● Cache no Plone = CacheFu
● Sempre que possível, fazer cache
compartilhado (Squid ou varnish).
● Quando não for possível, utiliza-se cache no
navegador (e-tags e/ou cache em memória)
– Memcached pode solucionar problemas de
performance em sites onde tudo é acessado por
usuários autenticados
Elasticidade e Energia
● Se temos grupos elásticos
de servidores de
aplicações, podemos
desligar máquinas ociosas
● PowerNap
● PowerWake
● Acabamos “nos
obrigando” a criar
ambientes escaláveis e
redundantes.
https://launchpad.net/powernap
Uma estimativa fictícia
● Vamos considerar que precisamos de
toda nossa capacidade de processamento
apenas no horário comercial (8h as 20h,
de segunda a sexta-feira)
● No restante do período, podemos operar
com 20% da capacidade total
2008: 1 bilhão de computadores
2015: 2 bilhões de computadores Final de Semana
Madrugada
Pergunta: quanta energia desperdiçamos em nossos clusters?
Horas 100% Horas 20% Total
domingo 24 4,8
segunda 12 12 14,4
terça 12 12 14,4
quarta 12 12 14,4
quinta 12 12 14,4
sexta 12 12 14,4
sábado 24 4,8
Total 60 108 81,6
51, 42% de economia de energia
Se isso fosse feito com 1 bilhão de computadores
que consomem 80 W cada, teríamos uma economia de 41136 MWh
Estima-se que o Google tenha mais de 1 milhão de servidores...
http://www.ons.org.br/historico/carga_propria_de_demanda.aspx
O que isso tem a ver com
Plone?
● Desligar instancias de Zope de acordo
com a carga é relativamente simples.
● O balanceador de carga detecta instancias de
Zope ligadas ou desligadas
● Porque será que não conheço nenhuma
empresa que faça isso (em larga escala)?
● A economia de energia de alguns meses
pagaria a implantação de um projeto de
cloud computing!?
Como essa ideia funcionaria para
servidores virtualizados?
http://dustinkirkland.wordpress.com/2009/08/19/a-statistical-analysis-of-
potential-powernap-energy-savings/
$ ./powernap_calculator -h 18 -p 1 -g 1
In a cloud with [18] hosts, which can handle [1]
guests-per-host, currently running [1] guests,
you may expect the following:
[100.0%] likely that [17/18] of your hosts would
powernap, for a [94%] power savings
The overall expected value is [94.4%] power
savings.
PowerNap
$ ./powernap_calculator -h 6 -p 4 -g 4
In a cloud with [6] hosts, which can handle [4] guests-per-
host, currently running [4] guests,
you may expect the following:
[ 11.9%] likely that [2/6] ..., for a [33%] power savings
[ 47.6%] likely that [3/6] ..., for a [50%] power savings
[ 35.7%] likely that [4/6] ..., for a [67%] power savings
[ 4.8%] likely that [5/6] ..., for a [83%] power savings
The overall expected value is [55.6%] power savings.
A economia costuma ser maior que a média aleatória devido
ao algoritmo de alocação de máquinas virtuais
PowerNap
Um exemplo “mais real”
● 200 servidores
● 80 W por servidor
● 16 kWh
● 1 mês: 720h
● Total: 11520 kWh
● Custo mensal
aproximado de
R$ 3639,00
● Economia Anual de
R$ 24.017,00
Nem sempre servidores consomem
apenas 80 W, mas trata-se de uma
estimativa razoável.
Sem ICMS, PIS e COFINS :)
PowerTop
http://www.lesswatts.org/projects/powertop/
cpufrequtils
# cpufreq-info
cpufrequtils 006: cpufreq-info (C) Dominik Brodowski 2004-2009
Reporte erros e bugs para cpufreq@vger.kernel.org, por favor.
analisando o CPU 0:
driver: acpi-cpufreq
CPUs que rodam na mesma frequência de hardware: 0
CPUs que precisam ter suas frequências coordenadas por software: 0
maior latência de transição: 160 us.
limites do hardware: 2.40 GHz - 3.20 GHz
níveis de frequência disponíveis: 3.20 GHz, 2.80 GHz, 2.40 GHz
reguladores do cpufreq disponíveis: conservative, ondemand, userspace, powersave,
performance
política de frequência atual deve estar entre 2.40 GHz e 3.20 GHz.
O regulador "ondemand" deve decidir qual velocidade usar
dentro desse limite.
frequência atual do CPU é 2.40 GHz.
status do cpufreq: 3.20 GHz:1,56%, 2.80 GHz:0,05%, 2.40 GHz:98,39% (6412)
http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html
Pense nas vantagens...
+ escalabilidade
+ tolerância a falhas
+ redundância
- gasto com energia
- emissão CO2
Obrigado
Fabiano Weimar dos Santos
xiru@xiru.org
http://blog.xiru.org
Twitter: @xiru

Mais conteúdo relacionado

Destaque

Презентация Zumba
Презентация ZumbaПрезентация Zumba
Презентация ZumbaOxana Dyatlova
 
HP Future Cities (Smart Cities)
HP Future Cities (Smart Cities)HP Future Cities (Smart Cities)
HP Future Cities (Smart Cities)TechXpla
 
BABU CV JULY 2016
BABU CV JULY 2016BABU CV JULY 2016
BABU CV JULY 2016Babu .s
 
APHG Unit 3: Religion Intro
APHG Unit 3: Religion IntroAPHG Unit 3: Religion Intro
APHG Unit 3: Religion Introappleselena
 
Noções de Econometria. Tutorial com aplicação do software Gretl
Noções de Econometria. Tutorial com aplicação do software GretlNoções de Econometria. Tutorial com aplicação do software Gretl
Noções de Econometria. Tutorial com aplicação do software GretlCarlos Antonio Soares de Andrade
 
Эффективные системные решения для фитнес-клубов
Эффективные системные решения для фитнес-клубовЭффективные системные решения для фитнес-клубов
Эффективные системные решения для фитнес-клубовValeriy Solovyev
 
Get To Know GMOs by GMO Answers
Get To Know GMOs by GMO AnswersGet To Know GMOs by GMO Answers
Get To Know GMOs by GMO AnswersMichael Stebbins
 

Destaque (10)

Презентация Zumba
Презентация ZumbaПрезентация Zumba
Презентация Zumba
 
HP Future Cities (Smart Cities)
HP Future Cities (Smart Cities)HP Future Cities (Smart Cities)
HP Future Cities (Smart Cities)
 
BABU CV JULY 2016
BABU CV JULY 2016BABU CV JULY 2016
BABU CV JULY 2016
 
C V farhat_abbas
C V farhat_abbasC V farhat_abbas
C V farhat_abbas
 
APHG Unit 3: Religion Intro
APHG Unit 3: Religion IntroAPHG Unit 3: Religion Intro
APHG Unit 3: Religion Intro
 
Noções de Econometria. Tutorial com aplicação do software Gretl
Noções de Econometria. Tutorial com aplicação do software GretlNoções de Econometria. Tutorial com aplicação do software Gretl
Noções de Econometria. Tutorial com aplicação do software Gretl
 
Эффективные системные решения для фитнес-клубов
Эффективные системные решения для фитнес-клубовЭффективные системные решения для фитнес-клубов
Эффективные системные решения для фитнес-клубов
 
Economics SBA
Economics SBA Economics SBA
Economics SBA
 
Get To Know GMOs by GMO Answers
Get To Know GMOs by GMO AnswersGet To Know GMOs by GMO Answers
Get To Know GMOs by GMO Answers
 
Arcasouth Proposal
Arcasouth ProposalArcasouth Proposal
Arcasouth Proposal
 

Semelhante a Plone na nuvem

Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveiselliando dias
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Thiago Rondon
 
Desenvolvendo aplicativos web escaláveis
Desenvolvendo aplicativos web escaláveisDesenvolvendo aplicativos web escaláveis
Desenvolvendo aplicativos web escaláveisManuel Lemos
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon Web Services LATAM
 
Treinamento de Performance and tuning
Treinamento de Performance and tuningTreinamento de Performance and tuning
Treinamento de Performance and tuningDell Technologies
 
Planejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e FerramentasPlanejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e Ferramentasluanrjesus
 
MySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL Brasil
 
Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Fernando Gomes Chaves
 
Planejamento E Gerenciamento de Capacidade Para Sistemas Distribuídos
Planejamento E Gerenciamento de Capacidade Para Sistemas DistribuídosPlanejamento E Gerenciamento de Capacidade Para Sistemas Distribuídos
Planejamento E Gerenciamento de Capacidade Para Sistemas DistribuídosRodrigo Campos
 
Desenvolvendo aplicações Web escaláveis com PHP
Desenvolvendo aplicações Web escaláveis com PHPDesenvolvendo aplicações Web escaláveis com PHP
Desenvolvendo aplicações Web escaláveis com PHPElton Minetto
 
[IGNITE2018] [BRK3491] Azure Backup and Site Recovery
[IGNITE2018] [BRK3491] Azure Backup and Site Recovery[IGNITE2018] [BRK3491] Azure Backup and Site Recovery
[IGNITE2018] [BRK3491] Azure Backup and Site Recovery☁️ Gustavo Magella
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azuretdc-globalcode
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
 
Por que o Google Cloud Platform é diferente
Por que o Google Cloud Platform é diferentePor que o Google Cloud Platform é diferente
Por que o Google Cloud Platform é diferenteJose Papo, MSc
 

Semelhante a Plone na nuvem (20)

Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
 
Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.Cache, Concorrência e Sincronização.
Cache, Concorrência e Sincronização.
 
Desenvolvendo aplicativos web escaláveis
Desenvolvendo aplicativos web escaláveisDesenvolvendo aplicativos web escaláveis
Desenvolvendo aplicativos web escaláveis
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenho
 
Treinamento de Performance and tuning
Treinamento de Performance and tuningTreinamento de Performance and tuning
Treinamento de Performance and tuning
 
Aula 4 - Introdução a aws
Aula 4 - Introdução a awsAula 4 - Introdução a aws
Aula 4 - Introdução a aws
 
Planejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e FerramentasPlanejamento de Capacidade Técnicas e Ferramentas
Planejamento de Capacidade Técnicas e Ferramentas
 
TRIO IT - Resumo
TRIO IT - ResumoTRIO IT - Resumo
TRIO IT - Resumo
 
Aula01
Aula01Aula01
Aula01
 
TCO e otimização de custos na AWS
TCO e otimização de custos na AWSTCO e otimização de custos na AWS
TCO e otimização de custos na AWS
 
MySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI TecnologiaMySQL em 10min - Alexandre Almeida HTI Tecnologia
MySQL em 10min - Alexandre Almeida HTI Tecnologia
 
Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid Computação paralela 2 cluster e grid
Computação paralela 2 cluster e grid
 
Planejamento E Gerenciamento de Capacidade Para Sistemas Distribuídos
Planejamento E Gerenciamento de Capacidade Para Sistemas DistribuídosPlanejamento E Gerenciamento de Capacidade Para Sistemas Distribuídos
Planejamento E Gerenciamento de Capacidade Para Sistemas Distribuídos
 
Desenvolvendo aplicações Web escaláveis com PHP
Desenvolvendo aplicações Web escaláveis com PHPDesenvolvendo aplicações Web escaláveis com PHP
Desenvolvendo aplicações Web escaláveis com PHP
 
[IGNITE2018] [BRK3491] Azure Backup and Site Recovery
[IGNITE2018] [BRK3491] Azure Backup and Site Recovery[IGNITE2018] [BRK3491] Azure Backup and Site Recovery
[IGNITE2018] [BRK3491] Azure Backup and Site Recovery
 
Introducao+ao+amazon+ec2+ +ricardo+geh
Introducao+ao+amazon+ec2+ +ricardo+gehIntroducao+ao+amazon+ec2+ +ricardo+geh
Introducao+ao+amazon+ec2+ +ricardo+geh
 
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on AzureTDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
TDC2018SP | Trilha Arq .Net - Serverless Reactive Programming on Azure
 
Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?Como criar infraestrutura de sites para receber milhões de usuários?
Como criar infraestrutura de sites para receber milhões de usuários?
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
Por que o Google Cloud Platform é diferente
Por que o Google Cloud Platform é diferentePor que o Google Cloud Platform é diferente
Por que o Google Cloud Platform é diferente
 

Mais de Fabiano Weimar

Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)Fabiano Weimar
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Fabiano Weimar
 
Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???Fabiano Weimar
 
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo AlheioPortal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo AlheioFabiano Weimar
 
Introducao ao sistema de gerenciamento de conteúdo Plone
Introducao ao sistema de gerenciamento de conteúdo PloneIntroducao ao sistema de gerenciamento de conteúdo Plone
Introducao ao sistema de gerenciamento de conteúdo PloneFabiano Weimar
 
Integração de sistemas legados com Plone
Integração de sistemas legados com PloneIntegração de sistemas legados com Plone
Integração de sistemas legados com PloneFabiano Weimar
 
Algoritmos genéticos em python - PyConBrasil 3 (2007)
Algoritmos genéticos em python - PyConBrasil 3 (2007)Algoritmos genéticos em python - PyConBrasil 3 (2007)
Algoritmos genéticos em python - PyConBrasil 3 (2007)Fabiano Weimar
 
Faça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.cachingFaça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.cachingFabiano Weimar
 
Adaptando o Plone para plataformas móveis
Adaptando o Plone para plataformas móveisAdaptando o Plone para plataformas móveis
Adaptando o Plone para plataformas móveisFabiano Weimar
 
Plone Yak Shaving and Bikeshedding
Plone Yak Shaving and BikesheddingPlone Yak Shaving and Bikeshedding
Plone Yak Shaving and BikesheddingFabiano Weimar
 
Otimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesOtimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesFabiano Weimar
 
Understanding Plone Security
Understanding Plone SecurityUnderstanding Plone Security
Understanding Plone SecurityFabiano Weimar
 
Tips and Tricks about Plone Development for Mobile Platforms
Tips and Tricks about Plone Development for Mobile PlatformsTips and Tricks about Plone Development for Mobile Platforms
Tips and Tricks about Plone Development for Mobile PlatformsFabiano Weimar
 
Dicas e truques de otimização de websites python
Dicas e truques de otimização de websites pythonDicas e truques de otimização de websites python
Dicas e truques de otimização de websites pythonFabiano Weimar
 
Conhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UECConhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UECFabiano Weimar
 
Sistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDOSistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDOFabiano Weimar
 
Reconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiroReconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiroFabiano Weimar
 

Mais de Fabiano Weimar (20)

Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
Plone, Zope e Python - Da Universidade ao Governo - SulComp II (2006)
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
 
Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???
 
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo AlheioPortal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
Portal SEBRAE - Quando o Plone Gerencia o Conteúdo Alheio
 
Introducao ao sistema de gerenciamento de conteúdo Plone
Introducao ao sistema de gerenciamento de conteúdo PloneIntroducao ao sistema de gerenciamento de conteúdo Plone
Introducao ao sistema de gerenciamento de conteúdo Plone
 
Integração de sistemas legados com Plone
Integração de sistemas legados com PloneIntegração de sistemas legados com Plone
Integração de sistemas legados com Plone
 
Algoritmos genéticos em python - PyConBrasil 3 (2007)
Algoritmos genéticos em python - PyConBrasil 3 (2007)Algoritmos genéticos em python - PyConBrasil 3 (2007)
Algoritmos genéticos em python - PyConBrasil 3 (2007)
 
Faça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.cachingFaça seu portal voar usando o plone.app.caching
Faça seu portal voar usando o plone.app.caching
 
Adaptando o Plone para plataformas móveis
Adaptando o Plone para plataformas móveisAdaptando o Plone para plataformas móveis
Adaptando o Plone para plataformas móveis
 
Plone Yak Shaving and Bikeshedding
Plone Yak Shaving and BikesheddingPlone Yak Shaving and Bikeshedding
Plone Yak Shaving and Bikeshedding
 
Otimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websitesOtimização de infra estrutura para hospedagem de websites
Otimização de infra estrutura para hospedagem de websites
 
Understanding Plone Security
Understanding Plone SecurityUnderstanding Plone Security
Understanding Plone Security
 
Tips and Tricks about Plone Development for Mobile Platforms
Tips and Tricks about Plone Development for Mobile PlatformsTips and Tricks about Plone Development for Mobile Platforms
Tips and Tricks about Plone Development for Mobile Platforms
 
Segurança no plone
Segurança no ploneSegurança no plone
Segurança no plone
 
Dicas e truques de otimização de websites python
Dicas e truques de otimização de websites pythonDicas e truques de otimização de websites python
Dicas e truques de otimização de websites python
 
Conhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UECConhecendo o ubuntu enterprise cloud - UEC
Conhecendo o ubuntu enterprise cloud - UEC
 
Sistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDOSistema de protocolo de documentos - SPDO
Sistema de protocolo de documentos - SPDO
 
Novidades do plone 4
Novidades do plone 4Novidades do plone 4
Novidades do plone 4
 
O novo plone 4
O novo plone 4O novo plone 4
O novo plone 4
 
Reconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiroReconhecimento de fala em português brasileiro
Reconhecimento de fala em português brasileiro
 

Plone na nuvem

  • 1. Plone na Nuvem Fabiano Weimar dos Santos xiru@xiru.org CONSEGI 2010
  • 2. Roteiro ● Introdução ● Plataformas ● Arquitetura “Padrão” ● Arquitetura na Nuvem ● Escalabilidade e Cache ● Elasticidade e Energia
  • 3. Introdução ● Normalmente a infraestrutura de TI é dimensionada para suportar a “carga de pico” ● Na prática, durante boa parte do tempo, temos hardware ocioso ● Gasto de recursos desnecessários (energia elétrica, refrigeração, etc)
  • 4. Introdução ● Mesmo dimensionando bem sua infraestrutura, picos inesperados são problemáticos (efeito “slashdot”) ● As redes sociais tem potencial para atrair quantidades de tráfego incríveis ● Sites governamentais sofrem com problemas sazonais (eleições, plebiscitos, debates polêmicos, etc)
  • 5. Plataformas ● Atualmente, é mais difícil escalar software do que hardware ● Virtualização não é novidade ● Já temos diversas plataformas de cloud computing que ajudam a resolver a escalabilidade do “hardware” ● Amazon Elastic Compute Cloud (Amazon EC2), Eucalyptus, Ubuntu Enterprise Cloud (UEC), Ganeti, Open Nebula, ...
  • 6. Ubuntu Enterprise Cloud - UEC ● Baseado na versão opensource do Eucalyptus: Elastic Utility Computing Architecture Linking Your Programs To Useful Systems ● Permite a criação de clouds privadas e públicas ● API similar ao Amazon EC2 e S3
  • 7. e outras plataformas... ● O UEC e o EC2 são tão parecidos que ferramentas desenvolvidas para gerenciar clouds no EC2 funcionam no UEC. ● O importante mesmo é adotar uma tecnologia de cloud computing que privilegie a escalabilidade de acordo com a sua realidade
  • 8. Arquitetura “Padrão” Você deve estar rodando algo assim...
  • 9. Balanceadores de Carga Firewalls Servidores Web ou Proxy Reverso (Apache, nginx, Squid, Varnish, etc) Servidores Zope ZEO, ZODB e DRDB Solução de Backup
  • 10. Arquitetura na Nuvem Em breve você vai querer ter algo assim...
  • 11. Servidores Web ou Proxy Reverso Servidores de Aplicação Zope/Plone
  • 12. Porta 80, 443 e 22 Acesso Web Porta 8080 e 22 Acesso Administrativo Sem acesso Grupo de Servidores Web acessa servidores do grupo de Servidores de Aplicação Grupo de Servidores de Aplicação acessa grupo de Servidores de Banco de Dados
  • 13. Escalabilidade e Cache ● Não há como escalar uma aplicação dinâmica sem cache ● Cache no Plone = CacheFu ● Sempre que possível, fazer cache compartilhado (Squid ou varnish). ● Quando não for possível, utiliza-se cache no navegador (e-tags e/ou cache em memória) – Memcached pode solucionar problemas de performance em sites onde tudo é acessado por usuários autenticados
  • 14. Elasticidade e Energia ● Se temos grupos elásticos de servidores de aplicações, podemos desligar máquinas ociosas ● PowerNap ● PowerWake ● Acabamos “nos obrigando” a criar ambientes escaláveis e redundantes. https://launchpad.net/powernap
  • 15. Uma estimativa fictícia ● Vamos considerar que precisamos de toda nossa capacidade de processamento apenas no horário comercial (8h as 20h, de segunda a sexta-feira) ● No restante do período, podemos operar com 20% da capacidade total
  • 16. 2008: 1 bilhão de computadores 2015: 2 bilhões de computadores Final de Semana Madrugada Pergunta: quanta energia desperdiçamos em nossos clusters?
  • 17. Horas 100% Horas 20% Total domingo 24 4,8 segunda 12 12 14,4 terça 12 12 14,4 quarta 12 12 14,4 quinta 12 12 14,4 sexta 12 12 14,4 sábado 24 4,8 Total 60 108 81,6 51, 42% de economia de energia Se isso fosse feito com 1 bilhão de computadores que consomem 80 W cada, teríamos uma economia de 41136 MWh Estima-se que o Google tenha mais de 1 milhão de servidores...
  • 19. O que isso tem a ver com Plone? ● Desligar instancias de Zope de acordo com a carga é relativamente simples. ● O balanceador de carga detecta instancias de Zope ligadas ou desligadas ● Porque será que não conheço nenhuma empresa que faça isso (em larga escala)? ● A economia de energia de alguns meses pagaria a implantação de um projeto de cloud computing!?
  • 20. Como essa ideia funcionaria para servidores virtualizados? http://dustinkirkland.wordpress.com/2009/08/19/a-statistical-analysis-of- potential-powernap-energy-savings/
  • 21. $ ./powernap_calculator -h 18 -p 1 -g 1 In a cloud with [18] hosts, which can handle [1] guests-per-host, currently running [1] guests, you may expect the following: [100.0%] likely that [17/18] of your hosts would powernap, for a [94%] power savings The overall expected value is [94.4%] power savings. PowerNap
  • 22. $ ./powernap_calculator -h 6 -p 4 -g 4 In a cloud with [6] hosts, which can handle [4] guests-per- host, currently running [4] guests, you may expect the following: [ 11.9%] likely that [2/6] ..., for a [33%] power savings [ 47.6%] likely that [3/6] ..., for a [50%] power savings [ 35.7%] likely that [4/6] ..., for a [67%] power savings [ 4.8%] likely that [5/6] ..., for a [83%] power savings The overall expected value is [55.6%] power savings. A economia costuma ser maior que a média aleatória devido ao algoritmo de alocação de máquinas virtuais PowerNap
  • 23. Um exemplo “mais real” ● 200 servidores ● 80 W por servidor ● 16 kWh ● 1 mês: 720h ● Total: 11520 kWh ● Custo mensal aproximado de R$ 3639,00 ● Economia Anual de R$ 24.017,00 Nem sempre servidores consomem apenas 80 W, mas trata-se de uma estimativa razoável. Sem ICMS, PIS e COFINS :)
  • 25. cpufrequtils # cpufreq-info cpufrequtils 006: cpufreq-info (C) Dominik Brodowski 2004-2009 Reporte erros e bugs para cpufreq@vger.kernel.org, por favor. analisando o CPU 0: driver: acpi-cpufreq CPUs que rodam na mesma frequência de hardware: 0 CPUs que precisam ter suas frequências coordenadas por software: 0 maior latência de transição: 160 us. limites do hardware: 2.40 GHz - 3.20 GHz níveis de frequência disponíveis: 3.20 GHz, 2.80 GHz, 2.40 GHz reguladores do cpufreq disponíveis: conservative, ondemand, userspace, powersave, performance política de frequência atual deve estar entre 2.40 GHz e 3.20 GHz. O regulador "ondemand" deve decidir qual velocidade usar dentro desse limite. frequência atual do CPU é 2.40 GHz. status do cpufreq: 3.20 GHz:1,56%, 2.80 GHz:0,05%, 2.40 GHz:98,39% (6412) http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html
  • 26. Pense nas vantagens... + escalabilidade + tolerância a falhas + redundância - gasto com energia - emissão CO2
  • 27. Obrigado Fabiano Weimar dos Santos xiru@xiru.org http://blog.xiru.org Twitter: @xiru