No post anterior foi mostrada a importancia de se colocar o projeto num servidor de controle de versoes, mesmo logo apos a sua criacao. Algumas preocupacoes puderam ser rapidamente testadas e solucionadas, por exemplo o setup em maquinas de outros desenvolvedores.Ainda nesta fase tao precoce, podemos ir mais alem: testar o deploy da aplicacao num ambiente production-like. Desta forma, cria-se uma cultura de, em cada iteracao, testar de ponta-a-ponta o processo de desenvolvimento.Um dos objetivos e antecipar questoes e riscos que tradicionalmente so seriam atacados ao final do projeto. Caso surjam problemas de integracao, ou dificuldades tecnicas que possam colocar em risco a subida do sistema para producao, as causas podem ser prontamente diagnosticadas e tratadas o mais cedo possivel antes que possam comprometer o sucesso do projeto.Setup do HerokuO Heroku e uma opcao muito popular para o deploy de aplicacoes Rails, que consiste simplesmente em executar:git push heroku masterou seja, pushando o projeto para um repositorio Git remoto no Heroku.A preparacao e semelhante a da criacao de uma conta no Github. E necessario criar uma conta no Heroku, e fazer o upload de uma chave publica para administracao da conta via terminal.InstalacaoO primeiro passo e instalar a gem do heroku:gem install herokuChave publicaEm seguida, fazer o upload da chave publica: Caso o heroku nao encontre uma chave publica em ~/.ssh/id_rsa.pub, e tambem nao exista a chave privada ~/.ssh/id_rsa correspondente, o proprio heroku e capaz de gerar estas chaves para nos (como mostrado no trecho acima).Podemos tambem aproveitar a chave publica do github, bastando que ela esteja presente em ~/.ssh/id_rsa.pub para ser upada para o heroku.Caso mais de uma chave esteja presente no diretorio .ssh, o heroku pergunta qual deve ser usada: Criacao da aplicacao no HerokuResolvida a questao das chaves, podemos criar a aplicacao no heroku: Este comando cria um ambiente no Heroku e o adiciona automaticamente como um repositorio Git remoto do projeto, o que pode ser confirmado: Note tambem que, apos deployada, a aplicacao respondera inicialmente no endereco http://afternoon-robot-3025.heroku.com.Deploy de uma aplicacao Rails no HerokuDispensa comentarios: Ate mesmo para abrir o navegador, o heroku ajuda:heroku openRackfile e ProcfileO Heroku consegue fazer o deploy de aplicacoes Rails devido a presenca do arquivo config.ru na raiz do projeto. Trata-se de um arquivo Rack, que instrui ao Heroku a forma como a aplicacao e iniciada: Procfile e ForemanUma alternativa ao Rack e criar um arquivo Procfile na raiz do projeto. Trata-se de um mecanismo de declarar quais comandos devem ser executados ao deployar na plataforma Heroku. Ele consiste de um conjunto de pares informando o tipo de processo e o comando para executar um determinado processo: Apesar de opcional em aplicacoes Rails, seu uso e recomendado pois proporciona maior controle e flexibilidade para a aplicacao. Alem disso, o Heroku prove o comando heroku scalepara ajustar como escalar a aplicacao, baseados no Procfile.Para executar localmente aplicacoes baseadas no Procfile, e necessario instalar o Foreman.gem install foremanAo iniciar a aplicacao com o foreman, ele inicia cada um dos processos declarados no Procfile: Django e HerokuConforme anunciado neste post,o Heroku tambem oferece suporte a Python,