Conteúdo


Desenvolva um aplicativo de blog com o Ruby on Rails e IBM Cloud

Normalmente, ao criar aplicativos e implementá-los na nuvem, você gastaria bastante tempo instalando servidores, configurando-os com sua distribuição confiável do Linux® , instalando os tempos de execução necessários, instalando e configurando bancos de dados, lidando com dependências de biblioteca e protegendo servidores. No entanto, com o IBM Cloud, é possível se concentrar somente em escrever o código e a implementação pode levar apenas alguns segundos.

O desenvolvimento desse blog simples mostrará como é fácil criar e implementar um aplicativo Rails no IBM Cloud.

Neste artigo, desenvolveremos um blog de funções básicas como um aplicativo de amostra para realizar o showcase do processo de introdução ao IBM Cloud e as variáveis do Ruby on Rails. Iremos guiá-lo pelas etapas para criar um aplicativo Rails, criar um banco de dados SQLDB (um serviço do IBM Cloud desenvolvido com IBM DB2), conectar o aplicativo ao banco de dados e implementar e executar o aplicativo. O desenvolvimento desse blog simples demonstra como é fácil criar e implementar um aplicativo Rails no IBM Cloud.

Execute o aplicativoObtenha o código

O que é necessário para começar

  • Uma conta no IBM Cloud. Inscreva-se para uma avaliação gratuita.
  • Ruby 1.8.7 – 2.0.0 (suportado pelo IBM Cloud)
  • Estrutura Rails 3.2.13 (suportada pelo IBM Cloud e o ibm_db gem)
  • ibm_db gem
  • Ferramenta Cloud Foundry CLI
  • Um editor de texto/IDE, como o Sublime Text

Para esse aplicativo, usaremos o Ruby 1.9.3 e o Rails 3.2.13. Antes de começar com as instruções a seguir, certifique-se de que eles estão instalados na sua máquina de desenvolvimento local.

A familiaridade com a linguagem de programação Ruby e com a estrutura Ruby on Rails é presumida e benéfica, mas não é estritamente necessária para acompanhar esse artigo.

Etapa 1. Crie um aplicativo Ruby on Rails

  1. Abra um prompt de comandos e crie um novo aplicativo Rails, no nosso caso, Blog:
    $ rails new Blog
    Creating a Rails application
    Creating a Rails application

    Se você tiver várias versões do Rails instaladas, é possível especificar a versão que usamos aqui:

    $ rails _3.2.13_ new Blog
  2. Como um rápido teste de segurança, abra outro prompt de comandos e inicie o servidor Rails. Lembre-se de executar o comando a seguir de dentro do diretório do aplicativo que foi criado pelo comando rails new , nesse caso, Blog. Isso iniciará o WEBrick no modo de desenvolvimento, que agora aceitará solicitações HTTP na porta 3000.
    $ rails s
    Starting a Rails server
    Starting a Rails server
  3. Acesse http://localhost:3000 no seu navegador para fazer uma solicitação para o servidor da Web local que acabamos de iniciar. Você deve ver uma página semelhante à mostrada abaixo. Isso confirma que o aplicativo está sendo executado corretamente no servidor. Agora é possível parar o servidor com segurança (pressionando CTRL+C, por exemplo). Rails's default index page
    Rails's default index page

Etapa 2. Crie modelos, visualizações e controladores

Para esse aplicativo, geraremos um scaffold, que é um modelo inicial fornecido pelo Rails que engloba um modelo, um controlador e as visualizações relevantes para nossas postagens do blog.

  1. Crie um novo scaffold usando o comando a seguir. Cada postagem terá um título e um corpo de texto, portanto nosso modelo Post terá dois campos, title e as variáveis do body, respectivamente, representados no banco de dados como uma coluna string e um text .
    $ rails generate scaffold Post title:string body:text

    A figura a seguir mostra uma série de arquivos gerados automaticamente pelo comando, incluindo um arquivo de migração em db/migrate que contém as informações necessárias para criar a tabela no banco de dados de acordo com os campos que acabamos de especificar.

    Generating Rails scaffold
    Generating Rails scaffold
  2. Após gerar o scaffold, precisamos criar a tabela Posts real em nosso banco de dados de desenvolvimento. Sustentando seu princípio de "Convenção sobre Configuração", a estrutura Rails, por padrão, pré-configurou para nós um banco de dados SQLite. Para criar a tabela, precisamos apenas executar os arquivos de migração. É possível fazer isso com o seguinte comando:
    $ rake db:migrate

    Rake é uma ferramenta de gerenciamento de tarefas amplamente adotada pela estrutura Rails. Cada projeto do Rails tem uma série de tarefas rake integradas. Nesse caso, nós simplesmente executamos as migrações de banco de dados para criar a tabela Posts .

Etapa 3. Edite o aplicativo Rails

  1. Primeiro, alteraremos a página inicial do nosso aplicativo. Com um editor, acesse config/routes.rb e inclua o código a seguir para informar ao Rails que o caminho / do aplicativo deve ser manipulado pela ação index do controlador posts :
    root :to => 'posts#index'
    Editing routes.rb
    Editing routes.rb
  2. Em seguida, acesse a pasta pública e renomeie o arquivo index.html para algo diferente ou simplesmente exclua o arquivo para que ele não seja exibido pelo servidor da Web.
  3. Agora inicie o servidor Rails novamente para ver as alterações, após as quais que é possível parar o servidor. Scaffold's default interface
    Scaffold's default interface

Etapa 4. Crie um aplicativo Ruby on Rails no IBM Cloud

  1. Acesse o site do IBM Cloud e efetue login. Crie uma conta gratuita se ainda não tiver uma.
  2. Após efetuar o login, você será redirecionado para um Dashboard. Nele você verá uma seção Applications e um link Criar um aplicativo . Clique nesse link.
  3. No Catalog exibido, haverá muitos componentes para escolher. Normalmente, você selecionará um tempo de execução de sua escolha e incluirá componentes e serviços conforme o necessário.

    Nesse caso, estamos interessados em criar e implementar um aplicativo Rails no IBM Cloud, então selecione o tempo de execução Ruby on Rails, escolha um Name para seu aplicativo e um nome de Host e clique em CREATE.

    O nome do host deve ser exclusivo em todo o ecossistema do IBM Cloud, portanto, talvez você precise ser criativo. Mas seu aplicativo terá uma URL exclusiva pronta para ser compartilhada.

    Naming a IBM Cloud Rails application
    Naming a IBM Cloud Rails application

    Depois que você clica em CREATE, você terá um aplicativo Rails de amostra em execução no IBM Cloud, que será mostrado no seu Dashboard. Clicar no link do aplicativo lhe concede acesso ao aplicativo de amostra em execução na nuvem.

  4. Queremos que nosso aplicativo do IBM Cloud armazene informações de postagens, então precisaremos criar um banco de dados para persistir essas informações. Para esse aplicativo, usaremos o serviço SQLDB, que é baseado no IBM DB2. Acesse seu Dashboard/Services e clique em Add a Service.
  5. Na categoria Data Management, clique em SQLDB. Selecione o aplicativo Rails que você criou, especifique arbitrariamente um nome para o serviço, (blogSQLDB aqui) e clique em CREATE. Adding an SQLDB database on IBM Cloud
    Adding an SQLDB database on IBM Cloud

    Quando solicitado a reiniciar seu aplicativo, clique em OK.

  6. Se você visitou a URL do aplicativo do IBM Cloud que acabou de criar, pode ter notado uma página de saudação. O aplicativo mostrando essa mensagem de boas-vindas é um aplicativo de amostra fornecido pelo IBM Cloud no momento em que você selecionou o tempo de execução Rails. Esse aplicativo de amostra do IBM Cloud agora está em execução na nuvem. Nós até incluímos um serviço de banco de dados nele.

    Mas esse não é nosso aplicativo Blog. Temos interesse nesse aplicativo de amostra apenas porque ele inclui um arquivo importante chamado manifest.yml, que especifica as informações necessárias para implementar nosso aplicativo no IBM Cloud.

    A estratégia aqui é pegar esse arquivo do aplicativo de amostra do IBM Cloud e usá-lo no nosso aplicativo Blog local. Dessa forma, poderemos realizar o push do nosso aplicativo para o IBM Cloud em vez de continuar a executar o aplicativo de amostra atualmente em execução no IBM Cloud.

    Clique no ladrilho do seu aplicativo recém-criado na seção Applications do seu painel. De lá, deve ser possível clicar no botão VIEW QUICK START na parte superior direita da página. Uma janela de introdução será exibida, como mostrado na imagem a seguir. Clique em Download the starter application package.

    Getting started with a IBM Cloud application
    Getting started with a IBM Cloud application
  7. Extraia o pacote, copie o arquivo manifest.yml e cole-o no diretório do seu aplicativo de blog local. Adding a manifest.yml file to a Rails application
    Adding a manifest.yml file to a Rails application

    Como mencionado, o arquivo manifest.yml é usado pelo IBM Cloud ao implementar um aplicativo. Ele fornece informações sobre os serviços incluídos, como host, número de instâncias, etc.

    manifest.yml content
    manifest.yml content

    Observação: Outra opção para obter o arquivo manifest.yml é fazer o download dele de nosso repositório no JazzHub. Se você fizer, lembre-se de alterar o nome do serviço, host e outras informações para serem relevantes para seu aplicativo.

Etapa 5. Prepare o aplicativo Blog para implementação no IBM Cloud

  1. Como nosso aplicativo usa o serviço SQLDB desenvolvido com IBM DB2, nosso aplicativo Blog local deve ser capaz de se comunicar com o DB2. Para fazer isso, você deve incluir o adaptador ibm_db adicionando gem 'ibm_db' no Gemfile do seu projeto.

    Comente ou exclua a linha de gem 'sqlite3' porque não iremos usá-la na implementação do IBM Cloud. Configure a versão do Ruby incluindo ruby '1.9.3' (ou qualquer outra versão que você esteja usando) próximo do topo do arquivo.

    Editing Gemfile
    Editing Gemfile
  2. Execute o comando a seguir para instalar o gem no seu ambiente de desenvolvimento local:
    $ bundle install

    Observação: Após instalar o adaptador ibm_db (gem Ruby), o aplicativo não conseguirá iniciar o servidor Rails e ser executado localmente a menos que tenhamos o DB2 instalado e configurado localmente ou alteremos o banco de dados para SQLite novamente (apenas no modo de desenvolvimento, por exemplo).

  3. Agora vamos alterar as configurações do ambiente de produção. Acesse config/environments/production.rb e defina dois parâmetros de configuração relacionados a ativos como true:
    config.assets.compile = true
    config.serve_static_assets = true
    Editing the production.rb file
    Editing the production.rb file
  4. A configuração de uma conexão com o banco de dados (database.yml) é uma etapa importante na implementação de um aplicativo Rails. No entanto, ao implementar um aplicativo Ruby on Rails no IBM Cloud, o arquivo database.yml é reescrito e configurado para ler a partir variáveis VCAP_SERVICES automaticamente, de forma que não é necessário configurar a conexão para seu serviço de banco de dados.

    Esse é um exemplo de como o IBM Cloud torna o desenvolvimento mais rápido ao simplificar a forma que os componentes e serviços interagem e se comunicam entre si.

Etapa 6. Implemente o aplicativo no IBM Cloud

Abra um prompt de comando e execute os seguintes comandos cf . Se você ainda não tiver instalado a linha de comando cf, é possível fazer isso pelo menu Get Started with <appname> mencionado anteriormente.

  1. Primeiro, vamos nos conectar ao IBM Cloud:
    $ cf api https://api.ng.bluemix.net
  2. Em seguida, fazer o login no IBM Cloud:
    $ cf login -u <user.email>

    Insira sua senha quando solicitado. Seu email e senha são os que você usou ao se registrar no IBM Cloud.

  3. Crie as tabelas no banco de dados SQLDB executando migrações no ambiente do IBM Cloud. O terminal -c (opção) nos permite executar um comando imediatamente após nosso código ser transferido por upload. Nesse caso, estamos migrando nosso banco de dados.
    $ cf push <appname> -c "bundle exec rake db:migrate"

    Dica: Quando estiver implementando um aplicativo, abra outro prompt de comandos e use o seguinte comando cf para acompanhar os logs do aplicativo enquanto o push dele está sendo realizado.

    $ cf logs <appname>

    Observação: Após executar o cf pushanterior, o aplicativo continuará tentando se conectar ao nosso servidor de aplicativos, mas falhará, pois ainda não o iniciamos, apenas executamos migrações. Verifique os logs para se certificar de que as tabelas foram criadas, em seguida é possível cancelar a operação de início.

  4. Agora que as migrações foram executadas, é possível implementar seu aplicativo:
    $ cf push <appname> -c "null"

    A propriedade cf (ferramenta de linha de comando) armazena o último comando enviado para -c e o usa sempre que implementamos nosso aplicativo. Ao enviar "null" para -c , podemos limpar o comando anterior e usar o script de início padrão do buildpack para executar nosso servidor de aplicativos.

  5. Parabéns, agora você tem um aplicativo Ruby on Rails em execução no IBM Cloud!Status of pushing Rails application to IBM Cloud' cloud
    Status of pushing Rails application to IBM Cloud' cloud
  6. Visualize o aplicativo no navegador clicando no link dele no IBM Cloud.Sample Rails blog app
    Sample Rails blog app

    Se você seguiu as etapas até aqui, notará duas principais diferenças entre essa imagem e a anterior. Uma é que criamos algumas postagens de amostra. A segunda é que incluímos alguns elementos de design de página da Web com HTML/CSS para tornar a aparência do aplicativo básico um pouco mais bonita. Se você verificar o código do nosso repositório, verá o código real que produz a página um pouco menos básica acima.

  7. Se você estiver interessado em revisar as tabelas e os dados contidos no serviço SQLDB em execução no IBM Cloud, acesse Dashboard/Services, clique no seu serviço SQLDB, inicie o console e clique em Database Viewer. Em Schemas, escolha o iniciado pela letra U ( U71290, por exemplo), que é o nome de usuário do serviço. Em Tables, clique em POSTS e, em seguida, clique em Sample Data para ver os dados.Exploring SQLDB database on IBM Cloud
    Exploring SQLDB database on IBM Cloud

Conclusão

Vamos recapitular rapidamente o que fizemos.

Desenvolvemos um aplicativo Rails local e o customizamos de acordo com nossas preferências. Criamos um aplicativo do IBM Cloud e incluímos um serviço de banco de dados daqueles oferecidos no catálogo atual e em constante expansão. Também usamos o arquivo manifest.yml pré-configurado do aplicativo do IBM Cloud de amostra para implementar (com a ferramenta de linha de comando cf ) nosso aplicativo local no IBM Cloud, substituindo o aplicativo de amostra que é carregado por padrão.

Esse aplicativo de blog básico não é tão interessante ou útil na verdade. Mas o que é realmente interessante é que com apenas alguns comandos, o aplicativo Rails simples que desenvolvemos foi implementado com sucesso no IBM Cloud e capacitado para usar o serviço SQLDB para armazenar e recuperar informações de postagem.

É possível usar essa mesma abordagem para implementar qualquer aplicativo Rails que você possa desenvolver, tão complexo quanto desejar, e empregar quantos serviços e componentes do IBM Cloud forem necessários.

Você poupará tempo e facilitará a implementação aproveitando esses ambientes de classificação empresarial totalmente gerenciados pela IBM e desenvolvidos com a nuvem do IBM SoftLayer. Quer você esteja usando o Rails para escrever um aplicativo de prova de conceito rápido ou criando um aplicativo essencial, o IBM Cloud tem o que você precisa.


Recursos para download

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Cloud computing
ArticleID=991033
ArticleTitle=Desenvolva um aplicativo de blog com o Ruby on Rails e IBM Cloud
publish-date=12052014