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.

Lightning Talks – FISl 13

O Projeto Fedora está com 5 slots para lightning talks no evento comunitário no FISL 13, que será realizado no dia 26/07 de 11h as 13h na sala 601.

O período de inscrição será até o dia 21/07 as 23:59. A votação das lightning talks será realizada no #fedora-br (Freenode) no dia 22/07 11h (GMT -3).

Cada lightning talk deverá ser apresentada em no máximo 5min, as apresentações selecionadas deverão estar em formato PDF e deverão ser entregues para o coordenador do evento antes do evento comunitário. As perguntas e comentários deverão ser feitos no espaço reservado para discussão.

Para enviar sua proposta preencha o formulário http://goo.gl/zZa6K.

Mais informações sobre o evento comunitário podem ser encontradas em https://fedoraproject.org/wiki/FAD_FISL13.

(Pre) Upgrade Fedora

No dia 29 como todos sabem foi lançado o Fedora 17 Beefy Miracle. Mas ai eu estou usando o Fedora 16 e como faço para usar a nova versão? Se eu tiver muito tempo e quero um pouco de diversão baixo a ISO, faço backup, instalo tudo e começamos tudo do zero. Há alguns anos atrás eu até gostava dessa “aventura” toda, mas acredito que assim como pra mim, atualmente, e para  muitas pessoas tempo é algo que precisamos otimizar, e muito. Para um upgrade tranquilo relativamente rápido e sem muito esforço, o Projeto Fedora tem uma ferramenta muito útil e simples de usar que é o PreUpgrade.

Enquanto o PreUpgrade faz o que deve ser feito para atualizar a versão do seu Fedora, você continua seu trabalho.

Para usar o PreUpgrade a sua partição /boot não pode estar em RAID, veja o bug 500004.

Antes de instalar e utilizar a ferramenta, garanta que seu sistema esteja atualizado:

yum update

Instale a ferramenta:

yum install preupgrade

Inicie o PreUpgrade manualmente na console do seus sistema logado como root:

preupgrade

Agora a ferramenta irá checar os pacotes instalados no sistema, irá baixar os pacotes necessários para fazer o upgrade e em seguida irá solicitar que seja feito o reboot. Após o reboot, no Grub selecione a opção para continuar o upgrade e em seguida continuará o passo final do processo que é a aplicação dos novos pacotes.

Pronto, agora curta o seu sistema atualizado!

Referências:
http://fedoraproject.org/wiki/Features/PreUpgrade
https://fedoraproject.org/wiki/How_to_use_PreUpgrade

Atualização:

Após o upgrade com o preupgrade, é provável que ocorram alguns problemas como kernel panic, e alguns drivers não carregarem, no meu caso foi o driver do dispositivo wireless e o kernel panic ao desligar ou reiniciar.

Para corrigir esse problema você deve primeiro atualizar o kernel, caso isso não tenha sido feito:

yum update kernel* --enablerepo=updates-testing

Se o novo kernel já estiver instalado, o comando acima simplesmente não instalará nada porém o novo kernel não está disponível na lista do grub, para adicioná-lo, execute o comando:

grub2-mkconfig -o /boot/grub2/grub.cfg

Em seguida reinicie o seu sistema, que como ainda está rodando o kernel antigo irá mostrar o kernel panic, mas no próximo boot iniciará com o novo.

Esse problema está documentado nos Bugs: 820351, 826537 e 820340.

Fedora 17 lançado!

Hoje foi lançado o Beefy Miracle, versão 17 do Fedora. O novo lançamento vem com muitas novidades para usuários, desenvolvedores,  administradores de sistemas e features interessantes para Cloud Computing e virtualização.

Para usuários, uma feature em destaque é a possibilidade de utilizar o Gnome Shell sem uma placa com aceleração gráfica.

Relacionado a desenvolvimento, O Beefy Miracle traz o o PHP 5.4, Java 7, Ruby 1.9.3,  GCC 4.7 e o Eclipse Juno.

Na área de virtualização e Cloud Computing foi realizado o upgrade do OpenStack para a versão atual, Essex. Outras novidades interessantes nesse sentido é a implementação do oVirt e do Virtualization Sandbox.

A lista completa das features está disponível em http://fedoraproject.org/wiki/Releases/17/FeatureList

Faça o download da nova versão: http://fedoraproject.org/get-fedora

Apache Libcloud

Apache Libcloud, como o nome sugere é uma lib python que abstrai a interação com APIs entre diversos provedores de Cloud.

A versão atual, 0.8.0, permite aos desenvolvedores gerenciares 4 recursos diferentes:

  • Servidores (Amazon EC2 e Rackspace CloudServers)
  • Armazenamento (Amazon S3 e Rackspace CloudFiles)
  • Load balances
  • DNS (Rackspace Cloud DNS, Zerigo)

A lista completa com os serviços e provedores suportados, podem ser obtidos na documentação[1] oficial.

Recentemente eu empacotei a lib para os repositórios do Fedora. Para instalar nas versões do Fedora 15 ou superior:

yum install python-libcloud

Após a instalação, um teste básico importe abra uma console do python e importe a lib:

 >>> import libcloud

Mais informações técnicas e exemplos, podem ser obtidas na documentação[2].

[1] – http://libcloud.apache.org/supported_providers.html
[2] – http://libcloud.apache.org/getting-started.html

Fedora 16 (Verne) Lançado!

Hoje foi lançado o Fedora 16 (Verne), e como de costume o novo release trouxe muitas novidades, em destaque tem o Aeolus Conductor que é uma interface web para gerenciamento de instâncias de computação em nuvem.

Abaixo segue uma lista de implementações significativas, a lista completa pode ser obtida na wiki do projeto.

  • GNOME 3.2
  • KDE 4.7
  • Perl 5.14.1
  • GRUB2
  • OpenStack

Também foi lançado oficialmente o Ask Fedora, serviço de perguntas e respostas.

Você pode obter o Fedora 16 em http://fedoraproject.org/pt_BR/get-fedora

Depois de muito tempo…

Depois de quase um ano, sem postar no blog, vou fazer um resumo de algo relevante, principalmente da minha participação em relação a comunidade de software livre.

Esse ano pude participar de 2 eventos que merecem destaque, que foi a FUDCon LATAM na cidade do Panamá e o FASOL 3.0 em Santarém no Pará. Durante esse tempo também vim contribuindo com o projeto de empacotamento, mas não criando pacotes necessariamente, mas revisando, principalmente, após a FUDCon onde pude ter um melhor contato com bastante gente da comunidade LATAM, nos útlimos 10 meses minha contribuição no projeto de Embaixadores cresceu significativamente desde que fui escolhido para ser um dos mentores do projeto na América Latina, onde tenho ajudado os candidatos a colaboradores a ingressar no projeto.

A FUDCon LATAM desse ano foi sem dúvida muito boa, foi uma nova experiência em relação ao modelo de organização do evento, e a nível de contribuição também foi bastante produtivo em relação as minhas experiências anteriores. Escrevi um artigo sobre o evento que foi publicado na edição 28 da revista Espírito Livre.

Palestra Projeto FedoraNo final de Agosto tive a oportunidade de voltar a cidade Santarém no Pará, para participar do FASOL 3.0, onde ministrei um mini-curso sobre conceitos de segurança em servidores GNU/Linux, e uma palestra sobre o Fedora 15 e o Projeto Fedora. Esse foi interessante notar o interesse dos participantes em relação ao Fedora, em querer utilizar e tirar dúvidas, acredito que isso seja fruto da participação na edição anterior do evento. Esse ano, novamente, após a palestra distribui mídias do Fedora 15. No laboratório que foi reservado para o install fest, após a palestra, a demanda para instalação do Fedora cresceu bastante. :-)

Projeto Fedora LATAM UP!

Nos últimos dois dias o servidor que hospeda os serviços da comunidade LATAM do Projeto Fedora, passou por alguns problemas técnicos junto a operadora de hosting. O problema durou aproximadamente 48h, os principais serviços afetados foram as páginas e as listas de discussão locais, os serviços hospedados na infra internacional não foi prejudicada.

Estamos pensando algumas formas, para que no futuro, esses tipos de problema possam ser resolvidos de forma mais rápida. Agradeço a paciência e compreensão daqueles que entraram em contato para reportar o problema.

Amazon Free Software Forum

Palestra FASOL 2.0 Between the days 31/08 and 03/09 was performed in Santarem city, known as “Pearl of the Tapajos River”, the second Amazon Forum of Free Software. The event was held at the facilities of UFOPA University of the West of Pará), with the organization of former students, students, lecturers, and support of students from other local universities.

At the invitation of the organizers, I presented a talk on the Fedora Project and two mini-courses, an introduction to the RPM packaging and other GNU/Linux for dummies. The results obtained with the lecture and mini-courses were satisfactory, was actually quite nice to see an increase in the interest of the participants for Fedora.

After the talk, the penultimate day of the event, I made the distribution of media for approximately 100 participants, and in the next day several installations on notebooks were performed and a laboratory was installed with Fedora 13 :-) .

It was really interesting to present the Fedora Project in an region like Santarém, where the interest in free software has grown considerably. At the end we obtain three enthusiasts and a lot of users. I hope that the number of users and contributors will soon grow.

FASOL 2.0 – Fórum Amazônico de Software Livre

Palestra FASOL 2.0Entre os dias 31/08 e 03/09 foi realizado em Santarém, cidade conhecida como “Pérola do Tapajós”, o segundo Fórum Amazônico de Software Livre. O evento foi sediado nas instalações da UFOPA (Universidade Federal do Oeste do Pará), contando com a organização de alunos, ex-alunos e professores da instituição e apoio de alunos de outras universidades locais.

A convite da organização do evento, eu apresentei uma palestra sobre o Projeto Fedora Brasil e dois mini-cursos, um de introdução a empacotamento RPM e outro de GNU/Linux para iniciantes. Os resultados obtidos com a palestra e os mini-cursos foram satisfatórios, realmente foi bastante legal ver o aumento no interesse dos participantes pelo Fedora e por GNU/Linux em geral.

Após a palestra, no penúltimo dia do evento, realizei a distribuição de aproximadamente 100 mídias para os participantes, e no dia seguinte várias instalações em notebooks foram realizadas e um dos laboratórios estava com o Fedora 13 instalado :-) .

FASOL 2010 O evento também contou com outros palestrantes de outras regiões do Brasil, como Jansen Sena (Atech – São Paulo), Rommel Sousa (Comunidade SOL e Ministério Publico do Amazonas – Manaus), Prof. Dra. Fátima Conti (UFPA – Belém), Wilken Sanches (Coletivo Digital – São Paulo), Ricardo e Davis Victor (SERPRO – Belém), Pedro Jatobá (iTEIA – Salvador), Leonardo Germani (Hacklab – São Paulo), João Fernando (Revista Espirito Livre – Vitória), Carlo Seixas (Fuctura/Ubuntu – Recife) entre outros.

O resultado final do evento, acredito que tenha sido muito positivo para a consolidação da cultura de software livre na região, o alto nível das palestras apresentadas e a troca de experiências contribuiu bastante para ampliar os horizontes da comunidade local.

Por fim, um agradecimento a coordenação do evento e as pessoas que nos receberam de forma muita afetiva. Espero em breve voltar em Santarém :-) .