segunda-feira, 17 de dezembro de 2012

Evento TI no Vale 2012

No último sábado (15/12), participei do evento "TI no Vale 2012" a pedido de meu amigo William Antônio (jesuíno), organizado por ele e mais alguns integrantes do JUG Vale, localizado na cidade de São José dos Campos. Fiquei honrado por novamente voltar a esta cidade que tanto admiro por ter um grupo de programadores fanáticos (assim como o William) e também por esta região ter institutos de pesquisa de peso (como o ITA e o INPE). A última vez que fui para lá foi para um evento do próprio JUG Vale.
Logo do evento
O eventou contou com quatro trilhas (no mesmo formato de eventos como o TDC (The Developers Conference): Games, Mente Aberta, Nuvem de Elétrons e Programação. O próprio site foi algo interessante (e também parte do assunto relevante a este blog), pois eles contruíram o site do evento utilizando Openshift como uma solução de PaaS e também de hospedagem. Para quem quiser conferir, o site é http://site-tinovale.rhcloud.com.
Eu participei da trilha Programação, onde apresentei a palestra "Sua aplicação nas nuvens com Openshift". O objetivo da palestra tratou de falar sobre como Cloud Computing tem impulsionado muitas startups a criarem suas idéias e lançarem ao mercado em tempo recorde com baixo custo e como grandes empresas puderam economizar com TI simplesmente diminuindo a ociosidade de seu parque de servidores. Por fim, apresentei quatro demos interessantes: Uma aplicação Magento (um framework de e-commerce escrito em PHP) rodando na nuvem, uma (simples) aplicação em Python com Django, demonstrei uma breve instrodução ao projeto Capedwarf, que permite a migração de aplicações Google App Engine para ambientes JavaEE/JBoss e Openshift sem mexer em uma linha de código(farei um post sobre isso nas próximas semanas), e um exemplo prático de como migrar e por fim demonstrei como é possível criar um ambiente DevOps com Openshift e Jenkins (claro que só isso não é o suficiente, mas é um bom ponto de partida para isso).
Minha intenção com as demos foi simplesmente mostrar que Startups hoje viraram moda, mas nem sempre sinônimo de startup é rentabilidade a curto prazo. Porém é possível encurtar essa trilha se sua solução/idéia precisa de uma hospedagem à Internet e que também permita criar um ambiente de Middleware à sua escolha, sem ter que te travar por conta de suportar apenas uma ou outra tecnologia. Além disso, é possível também usar soluções já prontas no mercado (como o Magento ou sua própria aplicação em GAE) sem ter que reinventar a roda ou reescrever código. Espero que o pessoal do evento tenha gostado, pois eu gostei e sempre gosto muito de apresentar por lá.
Gostaria de novamente agradecer ao William e ao pessoal do JUG Vale que sempre me recebem muito bem quando eu vou aos eventos e também ao Professor Renzo da FATEC e Diretor de Tecnologia da QMagico (uma espécie de Khan Academy brazuca) por compartilhar seus conhecimentos e experiências com o Google App Engine. Segue abaixo meus slides apresentados no evento, e como ainda não recebi as fotos do evento ficarei devendo nesse momento. Assim que tiver as fotos eu posto aqui.

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.