Ir para o conteúdo
ou

Software livre Brasil

Tela cheia
 Feed RSS

Blog

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.
cover do http://fernandoike.com

Fazendo seu site voar com Pagespeed

31 de Julho de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Front End Optimization (FEO) é um dos buzzwords mais comentados nos últimos tempos. São vários métodos/técnicas que permite ao navegador carregar mais rapidamente as páginas HTML.

De certa foram, FEO é uma área parecida com segurança para uma equipe de desenvolvimento. Exige muito tempo e atenção aos detalhes mas se incorporado, permite ganhos visíveis de audiência, conversão de vendas, etc.

Muito avaliam que investir em FEO é um desperdício porque o mundo (em sua maioria) está indo em direção aos aplicativos nativos das plataformas móvel (mobile) ao invés de concentrar todos os esforços em aplicações base HTML(5). Fato ou não as duas formas coexistirão mas isso fica para um próximo texto. Voltando ao assunto título deste texto: Pagespeed

Ele é um serviço de otimização de sites alterando as páginas de um site para obter a melhor performance possível usando coisas como: CSS sprites, otimização de imagens, defer de javascript, minify, etc. Se você não quiser usar o serviço e usá-lo diretamente no seu servidor web pode pois o código do módulo é Código Aberto (Apache License). A restrição é que é que o módulo está disponível para Nginx e Apache.

Os testes foram realizados usando Apache e Debian Wheezy e meu blog com Octopress. Na página do módulo tem os detalhes da instalação, basicamente é baixar o pacote .deb e instalá-lo.

#wget -c https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
#dpkg -i mod-pagespeed-stable_current_amd64.deb

Por padrão o módulo não é ativo, pode fazê-lo diretamente no VirtualHost ou a ativar para todos os existentes. Mas cuidado, não vá alterar habilitar para todos os sites pois algumas alterações podem quebrar o layout do site. Faça uma homologação antes. Para este teste foi alterado o pagespeed.conf em /etc/apache2/mods-avaliable/pagespeed.conf de Off para On e depois ativado com a2enmod.

#vi /etc/apache2/mods-available/pagespeed.conf

    # Turn on mod_pagespeed. To completely disable mod_pagespeed, you
    # can set this to "off".
    ModPagespeed on
[...]

#a2enmod pagespeed

A documentação é bem detalhada e recomendo uma leitura dela. Se quiser ver como um filtro é aplicado, pode ver no Modpagespeed. Os detalhes de cada uma pode acessar aqui.

#vi /etc/apache2/site-avaliable/www.fernandoike.com
[...]
        ModPagespeedEnableFilters combine_css
        ModPagespeedEnableFilters combine_javascript
        ModPagespeedEnableFilters rewrite_css,sprite_images
        ModPagespeedEnableFilters rewrite_javascript
        ModPagespeedEnableFilters inline_css
        ModPagespeedEnableFilters inline_javascript
        ModPagespeedEnableFilters rewrite_images
        ModPagespeedEnableFilters insert_img_dimensions
        ModPagespeedEnableFilters remove_comments
        ModPagespeedEnableFilters extend_cache
        ModPagespeedEnableFilters remove_quotes
        ModPagespeedEnableFilters defer_javascript
        ModPagespeedEnableFilters flatten_css_imports
        ModPagespeedEnableFilters lazyload_images
        ModPagespeedEnableFilters recompress_images
        ModPagespeedEnableFilters move_css_above_scripts
        ModPagespeedDomain http://www.fernandoike.com

[...]

Feito as configurações, vamos aos resultados. Eles foram feito com o
Webpagetest (WPT) e todos baseados no Firefox e uma conexão de 5 Mbit/s.

Teste feito em Virgínia nos EUA sem PageSpeed.

O Document Complete (tempo que o navegador levou para deixar a página “pronta” para usar) ou Onload foi entregue me 3,972 segundos, 56 requisições e 1.535 Kbytes de tamanho. Um bom resultado para um blog.

Teste feito em Virgínia nos EUA com PageSpeed.

Teste feito em São Paulo sem PageSpeed.

Teste feito em São Paulo com PageSpeed.

Tabulando para facilitar a comparação:

EUA

Virginia s/ PageSpeed c/ PageSpeed
Doc Complete 3,972 seg. 2,451 seg.
Requisicoes 56 39
Tamanho 1.535 Kbytes 646 Kbytes

Brasil

São Paulo s/ PageSpeed c/ PageSpeed
Doc Complete 6,360 seg. 4,696 seg.
Requisicoes 51 40
Tamanho 1.535 Kbytes 941 Kbytes

O resultado com PageSpeed em Virgínia teve uma redução drástica no tamanho da página, em torno de 42%, 39% no Doc Complete e 30% em requisições.

Agora em São Paulo as reduções foram: 39% no tamanho da página, 26% no Doc Complete e 22% de requisições.

Fazendo configurações básicas dos filtros do PageSpeed consegue uma boa otimização. Considerando o baixo esforço para implementá-lo, é altamente recomendável mas é importante homologar as alterações feitas por ele porque
pode quebrar o layout das páginas.

A distância geográfica impacta na experiência do usuário, como o servidor do teste está em Dallas e Virgínia é mais perto que São Paulo, é perceptível o impacto no tempo do Doc Complete ao comparar as duas localidades. Existem maneiras de melhorar o resultado de São Paulo se usar uma CDN mas isso fica para outro texto.



Fim do The H

29 de Julho de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Semana passada o “The H” fechou suas portas. No últimos anos ele foi uma boa fonte de informação do que acontece no mundo do Código Aberto/Software Livre. Seus textos eram bem detalhados, principalmente os relacionados ao Kernel Linux.

O último texto publicado foi sobre dez melhores histórias. Vale a leitura.

Uma pena mesmo, junto com o Slashdot e o LWN fazia uma boa trinca.



Estou um pouco mais ágil: Scrum

20 de Julho de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Há um pouco mais de um ano atrás eu decidi que iria mudar o foco da minha carreira profissional, desde então tenho estudado e aplicado em alguns projetos pessoais que tem gerado boas surpresas.

Essa aqui abaixo é uma delas. :)

Claro que um certificado com esse não é que define se alguém é ou poderá ser um bom ScrumMaster. Venho aplicando Scrum em alguns projetos já algum tempo, mas agora posso dizer que “oficialmente” sou um ScrumMaster.



Debian e sua CDN (2)

18 de Julho de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Lembra do post anterior sobre a(s) [CDN(s)][] do [Debian][]? Se não lembra ou não leu, vale ler antes desse aqui. ;)

O anterior comentava um pouco do funcionamento da implantação do CDN baseada em DNS. Dessa vez é comentar um pouco sobre outra “forma” de CDN, esta é baseada em redirecionamento HTTP. A método para usuário é simples, é apenas um redirecionamento (Código HTTP 302) para o local onde o serviço identifica que o usuário terá melhor desempenho para baixar os pacotes Debian.

Um teste simples realizado no Brasil.

fike@klatoon:~$ curl -I http://http.debian.net/debian/
HTTP/1.1 302 Moved Temporarily
Date: Thu, 18 Jul 2013 01:25:40 GMT
Server: Apache/2.2.16 (Debian)
Vary: x-web-demo,Accept-Encoding
X-IP: 179.186.50.212
X-AS: 18881
X-URL: 
X-Arch: 
X-Country: BR
X-Continent: SA
X-Std-Dev: 12.0185273640326
X-Population: 4
X-Closest-Distance: 0
X-Distance: 0
X-Match-Type: country
Link: ; rel=duplicate; pri=1; depth=0, ; rel=duplicate; pri=1; depth=0
Location: http://debian.c3sl.ufpr.br/debian/
Content-Type: text/plain

Na resposta do servidor a requisição realizado pelo curl tem vários cabeçalhos que ajudam entender o funcionamento. O servidor do http.debian.net identifica o IP de origem da requisição, o país, o Autonomous System (AS), etc. Ao final tem o cabeçalho Location apontando qual será a URL que responderá a requisição.

Abaixo o mesmo teste mas realizado nos EUA.

fike@midstorm:~$ curl -I http://http.debian.net/debian/
HTTP/1.1 302 Moved Temporarily
Date: Thu, 18 Jul 2013 01:26:07 GMT
Server: Apache/2.2.16 (Debian)
Vary: x-web-demo,Accept-Encoding
X-IP: 74.50.55.64
X-AS: 36024
X-URL: 
X-Arch: 
X-Country: US
X-Continent: NA
X-Std-Dev: 3.5960358730135
X-Population: 15
X-Closest-Distance: 13.434
X-Distance: 13.434
X-Match-Type: country
Location: http://debian.gtisc.gatech.edu/debian/
Content-Type: text/plain

Interessante que no teste dos EUA tem um pouco mais de informações que melhoram a escolha do melhor espelho (mirror) do repositório Debian para para a requisição.

Se quiser conhecer um pouco mais pode entrar na página do projeto no Github. Ele bem simples e o Raphael Geissert ficará feliz com informações de bugs, patches, etc. ;)

Ah! Já estava esquecendo, se quiser testá-lo, basta adicionar uma linha no /etc/apt/sources.list. No meu caso estou usando para o Sid/Unstable.

deb [arch=amd64,i386] http://http.debian.net/debian/ unstable main contrib non-free


Instalando LOIC no Debian

12 de Julho de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Nos últimos meses tem ocorrido muitas solicitações de clientes para fazer testes de carga ou segurança usando LOIC. LOIC (Low Orbit Ion Cannon) é um software desenvolvido em C# e ele tem o objetivo de fazer ataques de negação de serviço (Denial-of-Service) ou ataques de negação de serviço dstribuído (Distributed Denial-of-Service).

O LOIC possibilita ataques usando TCP, UDP ou HTTP, ele ou alguns derivados dele (como JS LOIC) são muito usados pela anonymous como represália ou protesto contra algum site de empresa, governo ou instituição política.

Bom, o LOIC para meu trabalho nesses clientes tem a função de avaliar a capacidade de contenção/mitigação de ataques de DOS/DDOS. Geralmente avalia-se se o Firewall, IPS (Intrusion Prevention System), WAF (Web Application Firewall), etc. conseguem conter esse tipo de ataque. Caso seja identificado que não, é entregue um relatório com propostas de mudança na infraestrutura do cliente.

Ops… Voltando ao assunto título deste artigo, a instalação no Linux é possível de duas maneiras: instalando WINEe ou instalando o MONO. No meu caso instalei o MONO e minha distribuição é o Debian.

O procedimento é relativamente simples:

#aptitude install mono-complete

Para baixar o LOIC pode fazer acessando a página do projeto no Sourceforge

Após baixar, descompacte e execute o LOIC usando o MONO.

$unzip LOIC-1.0.7.42-binary.zip
$mono LOIC.exe

Como você pode ler, a instalação é simples. O LOIC também não é complexo como pode ver no screenshot do Debian instalado no meu computador.



Mapa dos tweets pelo mundo

8 de Julho de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Visualização de dados é uma das que gosto no mundo informatizado, no Mapbox tem uma visualização dos tweets (ato de escrever no Twitter), praticamente em tempo real. Essa forma de ver os dados do twitter é do Gnip.

Alguns exemplos:

Mundo

As áreas mais claras são onde tem maior concentração de pessoas usando o twitter. Neste mapa mundi é perceptível as costas Leste e Oeste dos EUA estão claras, assim como Europa e região do Japão. O Brasil tem maior uso na região Sudeste.

Costa Leste dos EUA

Região Sudeste do Brasil



Hangout com Bruno Domingues adiado...

6 de Julho de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Muito estranho, muito estranho mesmo… :)

Toda vez que tentamos fazer o Hangout com o Bruno Domingues da Intel acontece alguma problema. Ele teve um probleminha no meio da transmissão do hangout e tivemos que adiar novamente.

Desconfio que algum alienígena está usando um artefato concentrador de tempestade magnética para causar tanta dificuldade. :D



Hangout: Desenvolvimento de aplicações para Cloud Computing (Internet)

5 de Julho de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Hangout histórico esse que está por acontecer! Por que?

Nada em especial, depois de duas mudanças de data por conflito de agendas. Esse Hangout será sobre Desenvolvimento de aplicações para Cloud Computing com Bruno Domingues da Intel e está sendo organizado pelo [Meetup de Web Performance SP]. Na página do Meetup será postado o link com a transmissão.



Webinar: Como suportar um milhão de usuários simultâneos

2 de Julho de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Na semana passada fui convidado pela Eventials para fazer uma apresentação sobre WebPerformance. A apresentação foi a mesma que fiz na Campus Party 2013 e no Latinoware 2012. Provavelmente essa apresentação irá virar um artigo mas enquanto isso não acontece vocês podem assistir cliquando aqui.



FISL só o 15 (2014)

1 de Julho de 2013, 0:00, por Software Livre Brasil - 0sem comentários ainda

Bem, bom… er…

FISL só em 2014, como diria alguém num passado não tão distante: às vezes precisamos “dar um passo para trás para dar dois à frente”. Eu gostaria muito de estar lá amanhã mas eu não posso viajar. Para que aqueles que irão desejo um bom evento e espero ano que vem nos reencontrarmos por lá. ;)