Turbosys

Internet Funcional

TurboBlog

Apresentando o Jcrop

Recentemente lançamos o blog Deville StarClub e nele tivemos uma demanda interessante: desejava-se diminuir a necessidade de equipe de design e para isso fez-se necessária uma ferramenta que permitisse ao próprio editor de uma matéria escolher o melhor corte de uma foto.

Para atender essa demanda usamos o Jcrop, um complemento do Jquery desenvolvido pela Deep Liquid. Este complemento se mostrou muito estável e maduro, com ele foi possível criar uma seleção de tamanho fixo sobre uma imagem. O editor poderia mover essa seleção afim de escolher o melhor corte daquela imagem:

Exemplo de corte com Jcrop

A documentação do Jcrop é bastante simples de acompanhar, tivemos mais trabalho na implementação do backend em django que receberia e trataria os dados.

starclub3.jpg

Cache do Django no Memcached através de Nginx

O Nginx é um servidor http robusto e de alta performance que vem ganhando destaque no mercado recentemente, sendo incluído até em provedores de hospedagem compartilhada como opção para servir arquivos estáticos.

O Django é um framework de desenvolvimento web que provê alta produtividade de desenvolvimento. Ele possui ferramentas para gerenciar dados em cache e um dos backends disponíveis para isso é o Memcached.

O Memcached é um sistema de cache em memória RAM também muito performático.

Costumávamos trabalhar servindo as requisições HTTP através do Nginx, resolvendo arquivos estáticos diretamente através dele e redirecionando requisições à arquivos dinâmicos para o Apache, que por sua vez fazia uso do Django.

O Django poderia fazer cache de conteúdo mas mesmo assim, uma boa quantidade de recursos seria gasta pelo guloso Apache.

Recentemente passamos a trabalhar com uma organização um pouco diferente: temos o Nginx recebendo as requisições e redirecionando-as para o Apache. Este acessa o Django exatamente como antes, porém, o Nginx está preparado para ler o Memcached diretamente, sem passar pelo Apache.

Vamos a um exemplo:

upstream backend {
server 127.0.0.1:8080 weight=1;
}

server {

listen 80;
server_name turbosys.com.br;

location / {

# não faça cache de requisições POST
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
if ($request_method = POST) {
proxy_pass http://backend;
break;
}

# a chave do memcached é composta pela url completa
set $memcached_key $host$request_uri;

# o memcached não guarda o tipo do conteúdo
# precisamos definir isso manualmente
default_type "text/html; charset=utf-8";

# esta instrução direciona a requisição para o memcached
memcached_pass 127.0.0.1:11211;

# se a chave não foi encontrada, direciona para o fallback
# neste caso, o apache + django
error_page 501 502 404 405 = @fallback;

}

location @fallback {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}

Aplicamos essa configuração no sistema de gestão de conteúdo Site na Hora, o que nos garantiu um aumento de performance considerável.

Como as páginas de sites neste sistema não tem variação para usuários logados, o procedimento foi mais simples. Existe como fazer distinção entre versões de páginas (para usuários autenticados e não autenticados por exemplo), porém, isso é assunto para um outro post ;)

Benefícios do Software Livre

open-source.png

Na atualização recente do Site na Hora, quando passamos a trabalhar com servidores em nuvem da Rackspace, nos deparamos com alguns bugs na biblioteca de comunicação.

O fato da Rackspace ter liberado a biblioteca como um software livre e ter criado um repositório no GitHub permitiu que a própria Turbosys procurasse soluções para tais bugs e propusesse correções, o que se mostrou muito mais produtivo do que se esperássemos uma solução do fornecedor.

Este é um exemplo contundente de que o uso do software livre traz vantagens não apenas no preço, mas na liberdade: com acesso ao código, pudemos trabalhar de forma conjunta e ambos fomos beneficiados.

A Turbosys trabalha ativamente em diversos projetos de software livre.

Confiabilidade de servidores em nuvem

Computação em nuvem é a nova coqueluxe do momento no mercado de TI. A idéia por trás deste conceito é, ao invés de usar máquinas potentes com grande capacidade de armazenamento e processamento, é possível usar máquinas mais modestas em conjunto (comparativamente falando).

Essa máxima foi aplicada no CMS Site na Hora. Ao invés de trabalhar com servidores convencionais, adaptamos sua infraestrutura para trabalhar em Cloud Servers e para armazenar arquivos estáticos em um Cloud Storage, servindo tais arquivos através de uma CDN (rede de distribuição de conteúdo).

Além de aumentar a capacidade de atendimento, esta estratégia aumentou a disponibilidade e confiabilidade do sistema: a infraestrutura é facilmente escalável.

Atualizações no Portal do Representante

O Portal do Representante passou por uma reestruturação de layout e de infra-estrutura. Hoje ele é hospedado numa estrutura avançada que mescla servidores web e servidores de arquivos em nuvem, além de espelhamento do site num sistema de cache em memória RAM com publicação usando o servidor http nginx.

O layout foi todo reestruturado para ser mais intuitivo e para ter melhor performance em motores de busca. Os resultados não poderiam ser melhores: ele vem galgando as primeiras posições nas palavras-chave de seu nicho e já dobrou de tamanho em menos de 1 ano.

Hoje ele conta com mais de 10 mil usuários ativos e esse número cresce a cada dia.

Serviços

Portfólio

Veja Mais

Blog

Recentemente lançamos o blog Deville StarClub e nele tivemos uma demanda interessante: desejava-se diminuir a necessidade de equipe de design e para isso fez-se necessária uma ferramenta que permitisse ao ...

O Nginx é um servidor http robusto e de alta performance que vem ganhando destaque no mercado recentemente, sendo incluído até em provedores de hospedagem compartilhada como opção para servir ...

Confira o estudo de caso da contribuição da Turbosys no desenvolvimento do software python-cloudfiles para comunicação com os servidores em nuvem da Rackspace

Leia Mais

Clientes

  • Logotipo de Área Comunicação
  • Logotipo de Asfalto
  • Logotipo de Clube de Criação do Paraná
  • Logotipo de Contenido
  • Logotipo de Digital Group
  • Logotipo de Digital Square
Veja Mais