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

Victor Shinya
8 min readNov 7, 2018

Se você chegou até aqui, significa que você possui interesse em aprender mais sobre a 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 (o antigo 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 na IBM Cloud, na aba Compute

Veja o vídeo abaixo, com um resumo sobre IaaS

Explicando Infrastruture-as-a-Service

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 da 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

Na página inicial do Cloud Foundry, dentro da IBM Cloud — para acessar, clique no menu hamburguer (canto superior esquerdo) e clique no item Cloud Foundry — e clique no botão create dentro da caixa Public Applications. Nesta página você consegue visualizar todas as linguagens suportadas pela plataforma, como Node.js, Java, Python, Golang, Swift e muitas outras.

Página inicial de Cloud Foundry na IBM Cloud
Página de configuração de uma nova aplicação Cloud Foundryhttps://cloud.ibm.com/catalog/starters/cloud-foundry

Veja o vídeo abaixo, com um resumo sobre PaaS

Explicando Platform-as-a-Service

E este vídeo, com a explicação sobre a plataforma Cloud Foundry.

Explicando Cloud Foundry

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 no 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.

Lista com alguns dos serviços de SaaS disponíveis na 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).

IBM Cloud Functions — serviço de Function-as-a-Service, disponível na IBM Cloud

Atualmente o serviço de Serverless na IBM Cloud suporta as seguintes linguagens: Node.js, Swift, Java, Python, Ruby, Golang, PHP, .NET e qualquer outra linguagem suportada pelo Docker (como Rust, C, C++ e outros).

Lista dos Runtimes suportados no IBM Cloud Functions

Caso de uso: 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á que pagar um valor a mais para comprar máquinas. Se pensar nos momentos que antecedem o evento e no momento 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.

A 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 (ou On-Premises), 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 na IBM Cloud

Agora iremos subir uma nova aplicação em Golang dentro da IBM Cloud. A maneira mais rápida e fácil (além de econômica) de subir na nuvem é utilizando o Runtime de Go — 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. Na 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:

Vou usar uma aplicação, de exemplo, em Golang chamado Go-Cloud. Você pode seguir o mesmo processo e subir outros projetos desenvolvidos em outras linguagens (veja a lista acima, na seção Platform-as-a-Service).

1. Acesse a plataforma da IBM Cloud e crie uma instancia de Go

Acesse a página para criação de nova aplicação Cloud Foundry, no https://cloud.ibm.com/catalog/starters/cloud-foundry. Dentro da página de configuração, você deve ver um pouco para baixo o item "Go". Clique nele. Você deve nomear a aplicação (lembre-se de que o nome é usado para gerar a URL da aplicação na IBM Cloud, ficando {nome-da-aplicação}.mybluemix.net). Ao nomear a aplicação e definir a URL, clique no botão "Criar".

Criação de uma nova aplicação Cloud Foundry

2. Baixe a aplicação do Github no Terminal (hoje eu uso o Hyper para MacOS)

Abra o seu terminal. Ele será usado para baixar a aplicação. Para isso, iremos utilizar o comando git.

git clone https://github.com/victorshinya/go-cloud.git

Depois de baixar, basta acessar a aplicação e ir para o passo seguinte.

cd go-cloud/

3. Autenticação no Terminal

Este é um passo em que você poderá fazer mais de uma vez, já que a 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).

Utilize a flag --sso caso você tenha um email IBM (ibm.com).

ibmcloud login
Autenticação na IBM Cloud usando SSO (Single Sign-On)

Após autenticar, você ainda deve executar um comando para que o CLI faça o deploy na sua Organização Cloud Foundry:

ibmcloud target --cf
Localização da Org e Space na Cloud Foundry

4. Subir o projeto na IBM Cloud

Acesse a pasta deployments para visualizar o arquivo manifest.yml, para assim ter acesso as configurações de a aplicação Cloud Foundry.

cd deployments

Veja um exemplo abaixo:

---
applications:
- name: gocloud
memory: 64M
instances: 3
disk_quota: 64M
buildbacks:
- go_buildpack
path: ../

Depois, execute o comando. Este é o comando que faz a mágica acontecer. Execute-o abaixo para subir uma aplicação na sua conta da IBM Cloud. Caso você tenha um arquivo manifest.yml (como no exemplo) a IBM Cloud irá utilizar as configurações deste arquivo.

ibmcloud cf push

Você também pode executar o comando com o nome da aplicação no final. Assim, a IBM Cloud irá localizar a aplicação na sua conta e atualizará. Caso não exista uma aplicação com o nome informado, ela irá criar uma nova aplicação com a configuração padrão (256MB de memória).

ibmcloud cf push "nome-da-aplicação"

Depois de iniciar a aplicação, acesse a URL.

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

Na página inicial, após a autenticação, você irá ver as principais informações da sua conta, incluindo lista de recursos, permissões de acesso, tickets e outros.

Clique em “Visualizar recursos” e depois, procure pela sua aplicação na lista de “Cloud Foundry Apps”. Clique no nome da aplicação.

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ê pode clicar no botão "Rotas" e ver a lista de URLs usadas no mesmo projeto. Clique em cima de uma delas que o seu aplicativo será aberto automaticamente no seu navegador.

PRONTO! Você tem uma aplicação na IBM Cloud e já consegue acessar!

--

--

Victor Shinya

Enterprise Solutions Architect @AWS | Previously @IBMCloud @IBMDeveloper 🇧🇷