Demonstração de implantação do Vagrant no estilo Heroku para STHLM.js

Esta é a demonstração de Christian Landgren, Iteam para STHLM.js em maio de 2013

Sobre implantação / devOps

Por que usar o think deployment durante o desenvolvimento? Encontre problemas mais rápido, menos tempo gastando diferenças de solução de problemas e testes de integração.

Obtenha um ambiente de produção instantânea em seu laptop.
Configure todas as dependências com o chef. Crie seus projetos implantáveis ​​desde o início.

Demo heroku

heroku create
git init

express

node app
.js

Edite app.js e faça com que ele escute a porta local 3000 se ainda não estiver configurada pelo ambiente

app.listen(process.env.PORT || 3000);

Teste seu aplicativo em um navegador http: // localhost: 3000

Adicionar um Procfile

touch Procfile

Especifique como seu aplicativo será iniciado

web: node app.js

Por fim, envie isso para Heroku e observe os resultados

git add .
git commit
-am "Initial commit"
git push heroku

heroku open

Isso é perfeito para colocar seu aplicativo “lá em cima” o mais rápido possível. Mas existem algumas coisas que você deve saber, Websockets não são suportados (ainda) e se você deseja usar SPDY ou outras formas diretas de comunicação, você está sem sorte. Além disso, a grande vantagem do node é sua maneira livre de recursos de lidar com várias conexões, então não queremos muitas coisas no caminho do nosso aplicativo. Vamos entrar no mundo SSH;)

Então, como obtemos um cenário de implantação no estilo Heroku sem Heroku em nossos próprios servidores ou servidores virtuais?

Configurar vagabundo heroku

vagrant init 

Altere as configurações da máquina (escolha o ip local) e especifique qual sistema operacional deseja usar.

A caixa a seguir é pré-configurada para corresponder às especificações do Heroku, tanto quanto possível:

Vagrant::Config.run do |config|
config
.vm.box = "heroku"
config
.vm.box_url = "http://dl.dropbox.com/u/1906634/heroku.box"
end

E corra vagabundo. A caixa será baixada e importada para você.

vagrant up     

Configurar chaves SSH

ssh vagrant@<server IP> "cat >> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub    
git remote
add origin vagrant@<server IP>:/home/vagrant/sthlm.js

Demo git-deploy

gem install git-deploy     
git deploy setup

git deploy init

Edite o script de implantação em / implantar / reiniciar

touch tmp/restart.txt     
echo
"restarting Node.JS app"
npm install

npm test

/opt/ruby/bin/foreman start

Agora você tem sua própria hospedagem em nuvem estilo heroku instalada em seu computador. Pronto para usar sempre que você quiser testar seu código. Basta pressionar com:

git push

E se você navegar para http: // ip-adress: 5000 , verá o seu expresso web