Tecnocracia Digital

Set. 18, 2010 por italomaia

Por dentro da fera!

O italomaia.com está no ar, ok. Mas, como? O que mantém este maravilhoso(aham...) blog no ar? Seriam fadas? Doendes? A Lady Gaga? Não, meus caros! Este blog é, na verdade, um punhado de excelentes tecnologias grudadas com a melhor cola holandesa aqui de Fortaleza.

O que tem no italomaia.com?

Brincadeiras a parte, este site foi construído com um punhado de tecnologias bastante interessantes. Desde os templates, até o banco de dados, tudo foi cuidadosamente escolhido. Eu queria fazer algo sob medida, que consumisse poucos recursos e tivesse um bom desempenho. Até agora, acho que consegui. Veja a lista completa das tecnologias utilizadas abaixo:

  • banco de dados: Postgresql-8
  • framework web: Django
  • framework javascript: JQuery & MooTools
  • captcha: ReCaptcha
  • templates: HTML5
  • comentários: Disqus
  • servidor: Cherokee
  • wsgi: uWSGI

O interessante dessa postagem é mostrar que essas tecnologias acima funcionam bem juntas. Algo que acontece muito nas listas de discussão é alguém perguntar se tecnologia x funciona bem com tecnologia y e assim por diante. Essa postagem é um elucidativo neste sentido.

Agora imagine, de que adianta uma lista explicando escolhas de um software sem explicar o motivo dessas escolhas? Por isso, vejamos o motivo da escolha de cada um destes componentes.

Postgresql-8

O Postgresql é um banco de dados OpenSource já a muito conhecido da comunidade mundial de software livre. Tido como um concorrente do Oracle, banco de dados Enterprise líder mundial, ele é uma excelente opção de banco de dados objeto-relacional para a maioria dos projetos.

Dentre a série de vantagens que tornam o Postgresql um grande banco podemos citar:

  • compatível com ACID.
  • possui interface nativa para linguagens de programação.
  • suporta foreign keys, joins, views, triggers, e stored procedures.
  • Possui tipos nativos para os tipos de dados mais utilizados.
  • consome poucos recursos da máquina.
  • é rápido.
  • é gratuito.
  • possui uma comunidade forte e ativa.

Framework Django

Atualmente (14/09/2010), Django é o framework para desenvolvimento web mais popular entre os desenvolvedores Python. Por ser poderoso, completo e rápido, ele é uma excelente escolha para projetos que necessitam de uma ferramenta poderosa.

Algumas das grandes vantagens do Django são:

  • sistema de formulários e validação integrados.
  • sistema de templates integrado.
  • ORM integrado.
  • servidor de testes integrado.
  • comunidade forte e documentação de alta qualidade.
  • feito em Python!

JQuery e Mootools

Meu framework Javascript preditleto é o Mootools. Adoro ele. Rápido, conciso, poderoso, tem tudo que eu preciso. Mas, ao que parece, o resto do mundo gosta mais do JQuery. Basicamente, isso quer dizer que o JQuery me foi empurrado por forças ocultas (aka: django-admin) e eu tive que usá-lo de supetão. Por isso, toda a interação javascript do django-admin está sendo feita com JQuery enquanto a das páginas externas do italomaia.com são tratadas com o Mootools.

Aqui alguns comparativos legais para quem quiser conhecer ambos os frameworks ou quiser escolher entre um deles:

ReCaptcha

ReCaptcha é um sistema de Captcha que te permite filtrar spams e bots malvados que desejam enviar propaganda ou material malicioso para o seu site. Dentre os sistemas de captcha disponíveis, o ReCaptcha se destaca por ser simples, gratuito e funcional. O mais legal do ReCaptcha é que, além de te ajudar a evitar spam no seu site, o texto que você digita no verificador do captcha é utilizado para ajudar na tradução de livros.

HTML5

Eu odeio retrabalho. Me pedir para fazer uma mesma coisa duas vezes é o mesmo que me matar. Por isso, pensei, se eu vou fazer algo novo (italomaia.com), por que não usar logo o que está disponível no estado da arte? Pode ser que um navegador aqui e ali não seja compatível com o HTML5, que é uma linguagem para escrita de páginas web bastante nova, mas, fazer o quê? Se eu escrever meu site em HTML4, no futuro, vou ter que reescrevê-lo em HTML5 do mesmo jeito. Então, penso, o melhor é escrever o site em HTML5 e tentar deixá-lo o mais compatível possível com navegadores maus e feios que não o entendem. Sem falar que o site já fica mais para o lado da [[Web semântica]]. Google agradece!

Disqus

Disqus é um sistema "plugável" que te permite adicionar um widget de comentários robusto com validação, autenticação e moderação ao seu site. Bom demais, não é? Também achei. Por isso, todos os comentários no blog são feitos pelo Disqus.

Cherokee

Apache, NGINX, Lighttpd...Se você é desenvolvedor web, já deve conhecer pelo menos um destes servidores web já citados. O primeiro é bastante famoso, o Apache. Conhecido por ser os músculos por trás da internet, é um software poderoso e cheio de recursos. Mesmo sendo assim, tão bom, o apache nem sempre é a melhor solução para sistemas com poucos recursos ou pouco pessoal de manutenção (o italomaia.com, por exemplo, só tem 1, eu!). Por isso, outros servidores minimalistas, mais fáceis de configurar e, para certas tarefas, bem mais rápidos, estão se introduzindo bem no mercado. O Nginx, muito popular para servir arquivos estáticos e o LightTpd, muito popular em sites com ruby, são bons exemplos disso. Um outro servidor web, menos conhecido (nem nos gráficos do netcraft aparece!) é o Cherokee.

Rápido e confiável, o Cherokee tem como seu grande diferencial a facilidade de manutenção e sua simplicidade. Instalar o Cherokee é simplesmente fácil. Requer uma linha de comando, no Ubuntu:

sudo apt-get install cherokee

Sua configuração também é super fácil pois ele vem com um aplicativo de administração embutido, o cherokee-admin.

Cherokee Admin UI

Isso quer dizer que você não precisa ficar editando linhas e mais linhas de configuração obscura e ficar reiniciando o servidor na mão para poder configurar sua aplicação. Não sei quanto a vocês, mas isso, para mim, é o [[céu]]! Sem falar que ele trabalha muito bem com Python.

uWSGI

O uWSGI é um servidor WSGI bastante popular hoje em dia. "Popular por que?", você pergunta. Hora meu caro, ele é rápido, é compilado, é estável e funciona com os servidores web mais populares hoje em dia. Basta iniciar seu processo uWSGI em um socket para ter seu deploy pronto. Particularmente, estou achando ele muito bom. Coloca o gunicorn, mod_python e mod_wsgi no bolso!

Bem, é isso. Com arquitetura, este blog, junto com o SO está consumindo apenas 240mb de [[memória ram]]. Acredito que ainda consigo fazer mais uns 5 deploys decentes aqui no VPS. Bem, é isso. Gostou desta postagem, achou-a útil? Pois comenta aí! = ]

ps: VPS hospedado pela BlueMille

Tags: benchmark bluemille cherokee deploy django uwsgi