Modos de deploy no Jelastic

De nada adianta escalar a sua aplicação na nuvem se na hora do deploy, tudo for difícil. Então, o melhor é ter a mão diversas formas de colocar o seu aplicativo em produção e escolher aquela que melhor se adapta ao seu fluxo de trabalho ou o de sua equipe.

Pensando nisso, o Jelastic Locaweb possui um série de maneiras de realizar o deploy da sua aplicação de forma fácil e automatizada.

Integração com repositórios SVN ou GIT (recomendado)

Essa é a maneira mais simples e recomendada de colocar sua aplicação para rodar no Jelastic Locaweb. A grande vantagem é que desta forma é possível automatizar o processo de deploy, de forma a adotar integração contínua. Você faz o push de um novo commit para o repositório e o Jelastic se encarrega de fazer o deploy automaticamente. Para isso basta clicar no ícone "da caixa" que surge quando o mouse passa por cima do servidor de aplicação escolhido. No caso de ambientes Java, é preciso ter um servidor Maven para que a opção surja, caso contrário, não é possível fazer o build na nuvem, diretamente do repositório do código.

Em seguida, basta colocar os dados do repositório, como endpoind e branch a ser baixado. Se o repositório for privado, clique na opção "Usar autenticação" e insira um login e senha. Para deploys automáticos, basta ativar a opção "Verifique e implante as atualizações automaticamente". A imagem abaixo exemplifica o processo em um repositório Git:

Gerenciador de instalação

Outra maneira de realizar a instalação é utilizar o Gerenciador de Instalação para efetuar o deploy da sua aplicação. Essa maneira é especialmente prática para aplicações Java caso tenha realizado o build em sua máquina e possua o arquivo .war ou .ear em mãos. Neste caso é só clicar no botão "Upload" e enviar o arquivo para o gerenciador. Caso esteja utilizando uma aplicação cujo build encontra-se público na web, é possível também apontar diretamente para a URL do mesmo, conforme exemplifica a imagem abaixo.

Para outras linguagens, como PHP, Python, Ruby e Node, é possível enviar pacotes .zip, .tar, .tar.gz e .bzip2 com a estrutura de sua aplicação compactada no arquivo.

Em ambos os casos, o ele será exibido no gerenciador após o upload, bastando apenas clicar no mesmo e escolher o ambiente para efetuar o deploy; o Jelastic se encarrega de descompactar o arquivo no contexto definido e de iniciar a aplicação.

Note que o gerenciador de instalação limita o tamanho do arquivo a no máximo 150 Mb.

Plugins e IDEs

Especialmente para o desenvolvimento Java, há opções de plugins para várias IDEs e build services.

Plugin para o Maven

O Maven é uma ferramenta de build para projetos Java. Você pode fazer o deploy de seu código para o ambiente do Jelastic através do Maven, desta forma:

  1. Faça login no Jelastic, crie o ambiente Java no qual o deploy vai ser feito e defina os cloudlets mínimos e máximos de cada componente do seu stack.

  2. Baixe a última versão do Maven e descompacte localmente.

  3. Crie seu projeto Maven (manualmente ou por qualquer IDE).

  4. Modifique o arquivo de configuração pom.xml do seu projeto da forma abaixo:

    • na seção <plugins> acrescente o seguinte:
<plugin>
  <groupId>com.jelastic</groupId>
   <artifactId>jelastic-maven-plugin</artifactId>
      <version>1.7</version>
      <configuration>
        <email>[insira seu login do Jelastic LW]</email>
        <password>[insira sua senha do Jelastic LW]</password>
        <context>[se precisar, especifique o contexto]</context>
        <environment>[insira o nome do ambiente criado no Jelastic]</environment>
        <comment>[se preciar, insira um comentário]</comment>

        <api_hoster>app.jelasticlw.com.br</api_hoster>
      </configuration>
</plugin>
  • e acrescente a seção <pluginRepositories>:
<pluginRepository>
  <id>sonatype-oss-public</id>
  <url>https://oss.sonatype.org/content/groups/public</url>
    <releases>
      <enabled>true</enabled>
    </releases>
    <snapshots>
      <enabled>true</enabled>
    </snapshots>
</pluginRepository>
  1. Abra a sua linha de comando, navegue até a pasta do projeto Maven e uma vez lá, será possível usar os seguintes comandos:
comando descrição
mvn jelastic:deploy para efetuar o deploy da aplicação
mvn jelastic:publish para efetuar o build e enviar o arquivo WAR para o Gerenciador de Instalação, sem realizar o deployment.
mvn clean install jelastic:deploy se quiser “deployar” uma nova versão depois de realizar mudanças no código

Plugin para o Ant

O Ant é uma ferramenta open source para automatizar o processo de build, de aplicações Java. O Ant utiliza XML para descrever o processo de build e suas dependências. Por padrão, o arquivo XML é nomeado build.xml.

Use está configuração para o Jelastic:

ivy.xml

<ivy-module version="2.0">
    <info organisation="com.jelastic" module="jelastic-ant-task"/>
    <dependencies>
        <dependency org="org.codehaus.jackson" name="jackson-mapper-asl" rev="1.8.1"/>
        <dependency org="org.apache.httpcomponents" name="httpcore" rev="4.1.1"/>
        <dependency org="org.apache.httpcomponents" name="httpclient" rev="4.1.1"/>
        <dependency org="org.apache.httpcomponents" name="httpmime" rev="4.1.1"/>
        <dependency org="commons-codec" name="commons-codec" rev="1.4"/>
        <dependency org="commons-logging" name="commons-logging" rev="1.1.1"/>
    </dependencies>
</ivy-module>

build.xml

Configure o arquivo de build abaixo com os seus dados:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:ivy="antlib:org.apache.ivy.ant" name="Jelastic Test Task Deploy" basedir="." default="deploy">
 
    <property name="lib.dir" value="lib"/>
    <property name="ivy.default.ivy.user.dir" value="${basedir}/lib"/>
    <property name="ant.lib.task" value="${basedir}/lib-task/jelastic-ant-task-1.0.jar"/>
 
    <path id="lib.path.id">
        <fileset dir="${lib.dir}"/>
        <fileset dir="${ant.lib.task}"/>
    </path>
 
    <target name="deploy" description="Use the Task">
        <ivy:retrieve pattern="${lib.dir}/[artifact].[ext]" type="jar" />
 
        <taskdef name="jelastic" classname="com.jelastic.Jelastic" classpathref="lib.path.id"/>
        <jelastic email="<!-- ... -->"
                  password="<!-- ... -->"
                  dir="<!-- ... -->"
                  filename="<!-- ... -->"
                  context="<!-- ... -->"
                  environment="<!-- ... -->"
                >
        </jelastic>
    </target>
</project>

Plugins para IDEs

Se você gosta de efetuar o deploy direto de sua IDE, não se aflija, pois há opções de plugins para as principais IDEs Java: Eclipse, Intelij e Netbeans.

Para todos eles o processo é basicamente o mesmo:

  1. Instale o plugin a partir do "marketplace" da IDE;
  2. configure o plugin passando as credenciais do Jelastic;
  3. use o plugin para efetuar o deploy a partir da IDE.

Bônus: FTP

Não é exatamente uma forma de deploy, mas pode ser útil caso você tenha que efetuar uma migração e copiar uma quantidade grande de dados, como arquivos de imagens, por exemplo.

Para isso, clique no botão de "Add-ons" que surge quando você passa o mouse sobre qualquer nó do seu ambiente e clique no botão "Instalar" na aba que surgirá:

É necessário ter um IP público para poder acessar o nó em questão, que será adicionado automaticamente, caso você não tenha selecionado essa opção anteriormente. A senha e os dados de acesso serão enviados para o email cadastrado na conta. A partir daí já é possível iniciar a transferência dos arquivos.

Conclusão

Pronto! Com tantas opções de deploy, não vai ser difícil encontrar alguma que se adapte ao seu fluxo de trabalho. Não deixe de compartilhar conosco as suas impressões em relação ao deploy da sua aplicação no Jelastic.