Como fazer seu site/blog voar baixo sem muito esforço




              Como fazer seu site/blog voar
              baixo sem muito esforço . . .




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                        Apresentação


                   ●   Vamos falar de . . .
                   ●   Cache . . .
                   ●   Objetivos . . .


         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                                # whoami

                   ●   Bruno Gurgel (@bggo);
                   ●   Entusiasta;
                   ●   Colaborador;
                   ●   Tímido contribuinte;
                   ●   Experiência;
                   ●   Certificações;
         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                              Introdução
                   ●   O site/blog
                       –   Caiu …. ?
                       –   Ta fora … ?
                       –   Ta lento … ?
                   ●   Não estou conseguindo entrar;


         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                              Introdução




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                              Introdução
                   ●   Respirem isso não é raro! . . .


                       É comum!!!




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                       Analisando o problema
                   ●   O que dizem os dados?
                       –   De onde tirar dados . .
                           ●   Logs;
                           ●   Analitycs;
                           ●   Pwiki;




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                       Analisando o problema
                   ●   Analisando o problema
                       –   Com os dados compilados:
                           ●   Podemos “Tunnar”?
                           ●   Onde está o gargalo?
                           ●   É necessário expandir?
                           ●   Qual é o tamanho das minhas páginas?
                           ●   Estou usando compactação para
                               entregar?

         @bggo             ●   O que poderia fazer que eu não estou
bruno@linux.com                fazendo . . .
Como fazer seu site/blog voar baixo sem muito esforço


                        Olhando a arquitetura




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                        Olhando a arquitetura




                  VPS;
         @bggo
                  Servidor compartilhado;
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                       E se … usarmos cache
                   ●   Falando em coisas que não
                       estamos fazendo:
                       –   Já fazemos isso?


                   ●   Cache …...
                       –   Mas não é pra limpar?

         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                       Por que usar o cache?
                   ●   Requisições
                       –   Idênticas;
                       –   Diferentes;
                   ●   Conteúdo;
                       –   Estático;
                       –   Dinâmico;
                   ●   Qual é o custo de uma requisição
                       do meu site?
         @bggo
bruno@linux.com    ●   Quanto de recurso eu gasto para
                       atender um usuário?
Como fazer seu site/blog voar baixo sem muito esforço


                          Aonde o cache entra
                   ●   Na frente;
                   ●   No lado;
                   ●   Atrás;
                   ●   Usando conscientemente;



         @bggo         Faça do cache um aliado . . .
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                           Aonde o cache entra
                   ●   Podemos fazer cache de:
                       –   Texto;
                       –   Imagens;
                       –   Vídeos;
                       –   Arquivos;
                       –   Php, Asp, Rails, Django, etc . . .


         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                           Aonde o cache entra
                   ●   Mas a linguagem é dinâmica!!!
                       –   Nem tudo é dinâmico . . .
                           ●   Requisição → processo → entrega;
                           ●   Requisições iguais não precisam ser
                               processadas mais de uma vez;
                           ●   Elementos diversos chamados pela
                               requisição podem estar em cache ou
                               não;

         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                           Aonde o cache entra
                   ●   Cautela . . .
                       –   Analise de viabilidade;
                       –   Testes;
                   ●   Atenção especial
                       –   Cookies;
                       –   Session;
                       –   Session Hijacking;
         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                Session Hijacking
                   ●   O que é;
                   ●   Como acontece;
                   ●   Como o uso errôneo do cache
                       pode acarretar isso;




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                Coitado do cache
                   ●   O vilão da história;
                   ●   Crtl + Shift + Del;
                   ●   Já limpou o cache?
                   ●   O problema é o cache, limpa e
                       testa de novo;
                         #cacheforprod
                         #donocachedev
         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                            Onde está o cache?
                   ●   Browser Cache;
                       –   Client cache;
                   ●   Server Cache;
                       –   Http Acelerator;
                       –   Proxy Reverso;



         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                 Falando de HTTP
                   ●   Cache e o Protocolo HTTP
                   ●   Capítulo 4, Varnish Book
                       –   Request;
                       –   Response;
                   ●   GET
                   ●   HEADER
                   ●   POST

         @bggo
bruno@linux.com        –   STATELESS
                       –   INDEMPOTENCE
Como fazer seu site/blog voar baixo sem muito esforço


                                Falando de HTTP




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                Falando de HTTP




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                Falando de HTTP




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                        Olhando a arquitetura




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                       O cache a nosso favor




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                                    Varnish




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                                    Varnish
                   ●   Reverse Proxy / Http Acelerator /
                       Web Acelerator
                   ●   Designerd for:
                       –   Modern Hardware
                       –   Modern O.S.
                       –   Modern Work Loads
                   ●   VLC;
         @bggo     ●   OpenSource;
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


            Mas eu só tenho um servidor

                   ●   Você pode usar o varnish com
                       um único servidor:
                       –   Varnish – 80
                       –   WebServer - ?
                   ●   https://www.varnish-
                       cache.org/docs/3.0/faq/general.ht
         @bggo         ml#can-i
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


            Mas eu só tenho um servidor




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                     Requisição com Cache




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                     Requisição com Cache




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                  Não quero usar um serviço
                    ●   Dá pra resolver de outra
                        maneira?

                    ●   Plugins
                        –   Worpress
                            ●   Wp-cache;
                            ●   Wp Super Cache;
         @bggo
                            ●   Wp File Cache
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                          Em números
                   ●   Talk is cheap!
                   ●   Show me the … numbers




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                              Demo . . .
                   ●   Murpy`s law!!!!!




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                              Demo . . .
                   ●   Murpy`s law!!!!!




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                             Benchmark


                  Varnish                             Apache




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                             Benchmark


                  Varnish                             Apache




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                            Benchmark
                   Apache




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                            Benchmark




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                            Benchmark
                   ●   VMs
                       –   2CPU;
                       –   512Mb;
                   ●   Debian
                       –   Request → Apache;
                       –   Request → Varnish → Apache;

         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                            Benchmark
                   ●   VMs
                       –   2CPU;
                       –   512Mb;
                   ●   Debian
                       –   Request → Apache;
                       –   Request → Varnish → Apache;

         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                            Benchmark
                   ●   VMs
                       –   2CPU;
                       –   512Mb;
                   ●   Debian
                       –   Request → Apache;
                       –   Request → Varnish → Apache;

         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                            Benchmark
                   ●   Recursos concorrentes
                       –   Varnish, apache, mysql
                       –   Apache, mysql




         @bggo
bruno@linux.com
Como fazer seu site/blog voar baixo sem muito esforço


                                                 Obrigado
                   ●   bruno.gurgel@gmail.com
                   ●   @bggo
                   ●   https://github.com/bggo
                   ●   www.brunogurgel.com.br



         @bggo
bruno@linux.com

Mais conteúdo relacionado

PPTX
Perdendo peso no Browser
PDF
Curso de ReactJS
PDF
Blazor #SnetTalks3
PDF
Node.js e Express
PPTX
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
PPTX
Desenvolvendo para WordPress com Docker, Git e WP-CLI
PDF
AMP Roadshow SP 2019 - Web Apps Modernas
PDF
WordCamp Rio de Janeiro 2016 - Vinícius Lourenço | Lojas Virtuais Descomplica...
Perdendo peso no Browser
Curso de ReactJS
Blazor #SnetTalks3
Node.js e Express
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...
Desenvolvendo para WordPress com Docker, Git e WP-CLI
AMP Roadshow SP 2019 - Web Apps Modernas
WordCamp Rio de Janeiro 2016 - Vinícius Lourenço | Lojas Virtuais Descomplica...

Mais procurados (20)

PPTX
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
PDF
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
PPTX
A Evolução do Front end
PDF
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
PPT
Webstandardsppt
PDF
PHP Papa-Léguas: Performance em PHP
PDF
Usando Git na Unity - Gaming For All 2021
PDF
Introdução ao Web Design: Aula 2 - IHC/UX Design
PDF
(A04 e A05) LabMM3 - JavaScript
PDF
Apresentação Wordpress FLISOL 2010
PDF
Você não precisa de uma sopa de letrinhas para criar web apps
PPSX
Desenvolvimento Ágil com Twitter Bootstrap
PDF
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?
PPTX
9 erros que desenvolvedores Node.js cometem
PDF
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for Dummies
PDF
JavaScript: Introdução e Operadores (aula 1)
PPTX
Google IO 2017 Extended - Cuiaba - Progressive Web Apps
PDF
Vagrant uma ferramenta realmente útil e versátil
PDF
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerce
PDF
Ampliando suas fronteiras com Node-Webkit
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...
Dicas para Workflow WordPress + JavaScript - WordCamp Salvador
A Evolução do Front end
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuais
Webstandardsppt
PHP Papa-Léguas: Performance em PHP
Usando Git na Unity - Gaming For All 2021
Introdução ao Web Design: Aula 2 - IHC/UX Design
(A04 e A05) LabMM3 - JavaScript
Apresentação Wordpress FLISOL 2010
Você não precisa de uma sopa de letrinhas para criar web apps
Desenvolvimento Ágil com Twitter Bootstrap
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?
9 erros que desenvolvedores Node.js cometem
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for Dummies
JavaScript: Introdução e Operadores (aula 1)
Google IO 2017 Extended - Cuiaba - Progressive Web Apps
Vagrant uma ferramenta realmente útil e versátil
WordCamp Fortaleza 2016 - Vinícius Lourenço | tAPIoca com WooCommerce
Ampliando suas fronteiras com Node-Webkit
Anúncio

Último (17)

PPTX
Analise Estatica de Compiladores para criar uma nova LP
PDF
Banco de Dados 2atualização de Banco de d
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PDF
Jira Software projetos completos com scrum
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PPT
Aula de Engenharia de Software principais caracteristicas
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PPT
Conceitos básicos de Redes Neurais Artificiais
PPTX
ccursoammaiacursoammaiacursoammaia123456
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
Analise Estatica de Compiladores para criar uma nova LP
Banco de Dados 2atualização de Banco de d
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Jira Software projetos completos com scrum
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Processos no SAP Extended Warehouse Management, EWM100 Col26
Aula de Engenharia de Software principais caracteristicas
Tipos de servidor em redes de computador.pptx
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
SEMINÁRIO DE IHC - A interface Homem-Máquina
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Conceitos básicos de Redes Neurais Artificiais
ccursoammaiacursoammaiacursoammaia123456
Processamento da remessa no SAP ERP, SCM610 Col15
Anúncio

Como aumentar a performance do seu site ou blog sem muito esforço

  • 1. Como fazer seu site/blog voar baixo sem muito esforço Como fazer seu site/blog voar baixo sem muito esforço . . . @bggo bruno@linux.com
  • 2. Como fazer seu site/blog voar baixo sem muito esforço Apresentação ● Vamos falar de . . . ● Cache . . . ● Objetivos . . . @bggo bruno@linux.com
  • 3. Como fazer seu site/blog voar baixo sem muito esforço # whoami ● Bruno Gurgel (@bggo); ● Entusiasta; ● Colaborador; ● Tímido contribuinte; ● Experiência; ● Certificações; @bggo bruno@linux.com
  • 4. Como fazer seu site/blog voar baixo sem muito esforço Introdução ● O site/blog – Caiu …. ? – Ta fora … ? – Ta lento … ? ● Não estou conseguindo entrar; @bggo bruno@linux.com
  • 5. Como fazer seu site/blog voar baixo sem muito esforço Introdução @bggo bruno@linux.com
  • 6. Como fazer seu site/blog voar baixo sem muito esforço Introdução ● Respirem isso não é raro! . . . É comum!!! @bggo bruno@linux.com
  • 7. Como fazer seu site/blog voar baixo sem muito esforço Analisando o problema ● O que dizem os dados? – De onde tirar dados . . ● Logs; ● Analitycs; ● Pwiki; @bggo bruno@linux.com
  • 8. Como fazer seu site/blog voar baixo sem muito esforço Analisando o problema ● Analisando o problema – Com os dados compilados: ● Podemos “Tunnar”? ● Onde está o gargalo? ● É necessário expandir? ● Qual é o tamanho das minhas páginas? ● Estou usando compactação para entregar? @bggo ● O que poderia fazer que eu não estou bruno@linux.com fazendo . . .
  • 9. Como fazer seu site/blog voar baixo sem muito esforço Olhando a arquitetura @bggo bruno@linux.com
  • 10. Como fazer seu site/blog voar baixo sem muito esforço Olhando a arquitetura VPS; @bggo Servidor compartilhado; bruno@linux.com
  • 11. Como fazer seu site/blog voar baixo sem muito esforço E se … usarmos cache ● Falando em coisas que não estamos fazendo: – Já fazemos isso? ● Cache …... – Mas não é pra limpar? @bggo bruno@linux.com
  • 12. Como fazer seu site/blog voar baixo sem muito esforço Por que usar o cache? ● Requisições – Idênticas; – Diferentes; ● Conteúdo; – Estático; – Dinâmico; ● Qual é o custo de uma requisição do meu site? @bggo bruno@linux.com ● Quanto de recurso eu gasto para atender um usuário?
  • 13. Como fazer seu site/blog voar baixo sem muito esforço Aonde o cache entra ● Na frente; ● No lado; ● Atrás; ● Usando conscientemente; @bggo Faça do cache um aliado . . . bruno@linux.com
  • 14. Como fazer seu site/blog voar baixo sem muito esforço Aonde o cache entra ● Podemos fazer cache de: – Texto; – Imagens; – Vídeos; – Arquivos; – Php, Asp, Rails, Django, etc . . . @bggo bruno@linux.com
  • 15. Como fazer seu site/blog voar baixo sem muito esforço Aonde o cache entra ● Mas a linguagem é dinâmica!!! – Nem tudo é dinâmico . . . ● Requisição → processo → entrega; ● Requisições iguais não precisam ser processadas mais de uma vez; ● Elementos diversos chamados pela requisição podem estar em cache ou não; @bggo bruno@linux.com
  • 16. Como fazer seu site/blog voar baixo sem muito esforço Aonde o cache entra ● Cautela . . . – Analise de viabilidade; – Testes; ● Atenção especial – Cookies; – Session; – Session Hijacking; @bggo bruno@linux.com
  • 17. Como fazer seu site/blog voar baixo sem muito esforço Session Hijacking ● O que é; ● Como acontece; ● Como o uso errôneo do cache pode acarretar isso; @bggo bruno@linux.com
  • 18. Como fazer seu site/blog voar baixo sem muito esforço Coitado do cache ● O vilão da história; ● Crtl + Shift + Del; ● Já limpou o cache? ● O problema é o cache, limpa e testa de novo; #cacheforprod #donocachedev @bggo bruno@linux.com
  • 19. Como fazer seu site/blog voar baixo sem muito esforço Onde está o cache? ● Browser Cache; – Client cache; ● Server Cache; – Http Acelerator; – Proxy Reverso; @bggo bruno@linux.com
  • 20. Como fazer seu site/blog voar baixo sem muito esforço Falando de HTTP ● Cache e o Protocolo HTTP ● Capítulo 4, Varnish Book – Request; – Response; ● GET ● HEADER ● POST @bggo bruno@linux.com – STATELESS – INDEMPOTENCE
  • 21. Como fazer seu site/blog voar baixo sem muito esforço Falando de HTTP @bggo bruno@linux.com
  • 22. Como fazer seu site/blog voar baixo sem muito esforço Falando de HTTP @bggo bruno@linux.com
  • 23. Como fazer seu site/blog voar baixo sem muito esforço Falando de HTTP @bggo bruno@linux.com
  • 24. Como fazer seu site/blog voar baixo sem muito esforço Olhando a arquitetura @bggo bruno@linux.com
  • 25. Como fazer seu site/blog voar baixo sem muito esforço O cache a nosso favor @bggo bruno@linux.com
  • 26. Como fazer seu site/blog voar baixo sem muito esforço Varnish @bggo bruno@linux.com
  • 27. Como fazer seu site/blog voar baixo sem muito esforço Varnish ● Reverse Proxy / Http Acelerator / Web Acelerator ● Designerd for: – Modern Hardware – Modern O.S. – Modern Work Loads ● VLC; @bggo ● OpenSource; bruno@linux.com
  • 28. Como fazer seu site/blog voar baixo sem muito esforço Mas eu só tenho um servidor ● Você pode usar o varnish com um único servidor: – Varnish – 80 – WebServer - ? ● https://www.varnish- cache.org/docs/3.0/faq/general.ht @bggo ml#can-i bruno@linux.com
  • 29. Como fazer seu site/blog voar baixo sem muito esforço Mas eu só tenho um servidor @bggo bruno@linux.com
  • 30. Como fazer seu site/blog voar baixo sem muito esforço Requisição com Cache @bggo bruno@linux.com
  • 31. Como fazer seu site/blog voar baixo sem muito esforço Requisição com Cache @bggo bruno@linux.com
  • 32. Como fazer seu site/blog voar baixo sem muito esforço Não quero usar um serviço ● Dá pra resolver de outra maneira? ● Plugins – Worpress ● Wp-cache; ● Wp Super Cache; @bggo ● Wp File Cache bruno@linux.com
  • 33. Como fazer seu site/blog voar baixo sem muito esforço Em números ● Talk is cheap! ● Show me the … numbers @bggo bruno@linux.com
  • 34. Como fazer seu site/blog voar baixo sem muito esforço Demo . . . ● Murpy`s law!!!!! @bggo bruno@linux.com
  • 35. Como fazer seu site/blog voar baixo sem muito esforço Demo . . . ● Murpy`s law!!!!! @bggo bruno@linux.com
  • 36. Como fazer seu site/blog voar baixo sem muito esforço Benchmark Varnish Apache @bggo bruno@linux.com
  • 37. Como fazer seu site/blog voar baixo sem muito esforço Benchmark Varnish Apache @bggo bruno@linux.com
  • 38. Como fazer seu site/blog voar baixo sem muito esforço Benchmark Apache @bggo bruno@linux.com
  • 39. Como fazer seu site/blog voar baixo sem muito esforço Benchmark @bggo bruno@linux.com
  • 40. Como fazer seu site/blog voar baixo sem muito esforço Benchmark ● VMs – 2CPU; – 512Mb; ● Debian – Request → Apache; – Request → Varnish → Apache; @bggo bruno@linux.com
  • 41. Como fazer seu site/blog voar baixo sem muito esforço Benchmark ● VMs – 2CPU; – 512Mb; ● Debian – Request → Apache; – Request → Varnish → Apache; @bggo bruno@linux.com
  • 42. Como fazer seu site/blog voar baixo sem muito esforço Benchmark ● VMs – 2CPU; – 512Mb; ● Debian – Request → Apache; – Request → Varnish → Apache; @bggo bruno@linux.com
  • 43. Como fazer seu site/blog voar baixo sem muito esforço Benchmark ● Recursos concorrentes – Varnish, apache, mysql – Apache, mysql @bggo bruno@linux.com
  • 44. Como fazer seu site/blog voar baixo sem muito esforço Obrigado ● bruno.gurgel@gmail.com ● @bggo ● https://github.com/bggo ● www.brunogurgel.com.br @bggo bruno@linux.com