Professional Documents
Culture Documents
Heroku
Implantando Aplicações Java no
O que é o
Heroku? ligados e desligados de
Heroku é uma plataforma de acordo com a necessidade. O Heroku possui controle
cloud computing que foi criada para facilitar a im- para distribuir a carga das requisições entre os dy-
plantação de aplicações, utiliza o modelo de cloud nos ativos, garantindo um bom aproveitamento dos
computing chamado de PaaS (Platform as a Service), recursos disponíveis.
que oferece ferramentas para o desenvolvimento e Juntamente com uma infraestrutura muito bem
implantação de aplicações de forma que os custos e organizada, o Heroku utiliza um fluxo de implanta-
a complexidade de implantação sejam reduzidos. ção baseado no GIT. Para implantar aplicações no
Inicialmente o Heroku foi criado para rodar apli- Heroku, basta apenas um simples push para o re-
cações escritas na linguagem Ruby, mas a medida positório do Heroku e a aplicação será atualizada
que a plataforma foi evoluindo, outras linguagens automaticamente de maneira transparente para o
foram sendo incorporadas à lista de linguagens su- usuário.
portadas. Atualmente, são suportadas seis lingua- O objetivo deste artigo é mostrar como tirar
gens: Ruby, Java, Python, Clojure, Scala e Node.js. proveito de algumas funcionalidades oferecidas pelo
Além de suportar diversas linguagens, a plata- Heroku de maneira fácil.
forma do Heroku possibilita a integração com diver-
sas ferramentas para facilitar o desenvolvimento, Rodando Java no Heroku
e essas ferramentas são conhecidas como add-ons. O Heroku pode rodar qualquer aplicação Java
Existem add-ons para integração com banco de que rode sobre o OpenJDK6 e utiliza o Maven para
dados, para monitoramento das aplicações, para construir as aplicações e instalá-las nos dynos.
implementações de fila, entre outros. A lista com- Para facilitar a vida de quem quer ver algo ro-
pleta de add-ons pode ser encontrada no endereço dando no Heroku, a equipe do Heroku disponibilizou
addons.heroku.com. algumas aplicações de exemplo para serem usadas
Juntamente com os add-ons, o Heroku fornece como base durante o desenvolvimento. Atualmente,
uma API para controle de seus serviços que pode ser estão disponíveis quatro modelos de aplicação de
acessada por uma interface de linha de comando ou exemplo:
por interface REST, facilitando a manutenção e mo- Web app with Spring and Tomcat: aplicação que
nitoramento dos recursos e serviços. utiliza Spring MVC e Hibernate e roda em um Tom-
A parte mais importante de toda a plataforma cat.
do Heroku são as unidades de processamento, co- Containerless web app with Embedded Jetty:
nhecidas como Dynos. Os dynos são elásticos, ou aplicação baseada em servlets rodando em um Jetty
seja, a qualquer momento novos dynos podem ser embutido.
/ 28
João Paulo Gomes dos Santos | jpjcjbr@gmail.com
Formado em Engenharia da Computação na ETEP Faculdades. Atua como desenvolvedor Java na VPSA. Possui as certificações
SCJP, SCWCD, SCBCD e SCEA
29 \
Figura 3. CRUD de exemplo.
/ 30
Em seguida, é exibida a tela para configurar o en-
dereço do repositório do projeto. O campo URI deve
ser configurado com o endereço do repositório que
pode ser obtido através da listagem de aplicativos do
Heroku (https://api.heroku.com/myapps). O campo
Host deve ser preenchido com heroku.com, o campo
Repository Path deve ser configurado com o nome da
aplicação (que neste caso é radiante-window-2008)
com a extensão .git e os outros campos não devem
ser alterados para este exemplo. As configurações do Figura 10. Importando o projeto para o Eclipse.
repositório utilizadas neste artigo estão representa-
Depois de importar o projeto no Eclipse, tem-se a
das na figura 8.
seguinte estrutura, conforme a figura 11.
31 \
<input type=”submit” value=”Adicionar”
class=”btn”/>
/para saber mais
</form:form> Para saber mais sobre Java em Cloud Computing, a leitura
<c:if test=”${!empty peopleList}”> dos artigos Java Google App Engine da edição 43 e Google
<h3>Pessoas</h3>
App Engine com GWT da edição 47 da revista MundoJ são
<table class=”table table-bordered table-
recomendadas.
striped”>
<thead>
<tr>
<th>Nome</th>
<th> </th>
</tr> Para garantir que tudo funcionou como era es-
</thead> perado, pode-se acessar o link http://radiant-win-
<tbody> dow-2008.herokuapp.com/people/ novamente e
<c:forEach items=”${peopleList}” verificar que as alterações que foram feitas estão pre-
var=”person”> sentes na versão atual, como mostra a figura 13.
<tr>
<td>${person.lastName}, ${person.
firstName}
</td>
<td>
<form action=”delete/${person.id}”
method=”post”>
<input type=”submit” class=
“btn btn-danger btn-mini”
value=”Delete”/>
</form>
</td>
</tr>
</c:forEach> Figura 13. Aplicação atualizada rodando no Heroku.
</tbody>
</table> O exemplo apresentado neste artigo, apesar de
</c:if> ser bem simples, serve como base para aplicações re-
</div> ais sem problemas.
</div>
</div>
Considerações finais
Depois de modificar o código, deve-se atualizar o Este artigo mostra como é simples e fácil implan-
ambiente do Heroku com as modificações que foram tar aplicações Java no Heroku. Essa facilidade é obti-
feitas. Para isso, deve-se clicar com o botão direito da com o uso das aplicações de exemplo disponíveis
sobre o projeto e selecionar a opção Team -> Commit no Heroku e da integração entre o Heroku e o Git para
e, em seguida, deve-se clicar novamente com o botão controlar o fluxo de implantação das aplicações.
direito sobre o projeto e selecionar a opção Team -> A execução de aplicações em Cloud Computing é
Push to Upstream. Pode-se observar na figura 12 que uma abordagem que vem conquistando muito espaço
a mensagem “http://radiant-window-2008.herokua- nas empresas pela facilidade e redução de custos que
pp.com deployed to Heroku” mostra que a implan- é possível se obter com ela.
tação da aplicação com as modificações foi efetuada
com sucesso.
/referências
> http://java.heroku.com/
> https://devcenter.heroku.com/categories/platform-basics
> https://devcenter.heroku.com/categories/addon-overview
> https://devcenter.heroku.com/articles/git
/ 32