Subindo Aplicação Java com Spring Boot no Heroku

Exemplo de Deploy de uma Aplicação Java no Heroku

Introdução

Heroku é uma plataforma de serviço em nuvem (PaaS) suportando várias linguagens de programação.

Heroku é uma das primeiras plataformas de nuvem, já está em desenvolvimento desde junho de 2007, quando suportava apenas a linguagem de programação Ruby, mas, desde então, adicionou suporte para Java, Node.js, Scala, Clojure, Python e PHP. O sistema operacional de base é Debian ou, no mais recente, o Debian-based Ubuntu.

Para quem não conhece, o Heroku é um Paas (Platform as a Service) que roda sobre o Amazon EC2 (que é um IaaS ou Infrastructure as a Service). O Heroku automatiza a criação de uma nova máquina virtual e configura todo o ambiente.

O Heroku usa uma unidade de máquina virtual chamada “Dyno”, a grosso modo, considere um Dyno como uma máquina virtual “pequena” com 4 cores e até 512Mb de RAM sem swap file e sem suporte a persistência de arquivos. Configurar um novo ambiente é simples, o próprio Heroku tem uma boa documentação ensinando.

Subir uma única Dyno usando um banco de dados compartilhado PostgreSQL é de graça, o que é excelente para testar sua aplicação. Obviamente apenas um único Dyno é pouco para qualquer aplicação seria lançada em produção para o público.

Confira os diversos planos do Heroku.

Fonte: http://imasters.com.br/box/ferramenta/heroku/

Instalando Heroku Toolbelt

Antes de começar instale o Heroku Toolbelt.

https://toolbelt.heroku.com/

Configurar Heroku

Cadastre-se no Heroku

https://signup.heroku.com


Efetue login no heroku usando o toolbelt

Em um terminal execute o seguinte comando

heroku login


Gerar Chave SSH

Cuidado!! Se já tiver uma chave SSH gerada esse comando pode sobrescrever sua chave atual.
Caso já tenha chave SSH gerada, pule para o próximo passo

ssh-keygen -t rsa

Adicione a chave no Heroku
heroku keys:add

Crie um Heroku App
heroku create your-application-name

Configure o Spring Boot

Aqui eu vou listar apenas as configurações mais importantes do Spring Boot

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>${spring.version}</version>
    <configuration>
        <finalName>${project.name}</finalName>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

finalName em spring-boot-maven-plugin e maven-jar-plugin, são muito importantes para fixar o nome do arquivo JAR que vamos configurar no Procfile

O goal repackage é necessário para recompilar os pacotes JAR/WAR para que a aplicação funcione com o Spring Boot.


Arquivo de configuração de deploy do Heroku

Crie o arquivo Procfile

web: java -Dserver.port=$PORT -jar target/spring-boot-heroku.jar

Deploy no Heroku
git push heroku master

Teste sua Aplicação

Acesse a API do Spring Actuator:

https://your-application-name.herokuapp.com/health

ou

curl https://your-application-name.herokuapp.com/health

Confira o exemplo no meu github.

Anúncios
Marcado com: , , , , , , , ,
Publicado em Cloud, Desenvolvimento de Software, DevOps, Git, Heroku, Java
6 comentários em “Subindo Aplicação Java com Spring Boot no Heroku
  1. Rafael Marcílio disse:

    Fabio,

    Como você fez para habilitar a conexão https ?

  2. Cisino Junior disse:

    Muito bom seu artigo, já me deu uma ideia do que fazer para subir minha aplicação e testar. Mas tenho uma dúvida. O spring boot usa um servidor tomcat embutido, para subir para o heroku, eu não posso usar esse servidor embutido, ou não? Valeu!

  3. Nathan disse:

    Fabio, boa tarde, como vai?

    Poderia me ajudar? Estou tentando configurar o PostgreSql no Heroku, mas ao dar o comando heroku pg:psql postgresql, surge o seguinte erro: The local psql command could not be located. For help installing psql, see https://devcenter.heroku.com/articles/heroku-postgresql#local-setup

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: