segunda-feira, 29 de outubro de 2012

Primeiros passos com Openshift

Introdução

Esse é o primeiro de muitos posts que venho organizando sobre Cloud Computing. Ultimamente tenho me interessado bastante no assunto e por isso venho estudando a fundo sobre assuntos que giram em torno dessa nova buzzword.
Vamos ao que interessa: nesse post explicarei como criar sua primeira aplicação utilizando um serviço PaaS (Platform-as-a-Service, explicarei melhor esse e outros termos em outro post) da Red Hat chamado OpenShift. O OpenShift é um serviço relativamente novo porém traz diversas funcionalidades que fazem dele um serviço PaaS bem mais amplo. Para criar a nossa primeira aplicação, é necessário instalar os seguintes componentes:

Criando uma conta no OpenShift

Antes de criar nossa aplicação, precisamos criar uma conta no OpenShift no site http://openshift.redhat.com.   Esse é um dos pontos de acesso para criar, gerenciar e monitorar suas aplicações e tecnologias hospedadas no OpenShift através da interface de gerenciamento. Abaixo a página inicial do OpenShift:

Página inicial do OpenShift
Na página inicial, clique em "Sign up - It's free" (e de fato é... =D ) e preencha os dados conforme a tela abaixo:


Feito isso, você receberá um e-mail de confirmação de sua inscrição e pronto! Agora podemos criar aplicações no ambiente OpenShift.

Criando um domain

criando um domain


Abrirá um diálogo para digitar o nome do seu domain. Após escolher um nome para seu domain, clique em Finish:



Criando a aplicação

Finalmente, vamos criar a aplicação clicando com o botão direito na sua conta Openshift e selecionar "New OpenShift Application...":



Abrirá uma tela para criar sua aplicação. Eu vou tentar explicar por cima o que cada seção desse wizard faz. Como podem perceber, você pode usar:

  • Use Existing Application: Caso você já tenha uma aplicação pronta, você pode já apontar para o locla onde está esse projeto
  • New application: É onde utilizaremos. Nesse caso, você terá que colocar informações adicionais para configurar sua aplicação, tais como:
    • Name: O nome que ficará sua aplicação. Ao acessar sua aplicação, ela terá o formato http://aplicacao-dominio.rhcloud.com
    • Type: O tipo da aplicação que você irá desenvolver. É aqui onde você indica se vai criar uma aplicação Java, PHP, Ruby, etc. Tentarei postar como desenvolver aplicações que não sejam apenas Java
    • Gear Profile: É o tamanho da sua medida de recursos. Um gear no OpenShift é uma unidade computacional de storage e memória, onde há uma limitação desses recursos para assim poder utilizar apenas o necessário. Imaginem uma aplicação que ocupa apenas 500MB e que consome 300MB de RAM, com um gear small você pode consumir exatamente o que precisa sem comprometer os recursos disponíveis para as outras aplicações utilizarem.
    • Embeddable Cartridges: Um Cartridge no OpenShift é como blocos de software que você vai adicionando na infraestrutura da sua aplicação. Exemplo: Toda aplicação precisa de um Banco de Dados, então você adiciona um cartridge para isso (no momento, os gears de Banco disponíveis no OpenShift são MySQL, PostgreSQL e MongoDB). Além disso, há outros cartridges que podem auxiliar no desenvolvimento e administração de sua aplicação, como o phpMyAdmin, cron, etc.



Agora que preenchemos as informações para a aplicação e clicar em Next, surge uma tela para definir se precisa criar um projeto para sua aplicação ou se vai utilizar um já existente e também para criar uma configuração de servidor para o OpenShift, assim como criamos uma configuração de servidor JBoss para iniciar/parar o servidor e fazer o deploy de aplicações nele.


Por fim, aparece uma tela para definir o local onde o git fará um clone do repositório remoto para sua máquina. IMPORTANTE: você precisa definir as chaves SSH para poder fazer esse clone. Você pode clocar em "SSH2 Preferences" e seguir os passos para configurar essas chaves


Por fim, sua aplicação será criada e depois que o Eclipse finalizar basta acessar a URL e já terá uma página inicial:


Bom pessoal, essa é só a ponta do iceberg para iniciar. Nos próximos posts, irei aprofundar um pouco mais sobre conceitos teóricos e práticos, e se tiverem alguma sugestão é só mandar um comentário.