Introdução editar

Heroku[1] é uma plataforma em nuvem baseada em sistemas de containers gerenciados, chamados de Dynos, possuidores de um ambiente de software plugável e configurável, preparados para rodar e depurar sistemas web em um número limitado de linguagens de programação. Uma característica atrativa dessa tecnologia é a facilidade de realizar deploy de sistemas, uma vez que o ambiente é preparado para as diversas linguagens suportadas. Por outro lado, a liberdade de configuração desses ambientes é limitada.

Estrutura editar

Deploy editar

Em um primeiro nível o Heroku trabalha com a geração de build via command-line, Github ou integração continua. Para o Github é necessário dizer o repositório oficial e a branch o qual se deseja usar para o deploy, assim sempre que um push for realizado o heroku realizará deploy automaticamente.

Services editar

O Heroku conta por padrão com o postgres como sistema de banco de dados, e redis para servidor de estrutura de dados, gerenciando o armazenamento em memória dos Dynos. Esses dois serviços são open-source e tal como várias ferramentas web que o sistema possa demandar, podem ser substituídos ou adicionados via plugins. Dentre esses podemos encontrar pacotes de diversas licenças, alguns precisam de cadastro de cartão de crédito para serem utilizados, mesmo que sem taxa de pagamento necessariamente. Para ver todos os add-ons(plugins) disponíveis, acesse o link https://elements.heroku.com/addons.

Dynos editar

O componente central do Heroku é o Dyno. Um Dyno é um leve Linux container que executa um único comando especificado pelo usuário.[2] Para ter a ideia básica do que é um Dyno, é suficiente que se imagine um ambiente virtualizado de configurações limitadas e intermediadas por agentes e configurações do Heroku. Os recursos também são limitados de acordo com um plano, onde a configuração mínima é o plano Free. Os Dynos podem ser dividos em três configurações: Web Dynos, Worker Dynos e One-off Dynos[3], cada um trabalha com diferentes responsabilidades em um aplicativo, podendo ser utilizados vários Dynos desse tipo, tal que o sistema ou a configuração demande e o plano seja suficiente. Existem muitas vantagens em se trabalhar na forma como o Heroku opera, como escalabilidade e segurança. Maiores informações, clique aqui.

Configuração editar

Command-line Tool (CLI) editar

CLI é uma interface para a plataforma Heroku API que pode ser instalada em ambiente de desenvolvimento para realizar atividades de gerenciamento de um certo projeto, como criar apps para utilizar o serviço, reiniciar os Dynos, instalação dos plugins e etc. Para utilizar o command line basta instalar o Toolbelt. Para verificar se está disponível, pode-se executar o commando: $ heroku --version [4] no console do sistema operacional em uso. Mais informações disponíveis no doc Heroku Command

Deploy no Heroku com Ruby editar

Este é um guia prático de como começar a utilizar o Heroku usando como exemplo uma aplicação Ruby[5] com Rails. Primeiramente este tutorial assume que já tenha as seguintes dependências:

  • Pelo menos uma conta gratuita no Heroku, onde a mesma pode ser feita diretamente no próprio site da plataforma, clicando aqui.
  • Ter o Heroku CLI intalado para o gerenciamento dos projetos
  • Ter o Git instalado localmente, pois o heroku o utiliza para realizar o deploy de suas aplicações.
  • Ter o Ruby 2.2.4 instalado localmente, caso não tenha, veja os tutoriais de instalação dele no OS X, Windows, e Linux.
  • É necessário também ter o Bundler[6] instalado localmente. Basta entrar com a linha de comando abaixo.
gem install bundler

Tendo estas dependências instaladas, pode-se dar continuação ao tutorial.

Passo 1 editar

Com o Heroku CLI instalado no seu ambiente de desenvolvimento é então necessário primeiro fazer o login em uma conta, previamente cadastrada na plataforma Heroku, para permitir a operação dos comandos do Heroku e do git. Para isso basta digitar o comando abaixo e informar o e-mail e a senha da conta.

heroku login

Passo 2 editar

Apos ter feito o login na plataforma, é necessário criar uma aplicação ruby para o deploy no Heroku. Nesse caso é necessário entrar com as seguintes linhas de comandos.

rails new NOME_DA_APLICAÇÃO

Para instalar todas as gems necessárias do Bundler.

bundle install

Para construir uma aplicação padrão do ruby.

rake db:migrate
rails s

Para então verificar se a aplicação local está sendo executada.

Passo 3 editar

Tendo a preparado a aplicação ruby, agora é necessário prepara a plataforma Heroku para receber o código fonte para então dar o deploy. Para isso deve-se entrar com a linha de comando abaixo.

heroku create

Com isso é criado um remote do git chamado "heroku" associado a um repositório local do git com um nome aleatório caso não tenha passado nenhum parâmetro para o mesmo.

Passo 4 editar

Para finalizar, apos ter preparado o Heroku é necessário dar um primeiro commit e depois um simples push para dar o deploy da aplicação na plataforma Heroku. Para isso bastar seguir as linhas de comandos abaixo.

git add.
git commit -m "First Commit"

Adiciona e commita toda a aplicação.

git push heroku master

Este último comando dá o deploy do código no Heroku. Para acessar a aplicação basta entrar com a linha de comando abaixo.

heroku open

Referências editar

  1. https://www.heroku.com/platform
  2. https://devcenter.heroku.com/articles/dynos
  3. https://devcenter.heroku.com/articles/dynos#dyno-configurations
  4. https://devcenter.heroku.com/articles/heroku-command
  5. https://www.ruby-lang.org/pt/
  6. http://bundler.io/