Bluemix para gente grande

Você sabia que tudo que se faz na interface web do Bluemix.net pode ser feito via a API do Bluemix ?

Na verdade, no calor do dia a dia, para usar o Bluemix de forma realmente produtiva, você vai acessar menos a interface web e fará uso dos comandos que colocam o Bluemix para trabalhar por você. Esse post tem como objetivo explicar de forma prática como é o uso da interface de linha de comando do Bluemix.

Sendo uma Plataforma como Serviço, o Bluemix pode ser visto como uma grande central de serviços de TI onde “minions” criam (provisionam) e configuram recursos para você usar em seus aplicativos. Recursos como bancos de dados, serviços de mensageria, de analítica avançada, ou o próprio espaço onde seu código vai rodar. Esses espaços para seu código são chamados de runtimes ou buildpacks e exemplos de runtimes são os de Node, o de Python, PHP, Java etc.

Uma aplicação completa é composta por:

Buildpack(s) junto com o código de sua aplicação + Serviços que auxiliam o seu código

Então, como exemplo de aplicação completa, provisionaremos um buildpack PHP com os serviços MySQL e Object Storage, uma típica aplicação LAMP estendida. Faremos isso sem usar a interface web, só pela linha de comando, que é mais poderosa por permitir automações com scripts.

minhaapp-arquitetura

Para começar, baixe e instale em seu laptop o CLI (command line interface) do Bluemix para Mac, Linux ou Windows. A partir daí você já pode comandar o Bluemix a fazer coisas para você. Rode os comandos abaixo diretamente de seu laptop.

  1. Faça login no Bluemix com o mesmo usuário e senha que você usa no site Bluemix.net:
    cf login
  2. Provisione um DB MySQL (cleardb) pequeno (plano spark) e chame-o de minhaapp-banco:
    cf create-service cleardb spark minhaapp-banco
  3. Provisione o serviço de Object Storage pequeno (plano Free) da SoftLayer e chame-o de minhaapp-objetos:
    cf create-service Object-Storage Free minhaapp-objetos

Calma lá, como sei que o nome do serviço MySQL no Bluemix é cleardb e que ele tem o plano spark ?

Fácil, usei o comando cf marketplace para descobrir. Assim:

  • Lista todos os serviços do catálogo do Bluemix:
    cf marketplace
  • Obtem detalhes sobre planos do serviço cleardb:
    cf marketplace -s cleardb
  • Lista os buildpacks disponíveis:
    cf buildpacks
  1. Prepare seu código para rodar no Bluemix…
    Como nosso exemplo é PHP, sua app deve estar escrita em PHP. Você pode usar algum software PHP já pronto como o WordPress, Drupal etc. Para simplificar, tenha o código completo de sua aplicação descompactado e pronto em seu laptop no diretório minhaapp. No nosso exemplo, usaremos uma app de 1 linha que simplesmente mostra informações sobre o PHP do servidor, eis o código do nosso arquivo minhaapp/index.php:

    <?php
    
    phpinfo();
    
    ?>
  2. Envie seu código ao Bluemix e comece a executá-lo com a ajuda do php_buildpack, chame-o de minhaapp e torne-o acessível através do hostname minhaapp.mybluemix.net:
    cd minhaapp;
    cf push minhaapp -b php_buildpack --hostname minhaapp -p .;
  3. Conecte na minhaapp os serviços provisionados nos passos 2 e 3 acima:
    cf bind-service minhaapp minhaapp-banco;
    cf bind-service minhaapp minhaapp-objetos;
    cf restage minhaapp;

Pronto, sua aplicação já está rodando e consumindo serviços de banco de dados e de object storage. Você pode constatar isso acessando http://minhaapp.mybluemix.net (se foi esse o nome que você realmente usou), rolar até a tabela Environment e ver que a variável VCAP_SERVICES te dá detalhes sobre como acessar os serviços provisionados — usuários, senhas, hostnames etc. Para mim apareceu isto:

minhaapp-env

Os passos 5 e 6 podem ser reduzidos a um simples cf push se você criar um arquivo manifest.yml como neste exemplo.

Claro que executar todos esses comandos fazem as coisas pipocarem na interface gráfica do Bluemix.net também. O verdadeiro poder de comandar o Bluemix desta maneira (ao invés da interface gráfica) é que se pode automatizar muitas coisas complexas com scripts simples como neste exemplo.

As ferramentas de linha de comando do Bluemix podem ser estendidas com plugins que fazem coisas ainda mais incríveis. Comece a explorar os plugins disponíveis aqui.

This entry was posted in Exemplos and tagged , , by Avi Alkalay. Bookmark the permalink.

About Avi Alkalay

Avi Alkalay é consultor especializado em tecnologias de ponta. Cada uma em seu tempo, Avi é pioneiro no uso e estímulo de tendências como supercomputação, segurança, open source e Linux, grid, virtualização, gestão da informação e conteúdo, web 2.0, programação e outras. Hoje é arquiteto de mobilidade, cloud, UX, analítica, IoT na IBM e auxilia empresas a inovarem “remixando” essas novas tendências.

2 thoughts on “Bluemix para gente grande

Leave a Reply

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