Escalabilidade em Aplicações - Fisl13

  • 508 views
Uploaded 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 …

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.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
508
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
11
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Escalabilidade em aplicações DevOps Flavio Torres, @flavio_torres Espec. em infra e sistemas iG, e agora Oi Internet
  • 2. Agenda●Arquiteturas●WebServers: apache, nginx●Aplicações: PHP, Java, Rails, Python, Nodejs●SQL●NoSQL●Headers HTTP●Cache Varnish ou Nginx●Monitoramento
  • 3. Arquitetura desejada!
  • 4. Arquitetura entregue
  • 5. Tempo é investimento!● Faça “em casa”● OU, participe de todo o processo, avalie propostas● Bom entendimento, boa arquitetura ... veja!
  • 6. Arquitetura do Ger. Projeto #1
  • 7. Arquitetura do Ger. Projeto #2
  • 8. Fatos
  • 9. Ok, minha vez...
  • 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. Backend[root@localhost ~]#
  • 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. SQL: where data like "%performance%" or "%fisl13%"Motorzinho SQL: full table scan.DICA: ^expr$
  • 14. Buscas
  • 15. FrontEnd
  • 16. Tenha em mente que Cache É VITAL!
  • 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. 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. 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. memcached
  • 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. DÚVIDAS ?
  • 23. Flavio Torres, @flavio_torresEspec. Infra e sistemasiG, e agora Oi Internettorresflavio@gmail.comslideshare/flatorres