e ibm cloud desenvolva um aplicativo de blog com o ruby on ... · para esse aplicativo, usaremos o...

12
© Copyright IBM Corporation 2014. Todos os direitos reservados. Marcas Registradas Desenvolva um aplicativo de blog com o Ruby on Rails e IBM Cloud Página 1 de 12 Desenvolva um aplicativo de blog com o Ruby on Rails e IBM Cloud Lucas Sousa Lima ([email protected]) Software Developer, Big Data University Big Data University Thiago de Aguiar Leal Domingues ([email protected]) Software Developer, Big Data University Big Data University Luiz Gustavo Ferraz Aoqui ([email protected]) Software Developer, IBM IBM Antonio Cangiano Software developer and technical evangelist, IBM IBM Lucas Sousa Lima ([email protected] ) Software Developer, Big Data University Big Data University 05/Dez/2014 Neste artigo, exploramos como começar com o IBM Cloud criando um aplicativo Ruby on Rails de amostra que se conecta a um serviço SQLDB (desenvolvido nos bastidores com IBM DB2®). Você aprenderá como criar aplicativos do IBM Cloud, incluir serviços e componentes, publicar seu próprio código e implementar rapidamente atualizações na nuvem com um único comando. Inscreva-se no IBM CloudEsta plataforma em nuvem fornece muitos serviços grátis, tempos de execução e infraestrutura para ajudar a desenvolver e implementar rapidamente o seu próximo aplicativo móvel ou da web. 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

Upload: others

Post on 20-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: e IBM Cloud Desenvolva um aplicativo de blog com o Ruby on ... · 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

© Copyright IBM Corporation 2014. Todos os direitos reservados. Marcas RegistradasDesenvolva um aplicativo de blog com o Ruby on Rails e IBMCloud

Página 1 de 12

Desenvolva um aplicativo de blog com o Ruby on Railse IBM CloudLucas Sousa Lima ([email protected])Software Developer, Big Data UniversityBig Data University

Thiago de Aguiar Leal Domingues ([email protected])Software Developer, Big Data UniversityBig Data University

Luiz Gustavo Ferraz Aoqui ([email protected])Software Developer, IBMIBM

Antonio CangianoSoftware developer and technical evangelist, IBMIBM

Lucas Sousa Lima ([email protected] )Software Developer, Big Data UniversityBig Data University

05/Dez/2014

Neste artigo, exploramos como começar com o IBM Cloud criando um aplicativo Ruby onRails de amostra que se conecta a um serviço SQLDB (desenvolvido nos bastidores com IBMDB2®). Você aprenderá como criar aplicativos do IBM Cloud, incluir serviços e componentes,publicar seu próprio código e implementar rapidamente atualizações na nuvem com um únicocomando.

Inscreva-se no IBM Cloud™Esta plataforma em nuvem fornece muitos serviços grátis, tempos de execução einfraestrutura para ajudar a desenvolver e implementar rapidamente o seu próximo aplicativomóvel ou da web.

Normalmente, ao criar aplicativos e implementá-los na nuvem, você gastaria bastante tempoinstalando servidores, configurando-os com sua distribuição confiável do Linux® , instalandoos tempos de execução necessários, instalando e configurando bancos de dados, lidando comdependências de biblioteca e protegendo servidores. No entanto, com o IBM Cloud, é possível

Page 2: e IBM Cloud Desenvolva um aplicativo de blog com o Ruby on ... · 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

developerWorks® ibm.com/developerWorks/br/

Desenvolva um aplicativo de blog com o Ruby on Rails e IBMCloud

Página 2 de 12

se concentrar somente em escrever o código e a implementação pode levar apenas algunssegundos.

“ 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 pararealizar 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 (umserviço do IBM Cloud desenvolvido com IBM DB2), conectar o aplicativo ao banco de dados eimplementar 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 comas instruções a seguir, certifique-se de que eles estão instalados na sua máquina dedesenvolvimento 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

Se você tiver várias versões do Rails instaladas, é possível especificar a versão que usamosaqui:$ rails _3.2.13_ new Blog

2. Como um rápido teste de segurança, abra outro prompt de comandos e inicie o servidorRails. Lembre-se de executar o comando a seguir de dentro do diretório do aplicativo que

Page 3: e IBM Cloud Desenvolva um aplicativo de blog com o Ruby on ... · 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

ibm.com/developerWorks/br/ developerWorks®

Desenvolva um aplicativo de blog com o Ruby on Rails e IBMCloud

Página 3 de 12

foi criado pelo comando rails new , nesse caso, Blog. Isso iniciará o WEBrick no modo dedesenvolvimento, que agora aceitará solicitações HTTP na porta 3000.$ rails s

3. Acesse http://localhost:3000 no seu navegador para fazer uma solicitação para o servidorda Web local que acabamos de iniciar. Você deve ver uma página semelhante à mostradaabaixo. 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).

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

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

1. Crie um novo scaffold usando o comando a seguir. Cada postagem terá um título e umcorpo 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áriaspara criar a tabela no banco de dados de acordo com os campos que acabamos deespecificar.

Page 4: e IBM Cloud Desenvolva um aplicativo de blog com o Ruby on ... · 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

developerWorks® ibm.com/developerWorks/br/

Desenvolva um aplicativo de blog com o Ruby on Rails e IBMCloud

Página 4 de 12

2. Após gerar o scaffold, precisamos criar a tabela Posts real em nosso banco de dados dedesenvolvimento. Sustentando seu princípio de "Convenção sobre Configuração", a estruturaRails, 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 seguintecomando:$ rake db:migrate

Rake é uma ferramenta de gerenciamento de tarefas amplamente adotada pela estruturaRails. Cada projeto do Rails tem uma série de tarefas rake integradas. Nesse caso, nóssimplesmente 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 aplicativodeve ser manipulado pela ação index do controlador posts :root :to => 'posts#index'

Page 5: e IBM Cloud Desenvolva um aplicativo de blog com o Ruby on ... · 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

ibm.com/developerWorks/br/ developerWorks®

Desenvolva um aplicativo de blog com o Ruby on Rails e IBMCloud

Página 5 de 12

2. Em seguida, acesse a pasta pública e renomeie o arquivo index.html para algo diferente ousimplesmente 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.

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çosconforme 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 eum nome de Host e clique em CREATE.O nome do host deve ser exclusivo em todo o ecossistema do IBM Cloud, portanto, talvezvocê precise ser criativo. Mas seu aplicativo terá uma URL exclusiva pronta para sercompartilhada.

Page 6: e IBM Cloud Desenvolva um aplicativo de blog com o Ruby on ... · 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

developerWorks® ibm.com/developerWorks/br/

Desenvolva um aplicativo de blog com o Ruby on Rails e IBMCloud

Página 6 de 12

Depois que você clica em CREATE, você terá um aplicativo Rails de amostra em execuçãono IBM Cloud, que será mostrado no seu Dashboard. Clicar no link do aplicativo lhe concedeacesso 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 esseaplicativo, 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 oaplicativo Rails que você criou, especifique arbitrariamente umnome para o serviço, (blogSQLDB aqui) e clique em CREATE.

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 é umaplicativo de amostra fornecido pelo IBM Cloud no momento em que você selecionou otempo de execução Rails. Esse aplicativo de amostra do IBM Cloud agora está em execuçãona nuvem. Nós até incluímos um serviço de banco de dados nele.

Page 7: e IBM Cloud Desenvolva um aplicativo de blog com o Ruby on ... · 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

ibm.com/developerWorks/br/ developerWorks®

Desenvolva um aplicativo de blog com o Ruby on Rails e IBMCloud

Página 7 de 12

Mas esse não é nosso aplicativo Blog. Temos interesse nesse aplicativo de amostraapenas porque ele inclui um arquivo importante chamado manifest.yml, que especifica asinformaçõ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 nonosso aplicativo Blog local. Dessa forma, poderemos realizar o push do nosso aplicativopara o IBM Cloud em vez de continuar a executar o aplicativo de amostra atualmente emexecuçã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 emDownload the starter application package.

Page 8: e IBM Cloud Desenvolva um aplicativo de blog com o Ruby on ... · 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

developerWorks® ibm.com/developerWorks/br/

Desenvolva um aplicativo de blog com o Ruby on Rails e IBMCloud

Página 8 de 12

7. Extraia o pacote, copie o arquivo manifest.yml e cole-o no diretório do seu aplicativo de blog

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

Observação: Outra opção para obter o arquivo manifest.yml é fazer o download dele denosso repositório no JazzHub. Se você fizer, lembre-se de alterar o nome do serviço, host eoutras 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 aplicativoBlog local deve ser capaz de se comunicar com o DB2. Para fazer isso, você deve incluir oadaptador 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çãodo IBM Cloud. Configure a versão do Ruby incluindo ruby '1.9.3' (ou qualquer outra versãoque você esteja usando) próximo do topo do arquivo.

Page 9: e IBM Cloud Desenvolva um aplicativo de blog com o Ruby on ... · 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

ibm.com/developerWorks/br/ developerWorks®

Desenvolva um aplicativo de blog com o Ruby on Rails e IBMCloud

Página 9 de 12

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 econfigurado localmente ou alteremos o banco de dados para SQLite novamente (apenas nomodo 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 ativoscomo true:config.assets.compile = trueconfig.serve_static_assets = true

4. A configuração de uma conexão com o banco de dados (database.yml) é uma etapaimportante na implementação de um aplicativo Rails. No entanto, ao implementar umaplicativo Ruby on Rails no IBM Cloud, o arquivo database.yml é reescrito e configuradopara ler a partir variáveis VCAP_SERVICES automaticamente, de forma que não é necessárioconfigurar 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 simplificara forma que os componentes e serviços interagem e se comunicam entre si.

Page 10: e IBM Cloud Desenvolva um aplicativo de blog com o Ruby on ... · 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

developerWorks® ibm.com/developerWorks/br/

Desenvolva um aplicativo de blog com o Ruby on Rails e IBMCloud

Página 10 de 12

Etapa 6. Implemente o aplicativo no IBM Cloud

Abra um prompt de comando e execute os seguintes comandos cf . Se você ainda não tiverinstalado 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 registrarno IBM Cloud.

3. Crie as tabelas no banco de dados SQLDB executando migrações no ambiente do IBMCloud. O terminal -c (opção) nos permite executar um comando imediatamente após nossocó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 useo 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 seconectar ao nosso servidor de aplicativos, mas falhará, pois ainda não o iniciamos, apenasexecutamos 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 enviadopara -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 paraexecutar nosso servidor de aplicativos.

5. Parabéns, agora você tem um aplicativo Ruby on Rails em execução no IBM

Cloud!

Page 11: e IBM Cloud Desenvolva um aplicativo de blog com o Ruby on ... · 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

ibm.com/developerWorks/br/ developerWorks®

Desenvolva um aplicativo de blog com o Ruby on Rails e IBMCloud

Página 11 de 12

6. Visualize o aplicativo no navegador clicando no link dele no IBM

Cloud.Se você seguiu as etapas até aqui, notará duas principais diferenças entre essa imagem ea anterior. Uma é que criamos algumas postagens de amostra. A segunda é que incluímosalguns elementos de design de página da Web com HTML/CSS para tornar a aparência doaplicativo 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çoSQLDB em execução no IBM Cloud, acesse Dashboard/Services, clique no seuserviço SQLDB, inicie o console e clique em Database Viewer. Em Schemas, escolhao 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.

ConclusãoVamos 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 daquelesoferecidos no catálogo atual e em constante expansão. Também usamos o arquivo manifest.ymlpré-configurado do aplicativo do IBM Cloud de amostra para implementar (com a ferramenta delinha de comando cf ) nosso aplicativo local no IBM Cloud, substituindo o aplicativo de amostraque é carregado por padrão.

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

Page 12: e IBM Cloud Desenvolva um aplicativo de blog com o Ruby on ... · 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

developerWorks® ibm.com/developerWorks/br/

Desenvolva um aplicativo de blog com o Ruby on Rails e IBMCloud

Página 12 de 12

É 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 doIBM Cloud forem necessários.

Você poupará tempo e facilitará a implementação aproveitando esses ambientes de classificaçãoempresarial 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 oucriando um aplicativo essencial, o IBM Cloud tem o que você precisa.

© Copyright IBM Corporation 2014. Todos os direitos reservados.(www.ibm.com/legal/copytrade.shtml)Marcas Registradas(www.ibm.com/developerworks/br/ibm/trademarks/)