Este documento discute como implementar cache para melhorar o desempenho de sites e blogs. Ele explica como analisar logs e métricas para identificar gargalos, como configurar cache no navegador, servidor e plugins, e demonstra como o Varnish pode acelerar sites ao cachear conteúdo estático e dinâmico.
Elevadores têm espelhos para distrair as pessoas do medo de altura e dar a percepção de que o elevador é mais rápido. Quando os elevadores foram introduzidos, as pessoas ficavam assustadas com a altura e reclamavam que eram lentos. Os espelhos mudaram a perspectiva das pessoas, reduzindo a percepção do tempo de viagem.
Curso introdutório de ReactJS.
ReactJS é uma ferramente de desenvolvimento Web criada pelo Facebook.
No curso abordaremos uma abordagem introdutória ao assunto, explorando o básico para desenvolver um site somente com front-end
Partindo de uma introdução ao Node, entenderemos o funcionamento da Engine JavaScript V8, o Loop de Eventos, o Ambiente de Desenvolvimento até criarmos um pequeno Microsserviço com Node.js e o framework Express.
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...Bruno Rodrigo S. Souza
O documento descreve como configurar um servidor Nginx de alta performance para WordPress em 10 minutos usando a ferramenta de linha de comando "EasyEngine". A ferramenta instala e otimiza o Nginx, PHP, banco de dados e WordPress com um único comando e fornece ferramentas administrativas para gerenciamento. O documento também discute outros pontos como backups, atualizações e distribuições Linux suportadas.
AMP Roadshow SP 2019 - Web Apps ModernasDan Vitoriano
O documento discute as tecnologias para desenvolvimento de aplicativos web modernos, incluindo Progressive Web Apps (PWAs), Angular, Vue, React e outras. PWAs permitem que sites se comportem como aplicativos nativos em dispositivos móveis. Angular, Vue e React são frameworks populares para criar interfaces ricas e responsivas.
WordCamp Rio de Janeiro 2016 - Vinícius Lourenço | Lojas Virtuais Descomplica...Vinícius Lourenço
Palestra apresentada no WordCamp Rio de Janeiro 2016. A idéia da apresentação foi abordar as facilidades da utilização de uma loja virtual usando WooCommerce, como também os benefícios ao migrar um projeto (em Magento) para WooCommerce. Relatarei também o processo de desenvolvimento no meio do caminho, alguns relatos dos clientes e as soluções desenvolvidas para as complicações que o cliente enfrentava usando a plataforma anterior.
Elevadores têm espelhos para distrair as pessoas do medo de altura e dar a percepção de que o elevador é mais rápido. Quando os elevadores foram introduzidos, as pessoas ficavam assustadas com a altura e reclamavam que eram lentos. Os espelhos mudaram a perspectiva das pessoas, reduzindo a percepção do tempo de viagem.
Curso introdutório de ReactJS.
ReactJS é uma ferramente de desenvolvimento Web criada pelo Facebook.
No curso abordaremos uma abordagem introdutória ao assunto, explorando o básico para desenvolver um site somente com front-end
Partindo de uma introdução ao Node, entenderemos o funcionamento da Engine JavaScript V8, o Loop de Eventos, o Ambiente de Desenvolvimento até criarmos um pequeno Microsserviço com Node.js e o framework Express.
Palestra WordCamp RJ 2016 Configure um servidor Nginx de alta performance par...Bruno Rodrigo S. Souza
O documento descreve como configurar um servidor Nginx de alta performance para WordPress em 10 minutos usando a ferramenta de linha de comando "EasyEngine". A ferramenta instala e otimiza o Nginx, PHP, banco de dados e WordPress com um único comando e fornece ferramentas administrativas para gerenciamento. O documento também discute outros pontos como backups, atualizações e distribuições Linux suportadas.
AMP Roadshow SP 2019 - Web Apps ModernasDan Vitoriano
O documento discute as tecnologias para desenvolvimento de aplicativos web modernos, incluindo Progressive Web Apps (PWAs), Angular, Vue, React e outras. PWAs permitem que sites se comportem como aplicativos nativos em dispositivos móveis. Angular, Vue e React são frameworks populares para criar interfaces ricas e responsivas.
WordCamp Rio de Janeiro 2016 - Vinícius Lourenço | Lojas Virtuais Descomplica...Vinícius Lourenço
Palestra apresentada no WordCamp Rio de Janeiro 2016. A idéia da apresentação foi abordar as facilidades da utilização de uma loja virtual usando WooCommerce, como também os benefícios ao migrar um projeto (em Magento) para WooCommerce. Relatarei também o processo de desenvolvimento no meio do caminho, alguns relatos dos clientes e as soluções desenvolvidas para as complicações que o cliente enfrentava usando a plataforma anterior.
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...E-Commerce Brasil
David Robert, CTO da Elo7, fala sobre "O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin" no Fórum E-Commerce Brasil 2017. Saiba mais em https://www.ecommercebrasil.com.br/forum2017/
O documento descreve a evolução da profissão de desenvolvedor front-end ao longo dos anos, desde os sites simples da década de 90 até as aplicações complexas e multiplataforma de hoje que utilizam diversas tecnologias como frameworks JavaScript, pré-processadores de CSS, testes automatizados e o conceito de Progressive Web Apps. A profissão tornou-se mais especializada com a separação entre design e desenvolvimento e o surgimento de novas linguagens e ferramentas.
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuaisWilliam Oliveira
Palestra apresentada no FEMUG-ABC com o intuito de convencer os desenvolvedores da necessidade de se aprender/estudar JavaScript e como se adequar ao mercado de trabalho atual.
Versão original com anotações, links importantes e os gifs legais: https://docs.google.com/presentation/d/15St9PXpif87PIqWnIuP3Xfr-kOPJvnssWIt_cLpnoRI/edit?usp=sharing
O documento apresenta um resumo sobre Douglas Lopes, um especialista em webstandards. Ele discute o que são webstandards, como HTML é usado para semântica, CSS para estilo e JavaScript para comportamento. O documento também fornece 10 dicas importantes sobre o desenvolvimento web, incluindo usar tabelas apenas para dados tabulares, fazer aplicações stateless e nomear elementos HTML de forma inteligível.
O documento discute estratégias para melhorar o desempenho de aplicações PHP, focando principalmente nos pontos a seguir:
1) A maior parte dos problemas de desempenho está no frontend, não no backend PHP. É importante otimizar assets como imagens, CSS e JavaScript.
2) Ferramentas como PageSpeed Insights e YSlow ajudam a diagnosticar gargalos e sugerir melhorias. Técnicas como minificação, cache, CDNs e redução de requisições HTTP são fundamentais.
3) É crucial equilibrar performance e segurança, remo
Usando Git na Unity - Gaming For All 2021Erik Cruz
O documento fornece uma introdução sobre como usar o Git na Unity, incluindo: 1) Uma explicação do que é o Git e como ele pode ser usado; 2) Demonstração dos principais comandos do Git como commit, push, pull e merge; 3) Uma discussão sobre branches e como eles podem ser usados para isolar mudanças.
O documento discute os padrões web, incluindo que são recomendações do W3C para tornar a web acessível para todos e o papel do W3C na criação de padrões. Também lista os principais grupos de padrões web e fases e categorias de entregáveis de UX.
JavaScript é uma linguagem de programação interpretada utilizada para adicionar interatividade às páginas web. Pode ser incluída no HTML através de tags <script> e manipula o Document Object Model (DOM) para alterar dinamicamente o conteúdo e estilo das páginas.
O documento fornece informações sobre o WordPress, incluindo: (1) é um sistema de gerenciamento de conteúdo escrito em PHP e armazenado em MySQL, (2) foi criado originalmente como um fork do b2 e ganhou popularidade em 2004, (3) é comumente estendido para fornecer mais funcionalidades além de um blog simples através de páginas, plugins e temas.
Você não precisa de uma sopa de letrinhas para criar web appsWilliam Oliveira
Este documento fornece uma introdução sobre o desenvolvimento de aplicações web front-end com JavaScript. Discute tópicos como pré-processadores de CSS, ferramentas de automação como Webpack, frameworks como Angular e React, e enfatiza a importância de escolher as ferramentas com as quais você se sente mais confortável.
Desenvolvimento Ágil com Twitter BootstrapFlavio Souza
O documento descreve o framework Bootstrap, incluindo sua história, funcionalidades e componentes. O Bootstrap foi desenvolvido pelo Twitter para padronizar e agilizar o desenvolvimento front-end e hoje é um framework open-source popular. Ele fornece elementos HTML e CSS pré-estilizados para criar rapidamente layouts responsivos e compatíveis entre navegadores.
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?Vinícius Lourenço
Palestra apresentada no Fórum Internacional do Software Livre 2017, em Porto Alegre. A idéia da apresentação foi de introduzir o público ao universo WordPress e apresentar alguns exemplos do que pode ser feito com o CMS.
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for DummiesVinícius Lourenço
Este documento fornece uma introdução ao WordPress, incluindo como ele é usado para 25% de todos os sites, como é de código aberto e escrito em PHP e MySQL, e como pode ser usado para criar blogs, portais, lojas virtuais e redes sociais através de temas, plugins e frameworks como WooCommerce e BuddyPress. Também discute oportunidades de trabalho com WordPress, como criação de temas, plugins e consultorias.
O documento apresenta a ferramenta Vagrant como uma forma de facilitar a configuração e gerenciamento de ambientes de desenvolvimento através de máquinas virtuais. Ele descreve como o Vagrant permite criar rapidamente ambientes isolados com todas as dependências instaladas em menos de 15 minutos, e como essas configurações podem ser compartilhadas através de "boxes" prontas para uso. Também mostra os passos básicos para instalar e configurar o Vagrant em diferentes sistemas operacionais.
A apresentação discute a API do WooCommerce e como desenvolvedores podem aprender e contribuir com ela. Apresenta a documentação completa da API como uma excelente forma de aprendizado e encoraja os desenvolvedores a propor melhorias na documentação e código, contribuindo para a comunidade WooCommerce.
Ampliando suas fronteiras com Node-WebkitBeto Muniz
O documento apresenta o node-webkit, um runtime que permite criar aplicativos desktop usando HTML, CSS e JavaScript. Ele integra funcionalidades do Node.js e do Webkit para permitir acesso a recursos do sistema operacional como notificações e arquivos. O documento explica como instalar e iniciar aplicativos com node-webkit.
Faça seu portal voar usando o plone.app.cachingFabiano Weimar
Este documento discute como melhorar o desempenho de sites Plone usando o pacote plone.app.caching. Ele descreve brevemente o histórico do cache no Plone, como o plone.app.caching melhorou em relação a soluções anteriores e fornece perfis de cache padrão. Além disso, explica como configurar regras de cache e operações de cache comuns.
O documento fornece uma introdução sobre web designers e conceitos relacionados ao desenvolvimento front-end de páginas da web. Explica o que é um web designer, front-end, back-end e ferramentas como HTML5, CSS3, jQuery, PHP, Bootstrap e CMS. Também discute como hospedar um site na internet e terminações de domínio comuns.
O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin -...E-Commerce Brasil
David Robert, CTO da Elo7, fala sobre "O uso de PWA e o futuro do desenvolvimento mobile com React Native e Kotlin" no Fórum E-Commerce Brasil 2017. Saiba mais em https://www.ecommercebrasil.com.br/forum2017/
O documento descreve a evolução da profissão de desenvolvedor front-end ao longo dos anos, desde os sites simples da década de 90 até as aplicações complexas e multiplataforma de hoje que utilizam diversas tecnologias como frameworks JavaScript, pré-processadores de CSS, testes automatizados e o conceito de Progressive Web Apps. A profissão tornou-se mais especializada com a separação entre design e desenvolvimento e o surgimento de novas linguagens e ferramentas.
JavaScript e o perfil do desenvolvedor front end das atualidades mais atuaisWilliam Oliveira
Palestra apresentada no FEMUG-ABC com o intuito de convencer os desenvolvedores da necessidade de se aprender/estudar JavaScript e como se adequar ao mercado de trabalho atual.
Versão original com anotações, links importantes e os gifs legais: https://docs.google.com/presentation/d/15St9PXpif87PIqWnIuP3Xfr-kOPJvnssWIt_cLpnoRI/edit?usp=sharing
O documento apresenta um resumo sobre Douglas Lopes, um especialista em webstandards. Ele discute o que são webstandards, como HTML é usado para semântica, CSS para estilo e JavaScript para comportamento. O documento também fornece 10 dicas importantes sobre o desenvolvimento web, incluindo usar tabelas apenas para dados tabulares, fazer aplicações stateless e nomear elementos HTML de forma inteligível.
O documento discute estratégias para melhorar o desempenho de aplicações PHP, focando principalmente nos pontos a seguir:
1) A maior parte dos problemas de desempenho está no frontend, não no backend PHP. É importante otimizar assets como imagens, CSS e JavaScript.
2) Ferramentas como PageSpeed Insights e YSlow ajudam a diagnosticar gargalos e sugerir melhorias. Técnicas como minificação, cache, CDNs e redução de requisições HTTP são fundamentais.
3) É crucial equilibrar performance e segurança, remo
Usando Git na Unity - Gaming For All 2021Erik Cruz
O documento fornece uma introdução sobre como usar o Git na Unity, incluindo: 1) Uma explicação do que é o Git e como ele pode ser usado; 2) Demonstração dos principais comandos do Git como commit, push, pull e merge; 3) Uma discussão sobre branches e como eles podem ser usados para isolar mudanças.
O documento discute os padrões web, incluindo que são recomendações do W3C para tornar a web acessível para todos e o papel do W3C na criação de padrões. Também lista os principais grupos de padrões web e fases e categorias de entregáveis de UX.
JavaScript é uma linguagem de programação interpretada utilizada para adicionar interatividade às páginas web. Pode ser incluída no HTML através de tags <script> e manipula o Document Object Model (DOM) para alterar dinamicamente o conteúdo e estilo das páginas.
O documento fornece informações sobre o WordPress, incluindo: (1) é um sistema de gerenciamento de conteúdo escrito em PHP e armazenado em MySQL, (2) foi criado originalmente como um fork do b2 e ganhou popularidade em 2004, (3) é comumente estendido para fornecer mais funcionalidades além de um blog simples através de páginas, plugins e temas.
Você não precisa de uma sopa de letrinhas para criar web appsWilliam Oliveira
Este documento fornece uma introdução sobre o desenvolvimento de aplicações web front-end com JavaScript. Discute tópicos como pré-processadores de CSS, ferramentas de automação como Webpack, frameworks como Angular e React, e enfatiza a importância de escolher as ferramentas com as quais você se sente mais confortável.
Desenvolvimento Ágil com Twitter BootstrapFlavio Souza
O documento descreve o framework Bootstrap, incluindo sua história, funcionalidades e componentes. O Bootstrap foi desenvolvido pelo Twitter para padronizar e agilizar o desenvolvimento front-end e hoje é um framework open-source popular. Ele fornece elementos HTML e CSS pré-estilizados para criar rapidamente layouts responsivos e compatíveis entre navegadores.
FISL17 - Vinícius Lourenço | WordPress - Como começar e o que dá para ser feito?Vinícius Lourenço
Palestra apresentada no Fórum Internacional do Software Livre 2017, em Porto Alegre. A idéia da apresentação foi de introduzir o público ao universo WordPress e apresentar alguns exemplos do que pode ser feito com o CMS.
Springpoint São Paulo 2016 - Vinícius Lourenço | WordPress for DummiesVinícius Lourenço
Este documento fornece uma introdução ao WordPress, incluindo como ele é usado para 25% de todos os sites, como é de código aberto e escrito em PHP e MySQL, e como pode ser usado para criar blogs, portais, lojas virtuais e redes sociais através de temas, plugins e frameworks como WooCommerce e BuddyPress. Também discute oportunidades de trabalho com WordPress, como criação de temas, plugins e consultorias.
O documento apresenta a ferramenta Vagrant como uma forma de facilitar a configuração e gerenciamento de ambientes de desenvolvimento através de máquinas virtuais. Ele descreve como o Vagrant permite criar rapidamente ambientes isolados com todas as dependências instaladas em menos de 15 minutos, e como essas configurações podem ser compartilhadas através de "boxes" prontas para uso. Também mostra os passos básicos para instalar e configurar o Vagrant em diferentes sistemas operacionais.
A apresentação discute a API do WooCommerce e como desenvolvedores podem aprender e contribuir com ela. Apresenta a documentação completa da API como uma excelente forma de aprendizado e encoraja os desenvolvedores a propor melhorias na documentação e código, contribuindo para a comunidade WooCommerce.
Ampliando suas fronteiras com Node-WebkitBeto Muniz
O documento apresenta o node-webkit, um runtime que permite criar aplicativos desktop usando HTML, CSS e JavaScript. Ele integra funcionalidades do Node.js e do Webkit para permitir acesso a recursos do sistema operacional como notificações e arquivos. O documento explica como instalar e iniciar aplicativos com node-webkit.
Faça seu portal voar usando o plone.app.cachingFabiano Weimar
Este documento discute como melhorar o desempenho de sites Plone usando o pacote plone.app.caching. Ele descreve brevemente o histórico do cache no Plone, como o plone.app.caching melhorou em relação a soluções anteriores e fornece perfis de cache padrão. Além disso, explica como configurar regras de cache e operações de cache comuns.
O documento fornece uma introdução sobre web designers e conceitos relacionados ao desenvolvimento front-end de páginas da web. Explica o que é um web designer, front-end, back-end e ferramentas como HTML5, CSS3, jQuery, PHP, Bootstrap e CMS. Também discute como hospedar um site na internet e terminações de domínio comuns.
Este documento apresenta Felipe Augusto Bastos Moraes e seu minicurso sobre ArangoDB e Python para dados multimodelos. Ele fornece informações sobre o palestrante, downloads e instalação de ArangoDB, Python e drivers, demonstrações da interface web do ArangoDB e exemplos básicos de uso do Python com ArangoDB.
Apresentação feita para o treinamento dos colaboradores da Vitrio.
Público alvo do treinamento: Analistas de conteúdo, Designers e equipe de Marketing Digital.
O principal assunto era uma breve introdução ao JavaScript ,jQuery e plugins. Entretanto, abrangemos outros tópicos, tais como: Desenvolvimento em Camadas, requisições, performance de web sites e algumas ferramentas.
O documento descreve o aplicativo Pagestackr, criado em 48 horas para o evento RejectConf SP. Ele fala sobre como o aplicativo foi desenvolvido e como lidar com a escalabilidade caso ele ganhe popularidade, mencionando estratégias como usar servidores proxy, cache de fragmentos, replicação de bancos de dados e bancos de dados alternativos. Também lista projetos open source relacionados a monitoramento e escalabilidade.
O documento apresenta o framework Django para desenvolvimento web, descrevendo suas principais características como um poderoso ORM, sistema de templates eficiente e admin integrado. Também discute recursos adicionais como debug toolbar, extensões e hospedagem em serviços na nuvem.
(In Portuguese) Workshop de Domain-Driven DesignPhil Calçado
Slides utilizados nas turmas do workshop de Domain-Driven Design da Caelum ( http://www.caelum.com.br/curso/ws-46-domain-driven-design/ )
WS-46 | Domain-Driven Design
A idéia é cobrir os principais aspectos desta filosofia de design de uma maneira descontraída mas substancial. O que Domain-Driven Design traz de volta é a possibilidade de utilizar as vantagens da Orientação a Objetos para criamos um modelo que reflita o mundo real de maneira mais íntima. Você não precisa sequer de objetos para aplicar o coração de Domain-Driven Design, ou mesmo seus Patterns.
Neste contexto, DDD é programar para o domínio. Quando você usa esta técnica, seu software (sua camada de negócios, quase sempre) reflete o conhecimento do domínio do seu usário, você modela os conceitos do problema de uma maneira clara no software.
Ao invés de simplesmente criar estruturas de dados e algoritmos, você implementa conceitos e através deles cria um entendimento muito maior sobre o que seu sistema faz para seus usuários, você e para quem for ler seu programa.
Este documento compara diversas plataformas de criação de sites web para a escolha da melhor ferramenta para uma empresa fictícia de armazenamento digital. Analisa o WordPress, Blogger, Google Sites, Weebly, Webnode e Wix, considerando aspectos como controle, segurança e facilidade de uso. Escolhe o Wix por permitir englobar todas as áreas de gestão pretendidas de forma gráfica atraente e com uma loja de aplicações.
Django é um framework web escrito em Python lançado em 2005 que promove princípios como DRY e separação de preocupações através do padrão MVC. Ele fornece funcionalidades como ORM, templates e administração para auxiliar no desenvolvimento rápido de aplicações web.
O documento discute as vantagens do WordPress como plataforma para desenvolvimento de sites e redes sociais. Inicialmente criado para blogs, o WordPress evoluiu para ser um sistema de gerenciamento de conteúdo (CMS) flexível com milhares de plugins e temas disponíveis que o tornam uma ferramenta poderosa e amigável para criação de sites de todos os portes.
Preparando seu e-commerce para a Black FridayUmbler
Workshop da Umbler no iMasters DevCommerce mostra como otimizar seu e-commerce para a Black Friday com Magento, MySQL, Apache, PHP, CloudFlare e dicas para o site. Resultados de testes antes e depois das otimizações.
DevCommerce Conference 2016 - Workshop: Planejamento de infra do e-commerce p...iMasters
Cristiano Diedrich, Container Specialist e Allan Miguel Moraes, Linux Systems Administrator, da Umbler, ministraram o workshop "Planejamento de infra do e-commerce para a Black Friday", no DevCommerce Conference 2016.
O DevCommerce Conference 2016 aconteceu nos dias 06 e 07 de junho de 2016, no Hotel Tivoli em São Paulo-SP http://devcommerce2016.imasters.com.br/
Dicas para otimizar o WordPress por Felipe FigueiredoWordCamp Floripa
O documento fornece dicas para otimizar o desempenho de sites em WordPress, incluindo a importância de se ter um bom host, gerenciar plugins e temas, usar ferramentas de análise e cache, otimizar imagens, e instalar fonts e analytics localmente.
Este documento fornece um resumo sobre o framework Grails:
1) Grails é um framework para desenvolvimento web baseado em Java que utiliza a linguagem Groovy;
2) Ele permite alta produtividade através de convenções que eliminam a necessidade de configuração;
3) Grails usa o padrão MVC e o ORM Hibernate para mapear classes de domínio em tabelas do banco de dados.
Este documento fornece dicas sobre otimização para mecanismos de busca (SEO) no WordPress. Ele recomenda plugins para segurança, otimização de banco de dados e imagens, além de dicas sobre arquitetura de site, meta tags, links internos e externo e propagação de conteúdo.
Este documento fornece uma introdução comparativa entre Python e Golang, discutindo suas capacidades de concorrência, aplicações típicas, instalação e criação de programas simples em ambas as linguagens. O autor conclui que Python e Golang são ferramentas úteis para problemas distintos, com Python focado em produtividade e Golang em concorrência.
O documento descreve o que são blogs, sua evolução a partir de diários online e como as ferramentas facilitaram sua popularização. Explica também como criar uma conta no Blogger e começar a editar e configurar um blog, incluindo a adição de templates e widgets.
PHP Turbinado com CodeIgniter - Conisli 2011Evaldo Junior
Este documento apresenta o framework PHP CodeIgniter. Resume as seguintes informações essenciais:
1) Apresenta a história do PHP e como o CodeIgniter ajuda a resolver problemas comuns em projetos PHP grandes;
2) Explica os principais recursos e benefícios do CodeIgniter como MVC, facilidade de uso, documentação, entre outros;
3) Demonstra como o CodeIgniter organiza controllers, models, views e URLs de forma simples e padronizada.
O documento discute frameworks para desenvolvimento serverless com Python, introduz o palestrante Chico e conceitos como FaaS, PaaS e BaaS. Apresenta vantagens como escalabilidade e ausência de preocupações com infraestrutura, e desvantagens como limitação de linguagens e lock-in com provedores. Exemplifica os frameworks Zappa, Chalice, Serverless e Rubãoless para desenvolvimento serverless com Python.
Semelhante a Como aumentar a performance do seu site ou blog sem muito esforço (20)
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