Heroku
Introdução
[editar | editar código-fonte]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 | editar código-fonte]Deploy
[editar | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]Command-line Tool (CLI)
[editar | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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 | editar código-fonte]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