Hospedagem de aplicativos na nuvem. Parte 1: Openshift

Depois de alguns amigos desenvolvedores e/ou empreendedores com suas startups e projetos pessoais, entrarem em contato pedindo ajuda para hospedar suas aplicações com qualidade e baixo custo, resolvi criar dois posts apresentando as duas soluções que costumo indicar, como são duas soluções bem distintas, resolvi separar em dois posts para sua startup ou para sua aplicação.

No primeiro post vou falar sobre o  OpenShift, que é  a solução de PaaS Open Source da Red Hat.

Com o OpenShift, o desenvolvedor pode manter o foco no desenvolvimento da aplicação sem se preocupar com a infraestrutura, e realizar seus deploys de forma bem ágil através das ferramentas disponibilizadas. Atualmente a solução está em developer preview, e cada usuário pode hospedar até 3 aplicativos, ou então hospedar um aplicativo e dedicar os recursos computacionais reservados para as outras duas aplicações para uma única aplicação.

Esses recursos são disponibilizados gratuitamente, com isso você pode por exemplo hospedar 3 aplicações na nuvem, em uma plataforma estável e escalável sem custos. Em breve Red Hat irá lançar a versão comercial da plataforma onde o usuário poderá alocar mais recursos, ter apoio técnico da empresa e muitas outras features, até onde eu sei a versão gratuita continuará disponível para aqueles que não precisam de tantos recursos.

O OpenShift, tem suporte nativo a PHP, Java, Ruby, Pyhton, Perl,  Node.js, rails, cakephp, spring framework, django, tomcat, JBoss e algumas aplicações pré-configuradas como wordpress, drupal, magento, redmine e muitas outras…

Agora que já sabemos o que é, algumas das linguagens, frameworks e aplicações suportadas, tá na hora de fazer o deploy.

O primeiro passo é registrar uma conta em openshift.redhat.com

Após o registro instale, caso não tenha, o ruby 1.8.7+ e git

sudo yum install ruby git

Em seguida instale a ferramenta de linha de comando para gerenciar sua conta e apps.

sudo gem install rhc

Agora configure o seu sistema com a sua conta criada, nesse passo basicamente você terá que fornecer o usuário e senha cadastrados, informar a chave publica e escolher um nome que será o sufixo padrão para suas apps.

rhc setup

Crie sua primeira app, exemplo:

rhc app create -a beta -t php-5.3

Como resultado do comando acima, foi gerada uma URL com o nome da aplicação escolhida que foi beta e com o sufixo escolhido durante o setup que foi dbruno. Espere alguns segundos pela propagação do DNS e acesse a URL gerada no navegador e verá uma página modelo do OpenShift. No diretório onde foi executado o comando para criar a app também foi criado um diretório com o código fonte dessa página modelo, que você pode editar ou adicionar o código fonte a sua app, e deve usar o git para enviar suas modificações para o servidor.

Exemplo da URL gerada:

beta-dbruno.rhcloud.com

Provavelmente você não vai querer utilizar essa URL para a sua app, para isso crie uma entrada do tipo CNAME no registro de DNS do seu domínio apontando para a URL gerada.

O OpenShift tem um recurso chamado cartridge onde são disponibilizados serviços como banco de dados (mysql, postgresql, mongodb) cron, integração continua com jenkins e etc.
Para adicionar um banco MySQL (v. 5.1):

rhc app cartridge add -a beta -c mysql-5.1

Lembrando que beta é o nome da app criada durante esse post e mysql-5.1 é o banco e a versão disponibilizada. No output do comando de criação do mysql será informado o nome do banco, usuário, senha e uma url para o phpmyadmin.

No OpenShift é possível também ter acesso SSH e fazer deploy de aplicações escritas em linguagens que não foram mencionadas neste post, segundo o Fabiano Franz, que é um dos desenvolvedores da plataforma, algumas pessoas veem fazendo deploy de apps em C, C++, LISP, como nos exemplos em:

http://lisp2-atgreen.rhcloud.com/
http://register-elasticcobol.rhcloud.com/register/register.html

No repositório https://github.com/openshift existem algumas aplicações pré-configuradas para serem subidas para a nuvem.

Para maiores informações, recomendo ler a documentação do projeto https://openshift.redhat.com/community/developers/, e acompanhar o twitter @openshift para ficar por dentro das novidades.

No próximo post irei apresentar uma solução também eficiente e de baixo custo, usando o IaaS da Amazon Web Services.

4 comments

  1. Uma outra alternativa de Paas que é o Heroko : http://www.heroku.com/ que também tem um plano gratuito inicial, porém já tem planos comerciais.
    Ela da suporte a Ruby, Java, Python entre outras linguagens e também usa o Git para realizar os deploys.

  2. Olá,

    cara, tem uma hospedagem bacana e barata, http://www.hostfacil.co
    aconselho pra quem tá com um projetinho e com pouco capital, pq me atendeu bem. já tenho uns dois lá. nunca me deu problema. fica aí a dica

    abrass

  3. Getup Cloud, startup brasileira baseada em OpenShift Origin: http://getupcloud.com
    O registro dá 750h gratis pra testar a plataforma.
    Diferenciais ao OpenShift Online (RedHat):
    – suporte em portugues
    – cobrança em R$
    – versão mais estavel (Online é bleeding-edge)
    – Online só atende EUA, Canada e Europa.

    Contribuímos com o projeto open source e desenvolvemos cartridges.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>