Deploys instantâneos com o now
Na última semana tive a oportunidade de conversar com o Guillermo Rauch em minha breve passada pela Califórnia. O Guillermo é um desenvolvedor bem conhecido na comunidade JavaScript e Node.js por seus projetos open-source, sendo os mais conhecidos e usados o socket.io e o Mongoose, entre muitos outros. O Guillermo ja esteve no Brasil palestrando na BrazilJS Conf na edição de 2014, e a propósito, esta é uma palestra incrível. Assiste lá, caso ainda não tenha visto: https://www.youtube.com/watch?v=p2F-128e3sI
Mas hoje venho falar sobre o novo projeto do Guillermo, o 𝚫 now. Na mesa de um bar em San Franciso, o Guillermo me contou todos os detalhes do projeto que seria lançado na manhã seguinte.
Trata-se de uma plataforma extremamente simples que possibilita a "democratização" do deploy de aplicações Node.js.
Você pode pensar no 𝚫 now como uma CDN para código dinâmico
Esta frase define bem o projeto. Atualmente existem diversas soluções de CDN para arquivos estáticos. E não apenas CDN. O Github, por exemplo, serve arquivos estáticos, possibilitando inclusive hospedar sites em sua plataforma. O que o 𝚫 now faz é possibilitar que isso seja possível também para código dinâmico.
Mas como funciona?
Instale o 𝚫 now globalmente em sua máquina:
npm install -g now
Após isso, crie o diretório de sua aplicação:
mkdir braziljs-now
Projetos 𝚫 now precisam de um index.js
e de um package.json
. Para iniciar um projeto novo, eu usei o npm que já gera o package.json
:
npm init
Até aqui não existe nada de novo, certo? Quem está acostumado com aplicações Node.js ou JavaScript, provavelmente utiliza alguma estrutura semelhante.
Você precisa fazer login no 𝚫 now para poder utiliza-lo.
now --login
Feito o login você está pronto para colocar sua aplicação em produção! Vamos fazer um simples Hello World, utilizando o Express para servir uma página:
var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello Now!'); }); app.listen(3000, function () { console.log('Example app listening on port 3000!'); });
Agora abra o seu package.json
e adicione a dependência do Express (você pode usar npm install express --save
) e informe um start script
:{ "name": "braziljs-now", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node index.js" }, "author": "Jaydson Gomes", "license": "MIT", "dependencies": { "express": "^4.13.4" } } `<br> Para o deploy, simplesmente chame o 𝚫 now:`bash now \
`
Note que após rodar o comando now
, o deploy é feito e uma URL é gerada. Essa URL já pode ser acessada com a aplicação em funcionamento!
O 𝚫 now é free para projetos open-source e funciona muito bem para aplicações simples, demos, protótipos, etc. Eles ainda possuem planos pagos para aplicações comerciais.
Conclusão
O 𝚫 now é mais uma alternativa interessante para projetos Node.js. Projetos open-source podem fazer uso da plataforma de forma gratuita, o que é muito legal para comunidade. O Guillermo ainda me contou detalhes técnicos sobre como eles estão resolvendo a escalabilidade de aplicações Node.js e vejo um enorme potencial no projeto.