Escalabilidade em Aplicações - Fisl13

750 views

Published on

Aplicações funcionam muito bem em um único ambiente, o de DEV. Entretanto, quando resolvemos fazer o deploy em um ambiente de produção, nada é tão rápido quanto o esperado. Quanto o Negócio vale quando uma aplicação é altamente escalável e de alta performance são questões que as respostas variam desde inúmeras instâncias de um Container web até a quantidade de servidores, storage e dispositivos de rede utilizados para alcançar níveis aceitáveis de resposta para os usuários.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
750
On SlideShare
0
From Embeds
0
Number of Embeds
26
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Escalabilidade em Aplicações - Fisl13

  1. 1. Escalabilidade em aplicações DevOps Flavio Torres, @flavio_torres Espec. em infra e sistemas iG, e agora Oi Internet
  2. 2. Agenda●Arquiteturas●WebServers: apache, nginx●Aplicações: PHP, Java, Rails, Python, Nodejs●SQL●NoSQL●Headers HTTP●Cache Varnish ou Nginx●Monitoramento
  3. 3. Arquitetura desejada!
  4. 4. Arquitetura entregue
  5. 5. Tempo é investimento!● Faça “em casa”● OU, participe de todo o processo, avalie propostas● Bom entendimento, boa arquitetura ... veja!
  6. 6. Arquitetura do Ger. Projeto #1
  7. 7. Arquitetura do Ger. Projeto #2
  8. 8. Fatos
  9. 9. Ok, minha vez...
  10. 10. O que temos:● Crawler – Python● Queue – 0MQ (zero mq)● NoSQL – Cassandra● SQL – MySQL● Map/Reduce – Hadoop● Indices – ElasticSearch● Web – NodeJS ● REST: Java, PHP. CACHE: memcache, membase, redis● WebServer – Nginx ● Jetty● Cache – Varnish
  11. 11. Backend[root@localhost ~]#
  12. 12. SQL● Dados Transacionais; ex: dinheiro das vendas da filial 1 + update do financeiro da filial 2.● E a busca ?● Podemos fazer um misto ?
  13. 13. SQL: where data like "%performance%" or "%fisl13%"Motorzinho SQL: full table scan.DICA: ^expr$
  14. 14. Buscas
  15. 15. FrontEnd
  16. 16. Tenha em mente que Cache É VITAL!
  17. 17. Cache HTTPHeader unset ETagExpiresActive OnExpiresByType text/css "now plus 10 years"ExpiresByType text/html "now plus 60 seconds"ExpiresByType image/gif "now plus 10 years"ExpiresByType image/png "now plus 10 years"ExpiresByType image/jpeg "now plus 10 years"ExpiresByType application/javascript "now plus 10 minutes"ExpiresByType application/x-shockwave-flash "now plus 10 years"Header append Cache-Control public env=static-contentlocation ~* .(?:ico|css|js|gif|jpe?g|png)$ { expires 30d; add_header Pragma public; add_header Cache-Control "public";}
  18. 18. Cache HTTP$ curl -I www.ig.com.brHTTP/1.1 200 OKLast-Modified: Wed, 25 Jul 2012 21:12:46 GMTCache-Control: max-age=60Expires: Wed, 25 Jul 2012 21:17:48 GMTVary: Accept-EncodingContent-Type: text/htmlContent-Length: 198883Date: Wed, 25 Jul 2012 21:17:17 GMTConnection: keep-aliveX-Cache: HITX-Age: 29 X-Varnish :)
  19. 19. Mas...minha aplicação não pode fazer cache! ● E separar conteúdo estático de dinâmico ? ● Utilizar cache em busca ao banco com:AH, e o cache (HTTP) do framework ?
  20. 20. memcached
  21. 21. MONITORAMENTO !? ● Zabbix, Cacti ● JMX, Perf4J – zabbix_get -s server -p 10050 -k "check.jmx[server:16101,br.com.corp:type=Perf4J,name=A pplicationPerf,getOfferMax]" – GrayLog2 ● nagios, zenoss ● HealthChecks – (/healthcheck?monitors=db,memcached) – Xml output + scripts – Balanceador + Healthcheck
  22. 22. DÚVIDAS ?
  23. 23. Flavio Torres, @flavio_torresEspec. Infra e sistemasiG, e agora Oi Internettorresflavio@gmail.comslideshare/flatorres

×