Correr uma webapp Java na Google cloud

Sabia que o Google tem uma cloud para as suas aplicações/sites web? Sabe o que é o Google App Engine e o que pode fazer com ele? Neste artigo pretendo explicar o enquadramento e os primeiros passos desta plataforma.

Enquadramento

O Google App Engine (GAE) é uma plataforma como serviço (PaaS). O GAE percence ao Google Cloud Platform. Este é comparável ao Microsoft Azure e aos Amazon Web Services: os três são soluções de cloud computing. Na prática, este sistema oferece hardware (servidores web, alojamento, etc.) para que os developers desenvolvam e corram web apps (e outros serviços web).

Google Cloud Platform

Este sistema é gratuito até certos limites (freemium).

Podemos, por exemplo, criar um web site e um serviço de backend para servir aplicações mobile. Terá diversos recursos à disposição, tais como bases de dados, API REST, etc.

app_design_numbered[1]

Antes de começar

Vejamos como ter o seu primeiro projeto na cloud do GAE.

Comece por escolher um runtime: o GAE suporta Java, Go, PHP e Python. Aqui vou usar Java para ilustrar os conceitos do GAE. O suporte atual é para a versão 1.7. Estou a assumir que já tem o Java JDK. Confirme que tem a última versão do Maven e configure-a no NetBeans.
Pense no IDE que quer usar. No caso do Java, pode usar o Eclipse, NetBeans, IntelliJ, etc. Todos têm plugins para o GAE, mas por motivos de simplicidade, recomendo o NetBeans sem plugin GAE. É dessa forma que será dado este exemplo.

Lançar um projeto localmente e remotamente

  1. Vamos preparar o projeto na cloud: vá à consola web do Google Developers, clique em “Create Project” e dê um nome.


    (opcionalmente, pode clicar em opções avançadas e escolher a zona geográfica)

  2. Espere um pouco depois de clicar em “Create”. O projeto fica automaticamente selecionado no canto superior direito:

  3. Expanda o primeiro portlet e copie/guarde o “Project ID”. Este identifica o projeto acabado de criar:

  4. Crie um projeto no NetBeans. Usaremos uma aplicação web em Maven para o ilustrar.  Faça: File > New Project > Maven > Web Application. Preencha o nome de projeto e siga o wizard até ao fim (o servidor web não importa muito porque o app engine traz/usa o Jetty).
  5. Abra o pom.xml e adicione o jar do GAE (use a versão mais recente) (na zona das dependencies):
    <dependency>
        <groupId>com.google.appengine</groupId>
        <artifactId>appengine-api-1.0-sdk</artifactId>
        <version>1.9.34</version>
    </dependency>
  6. Ainda no pom.xmlna zona buildplugins, adicione o plugin de deploy do GAE. Use a última versão.
    <plugin>
       <groupId>com.google.appengine</groupId>
       <artifactId>appengine-maven-plugin</artifactId>
       <version>1.9.34</version>
    </plugin>
  7. Crie um web.xml:
  8. Dentro de WEB-INF, crie o ficheiro appengine-web.xml, com o conteúdo:
    <?xml version="1.0" encoding="utf-8"?>
       <appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
       <application>erudite-canto-110614</application>
       <version>1</version>
       <threadsafe>true</threadsafe>
    </appengine-web-app>
  9. Preencha o campo application com o Project ID obtido no passo 3.
  10. Saque o ficheiro nbactions.xml e coloque-o ao mesmo nível que o pom.xml. Este contém os Maven goals do projeto GAE, tais como deploy local ou para a cloud.
  11. Faça deploy local (isto irá lançar o Jetty na porta 8080, a qual pode ser alterada):
  12. Abra o browser em http://localhost:8080:

    Parabéns.
  13. Tentemos ver a mesma coisa mas na cloud. Faça:

    Um browser irá abrir. Aceite as permissões pedidas.
    Copie o código que lhe foi dado e cole-o na consola do NetBeans.
  14. Todas as apps vão parar ao appspot.com e podem ser lançadas a partir de lá.
    Abra http://O-SEU-PROJECT-ID.appspot.com
    Neste caso seria: http://erudite-canto-110614.appspot.com
    Parabéns!

Saiba mais na documentação oficial GAE para Java.

One thought on “Correr uma webapp Java na Google cloud

Deixar uma resposta