O que é o IBM Cloud e como subir a sua primeira aplicação na nuvem

Se você chegou até aqui, significa que você possui interesse em aprender mais sobre o IBM Cloud e o que você consegue fazer com a plataforma, seja em projetos pessoais ou até profissionais — em um freelance, uma startup ou na sua empresa.

IBM Cloud (ou IBM Bluemix) é a plataforma cloud da IBM onde une Platform-as-a-Service (PaaS), Infrastructure-as-a-Service (IaaS), Software-as-a-Service (SaaS) e Function-as-a-Service (FaaS) em um catálogo com mais de 170 serviços, da IBM e Third-Party (terceiros).

Infrastructure-as-a-Service (IaaS)

Os serviços de Infrastructure-as-a-Service (IaaS) permitem que você provisione e gerencie a sua infraestrutura na núvem em um modelo no qual você paga somente por aquilo que usar. Você tem acesso a recursos computacionais, como servidores, armazenamentos, redes, entre outros serviços, dentro da plataforma. Você consegue escalar rapidamente a sua infraestrutura, alocando mais recursos, em um intervalo de tempo menor se comparado com o modelo tradicional, onde você tem toda a infraestrutura (física) dentro da sua empresa.

Lista com alguns dos serviços de IaaS disponíveis no IBM Cloud

Platform-as-a-Service (PaaS)

Os serviços de Platform-as-a-Service (PaaS) — baseados na plataforma cloud open source Cloud Foundry — permitem que você crie, gerencie e entregue diversas soluções na nuvem. Ele abstrai a camada de infraestrutura, permitindo que o desenvolvedor foque no que traz valor para seus usuários, a solução. Você não precisa configurar uma máquina do zero, instalando todas as ferramentas necessárias para executar a solução. Dentro do IBM Cloud, você tem acesso a ambientes pré-configurados, divididos por linguagens de programação.

"Fail fast, succeed faster" — Falhe rápido, tenha sucesso mais rápido ainda

Dentro da área de Compute, você consegue ver as linguagens suportadas, como Java, Node.js, Python, Golang e outras linguagens disponíveis.

Lista das linguagens suportadas no IBM Cloud

Software-as-a-Service (SaaS)

Os serviços de Software-as-a-Service (SaaS) permitem que você use utilize aplicações (ou soluções) prontas em modelo de subscrição (Subscription — Pague pelo consumo por mês). Você tem acesso aos serviços tanto da IBM quanto de terceiros. Por exemplo, ao invés de você criar um serviço de envio de SMS, você pode utilizar o serviço do Twilio e apenas pagar pelo número de SMSs enviados por mês. Você tem o ganho de tempo e velocidade para poder focar em outras partes da sua solução.

Exemplo dos serviços disponíveis no IBM Cloud

Function-as-a-Service (FaaS)

O serviço de Function-as-a-Service (FaaS), IBM Cloud Functions, permite que você crie, gerencie e entregue soluções na nuvem em um modelo baseado em eventos. Nele, você cria os seus serviços no formato de funções, que funcionam por um evento, como acesso a uma API ou uma alteração no banco de dados, por exemplo. Você é cobrado pelo número de vezes em que é executado uma Action, ou uma Web Action (assim como é chamado uma ação dentro do Functions) por mês. E por ter suporte a diversas linguagens de programação, é possível criar novas soluções utilizando uma arquitetura de microsserviços (Microservices Architecture).

Serviço de Serverless no IBM Cloud — IBM Cloud Functions

Atualmente o serviço de Serverless no IBM Cloud suporta as seguintes linguagens: Node.js, Swift, Java, Golang (ou Go), PHP, Python e qualquer outra linguagem suportada pelo Docker (acesse https://hub.docker.com/).

E-commerce durante a Black Friday

Um caso bem comum é de um e-commerce que, próximo do evento da Black Friday, tem que preparar toda a infraestrutura para suportar um número grande e massivo de usuários. Em uma infraestrutura tradicional você terá de pagar um valor a mais para comprar máquinas. Se pensar nos momentos que antecedem o evento e nos momentos pós evento, aquelas novas máquinas estarão ociosas. Com o uso de uma infraestrutura “as-a-Service” você consegue garantir uma boa base que aguente os momentos de pico alocando mais recursos computacionais. Em momentos de baixo acesso ocorre uma redução de recursos gerando uma economia devido a não existência de ociosidade de máquinas e recursos.

Grande Vantagem

A grande vantagem do uso desses serviços é o valor cobrado no final do mês. Ao invés de comprar e montar toda a infraestrutura in-house, você pode usufruir de todo o recurso computacional na núvem pagando apenas a quantidade consumida. É uma mudança de minset de um modelo inflexível para um modelo escalável.


Sua primeira aplicação no IBM Cloud

A partir de agora vamos passar pelo passo a passo de como subir uma aplicação em Node.js. A maneira mais simples e prática de subir uma aplicação Node.js na núvem é utilizando o Runtime de SDK for Node.js — um dos serviços de Platform-as-a-Service (PaaS).

Não se preocupe. Para criar uma nova conta não é necessário um cartão de crédito. Basta ter um email e uma senha. No IBM Cloud você tem acesso a uma camada gratuita, Lite, com um catálogo com mais de 50 serviços disponíveis, incluindo Watson e Runtimes de diversas linguagens de programação.

Pré requisitos:

Para este post eu vou usar um projeto exemplo em Node.js chamado Sample Code. Se você quiser usar um projeto já pronto ou em andamento, não tem nenhum problema. A ideia é mostrar como subir uma aplicação no IBM Cloud utilizando PaaS.

1. Acesse a plataforma do IBM Cloud e crie uma instancia de Node.js

Entre na plataforma e acesse o catálogo, clicando no menu no canto superior esquerdo. Dentro do catálogo, você deve ver um pouco para baixo o item "SDK for Node.js". Clique nele. Você deve nomear a aplicação (lembre-se de que o nome é usado para a URL do IBM Cloud, ficando nome.mybluemix.net). Ao nomear a aplicação e definir a URL, clique no botão "Criar".

Dê o nome da aplicação e aperte o botão “Criar”

2. Autenticação no Terminal (hoje eu uso o Hyper para MacOS)

Este é um passo que você irá fazer mais de uma vez, já que o IBM Cloud pede pra re-autenticar de tempos em tempos, por questão de segurança. Abra um terminal de comando e digite o comando abaixo pra autenticar com a sua conta, informando seu email e senha. Logo você verá a mensagem de "OK", em verde. Você deve selecionar uma conta (se a sua conta for nova, você verá apenas uma conta).

ibmcloud login
Resultado do comando de "ibmcloud login"

3. Selecionar a Organização e o Espaço correto (isso não é automático)

De fato não é automático, então é necessário que você informe após a autenticação. Execute o comando abaixo, substituindo os valores pelos seus dados corretamente (se tiver dúvida de como achar, dê uma olhada na imagem abaixo)

Como achar a Organização e o Espaço facilmente
ibmcloud target -o sua_org -s seu_espaco
Resultado do comando de “ibmcloud target […]”

4. Subir o projeto no IBM Cloud

O comando que faz a mágica acontecer. Basta informar o nome da aplicação, criada no IBM Cloud e ele irá fazer subir o projeto.

ibmcloud app push nome_do_seu_app

Acesse a URL do seu projeto!

Extra: como ver a URL da sua aplicação

Acesse o IBM Cloud. Na página inicial, após a autenticação, você irá ver todas as aplicações e todos os serviços criados. Clique na sua aplicação.

Dashboard do IBM Cloud

Você tem duas opções: clicar no botão "Visite a URL do aplicativo" ou caso não esteja aparecendo (acontece em contas Lite) você clica no botão "Rotas" e veja a lista de URLs usadas no mesmo projeto. Clique em cima de uma delas que o seu aplicativo será aberto automaticamente no seu navegador.

Detalhes da sua aplicação

PRONTO! Você tem um projeto no IBM Cloud e já consegue acessar!

Até a próxima!