IBM Cloud além do Watson – Parte 1

Conheça a cloud da IBM e descubra que mesmo se deixarmos o Watson de lado, ela não deve nada a AWS e ao Azure.

IBM, a gigante de hardware do inicio da era da computação, começou a perder terreno com o crescimento do computador pessoal, historia que poderia ser bem diferente se os executivos da empresa tivessem sacado o que Bill Gates já sabia, que o computador pessoal estaria na casa de todas as famílias e que o software seria a grande mina de dinheiro e não o hardware, como a IBM acreditava na época.

Nada mais emblemático para ilustrar essa parte da história do que o vídeo abaixo. Ele retrata uma famosa reunião entre IBM e uma “startup” chamada MICROSOFT. Nesta reunião, Bill Gates fecha um acordo com a IBM para licenciar o uso do DOS em seus computadores (a cena faz parte do filme piratas do vale do silício).

Os tempos então mudaram e a IBM precisou se reinventar e entrou de vez no mercado de software. A grande reviravolta veio em 2011 com o lançamento do Watson, na época, um computador criado para responder perguntas e respostas baseado em linguagem natural. Estava começando a popularização do machine learning.

Elementar meu caro Watson! a famosa frase referente ao fiel companheiro de Sherlock não tem nada a ver com o nome da plataforma da IBM. O nome é uma homenagem ao primeiro CEO da empresa, Thomas John Watson.

No ano de 2011, o Watson participou do programa Jeopardy dos EUA, um programa de perguntas e respostas e enfrentou os dois maiores vencedores da historia do programa. O resultado foi uma vitória esmagadora da I.A da IBM. O Watson terminou o programa com $77,147 enquanto os dois participantes ficaram com $24,000 e $21,600 .

Em 2014 a IBM lançou o bluemix, a sua plataforma de serviços (PaaS). Embora nunca tenha chegado ao status dos big players de cloud (AWS e Azure), com a evolução do Watson, integrado aos seus serviços baseados no cloud foundry, apache openwhisky (serverless) e vários outros produtos, vem conseguindo se manter relevante e tem um papel de destaque hoje quando pensamos em serviços baseados em I.A.

Neste artigo vamos criar uma conta na IBM Cloud e vamos abordar vários serviços e tópicos sobre a plataforma.

The N00b Path

Antes de criar a nossa conta e explorar a IBM Cloud, é muito importante deixar claro o que vão encontrar daqui em diante nesta série de artigos.

Se você teve experiencias ruins com os produtos IBM devido a sua complexidade, vai se surpreender bastante.

Os produtos e serviços da IBM Cloud, salvo raras exceções, são bastante intuitivos, embora alguns sejam complexos devido a sua natureza.

Produtos mais complexos, são assuntos para outros artigos como o nosso artigo sobre chatbot utilizando o Watson Assistant e o artigo sobre o WKS para treinamento de I.A.

Vamos começar!

Criando a sua conta na IBM

Acesse a url abaixo e crie a sua conta selecionando email, nome e região.

https://cloud.ibm.com/registration

Apos o cadastro, você vai receber uma e-mail de confirmação. É necessário confirmar o e-mail para finalizar o registro.

Apos a ativação, clique no botão Log In e acessa a cloud.

Na estrutura da IBM, O login é chamado de IBMiD. O valor que você deve informar neste campo é o e-mail que você cadastrou.

No primeiro login será apresentada a página abaixo com algumas informações sobre o uso e privacidade. Clique em Proceder e siga em frente.

Agora você já está acessando a sua conta na IBM. A tela inicial apresenta um dashboard. Vamos dar uma olhada nessa tela

Menu Hamburguer

No menu temos uma lista de categorias de serviços oferecidos pela IBM cloud. Recursos como o Cloud Foundry, Kubernetes, Functions, Watson e vários outros.

Create Resource

Neste botão você será apresentado a uma lista completa de serviços para criar um resource para sua conta. É muito parecido com as informações existentes no menu hamburguer, mas organização é diferente e facilita para quem já está mais familiarizado com a cloud.

Este item pode ser acessado de qualquer parte da IBM cloud clicando no menu superior Catalog

Support Cases

Caso tenha aberto algum chamado de suporte, você pode acompanhar os status deles por aqui. Caso precise abrir algum chamado, use o link no menu superior Support -> Manage Cases -> Create new case

Apps

Aqui são exibidos os resources que você criou para a sua conta, mas existe um local no menu hamburguer chamado Resource List que mostra essas informações de uma forma mais usual.

Serviços IBM Cloud

Clique agora em Create Resource e vamos conhecer um pouco mais sobre os serviços disponíveis.

Vamos falar aqui somente sobre os serviços com opção Lite, ou seja, que possuem modelos gratuitos. Existem dezenas de outros serviços, caso queira conhece-los, remova o filtro ibm:lite da barra de busca do catalogo (ver imagem abaixo)

O modelo gratuito da IBM não possui limite de tempo, você pode usa-lo por quanto tempo desejar.

Compute / Cloud Foundry

Esta categoria de serviços contem uma serie de plataformas prontas para desenvolvimento para diversas linguagens. O objetivo aqui não é administrar uma maquina virtual com a sua aplicação, e sim um serviço.

O Cloud Foundry é uma iniciativa PaaS (Plataform as a Service) opensource. A sua estrutura não é exclusiva da IBM, outras clouds podem utilizar o software para fornecer PaaS aos seus clientes. Para quem conhece a AWS, é o equivalente ao elastic beanstalk.

Nesta estrutura da IBM, você pode criar um ambiente para desenvolvimento em java, .NET core, nodeJS, Go, php, python e outras. Também pode escalonar facilmente essa estrutura, ao invés de configurar maquinas virtuais atrás de um load balancer.

Uma desvantagem do uso da cloud é que ao utilizar seus recursos, você acaba ficando preso a ela e não consegue migrar para outra estrutura caso necessário (para essa “amarração” usamos o termo lock-in). Neste ponto, com o uso do cloud foundry, você pode migrar para a cloud do google ou da microsoft (azure), pois ambos fazem parte do Cloud Foundry Foundation. Ou seja, pelo menos por aqui, não temos lock-in.

Container Registry

Este serviço é utilizado para gerenciar containers docker dentro de um cluster de kubernetes. Para utilizar este serviço você precisa instalar o IBM Cloud cli, que vai sincronizar seus container com o cluster na IBM

Cloud Object Storage

Serviço de armazenamento na nuvem semelhante ao S3 da AWS. Você pode organizar e armazenar arquivos com alta disponibilidade, acessível através de APIs

A.I

Aqui entramos na família de serviços do Watson. São 15 serviços gratuitos para explorar a I.A mais famosa da atualidade.

Com os serviços acima temos soluções para construção de chatbots, reconhecimento de imagens, conversão de texto para áudio, conversão de áudio para texto, entendimento de linguagem natural, studio para treinamento de I.A, serviço de busca e analise de emoções.

Não vamos conseguir detalhar os serviços nesse artigo, mas em breve podemos abordar outros serviços do Watson. Caso queira conhecer mais, já falamos sobre esses serviços aqui no codechain: Watson Assistant e WKS

Analytics

Os serviços de analytics são focados em BI. Você pode configurar e gerenciar ambientes hadoop, spark e utilizar o IBM Cognos.

DataBase

Nesta etapa você pode achar estranho as poucas opções. Somente o DB2, que é da própria IBM e o Cloudant, que é um banco noSQL baseado em JSON estão disponíveis.

O que ocorre é que os bancos mais tradicionais, como MySQL e PostgreSQL não possuem versões gratuitas na IBM. Se você remover o filtro LITE, verá que uma grande quantidade de opções estará disponível.

Developer Tools

Os serviços dessa categoria são para apoio no processo de implementação de software . São ferramentas para analise de log (utilizando o kibana que falamos no artigo sobre elasticsearch), construção de pipeline CI/CD e outras ferramentas focadas em monitoramento e devops.

Integration

São serviços focados em facilitar a integração entre dois ou mais sistemas/apps. O API connect é um desses serviços e ele nada mais é do que o projeto loopback do nodeJS encapsulado pela IBM, com algumas funcionalidades extras. O API connect permite criar facilmente uma API REST utilizando o loopback internamente.

Outro serviço disponível é o APP Connect, que é uma plataforma do tipo BaaS (Backend-as-a-Service), onde você realiza a integração entre diversas entradas e saídas. Ele reduz o tempo para implementar integrações com vários serviços, criando esquemas de workflow e notificação.

Existem serviços semelhantes ao APP connect, como back4app e kinvey. Se você for um desenvolvedor pouco experiente ou não sacar muito bem da parte de backend, pode ser uma boa opção para o seu negocio. Se tiver disposto a pagar o preço é claro!

Internet of Things

Este serviço cria um modo de gerenciamento de dispositivos de IOT, fornecendo relatório de analise, API rest pra integração e vários outros recursos.

Para quem está em busca de soluções para o desenvolvimento em IOT. Esta solução funciona muito bem em conjunto com outro produto da IBM, o node-red. Falaremos em breve sobre ele aqui no codechain.

Security and Identity

Fornece serviços relacionados a segurança, estes serviços costumam ser usados em conjuntos com outros serviços para aumento de segurança. São soluções semelhantes ao IAM na AWS e outros recursos como criptografia.

Web and Mobile

Serviços para integrar com celular, existem poucas opções gratuitas, basicamente o envio de push e autenticação.

Cloud Functions

Um dos serviços que não são exibidos na lista lite é o IBM Functions, similar ao AWS Lambda para construção de código serverless.

Não entendi porque ele não é exibido, mas acredito que seja pelo seu modelo de cobrança onde as 5.000.000 primeiras requisições são gratuitas e embora seja pouco provável que você ultrapasse esse limite no ambiente de teste, você pode faze-lo. E como vocês devem ter percebido, em momento algum inserimos um cartão de crédito para usar a Cloud.

Zonas de Disponibilidade

Quando subimos um app ou instanciamos um serviço na cloud este serviço está disponível fisicamente em uma região. Por exemplo, podemos instanciar um serviço cloud foundry na região de Dallas (us-south) localizada nos USA ou criar uma cloud foundry na região de Tokyo (ap-north).

OK e qual a diferença de instanciar um serviço em um ou em outro ?

A primeira diferença é a latência. Se seus clientes estão nos USA por exemplo, não faz muito sentido você montar sua estrutura em Tokyo. Significa que sempre que fizerem uma requisição, os dados serão enviados até Tokyo para serem processados o que com certeza vai aumentar a latência da rede.

A segunda diferença é questão da segurança e disponibilidade. Suponha que você seja uma gigante asiática do e-commerce, um alibaba por exemplo. Você possui toda a sua infraestrutura na zona de Tokyo e encontra-se em uma importante semana de vendas.

Por um azar do destino, um Tsunami invade o japão, ou temos um desastre na usina de Fukushima. Milhões no japão ficam sem luz, inclusive a IBM, o que acontece com o seu e-commerce se a IBM em Tokyo ficar sem luz ? seu site está fora do ar e vai gerar um prejuízo de milhões ou até bilhões (não tenho noção dessas cifras, está muito distante do que consigo imaginar, só pensa em muito dinheiro).

Este problema é resolvido com cross-region disaster recovery.

No momento que a IBM de Tokyo parar de funcionar por causa do desastre, automaticamente o seu e-commerce passa apontar para outra região, London por exemplo.

Abaixo temos o mapa de regiões da IBM Cloud

As zonas não são exclusividade da IBM Cloud, o mesmo conceito é aplicado na AWS e Azure.

Orgs e Spaces

Alem das regiões, temos outros dois niveis abaixo dela, chamados orgs e spaces. Praticamente em toda instancia de serviço, onde você seleciona a região, você pode selecionar a org e space onde o serviço se encontra.

abaixo temos um exemplo no serviço de cloud functions

Orgs são a denominação para empresas. Supondo que a sua empresa a ACME soluções, tenha sua estrutura dentro da IBM Cloud com 10 funcionários. Todos os funcionários vão fazer parte da Organization ACME Soluções, compartilhando a estrutura, quotas e dominios.

Dentro de cada organização, temos os spaces. Podemos ter um space de produção e outro de homologação.

Todo esse acesso é controlado por uma conta administradora, dando permissões de acessos aos usuários para cada space e org.

IBM Cloud CLI

Você consegue utilizar a cloud da IBM somente acessando pelo navegador, assim como você faz com a AWS e Azure por exemplo, mas caso você pretenda usar recursos mais avançados, é aconselhável instalar o client em sua maquina.

O client libera instruções para interagir com a sua conta na IBM cloud através da linha de comando, habilitando recursos que podem te ajudar em alguns casos. Um bom exemplo de uso para o cli, é a instalação de pacotes adicionais a sua função no cloud functions (npm install…)

A instalação do client é simples, acesse esta página e faça o download para o seu sistema operacional, no nosso caso estamos usando o windows 10.

Abra o instalador e siga os passos abaixo (no caso do windows 10).

No final da instalação abra o prompt de comando e informe a instrução:
ibmcloud login

preencha o seu e-mail e senha e você já estará conectado na sua conta


Considerações Finais

Nós vimos na parte 1 um overview sobre a cloud da IBM, criamos uma conta, falamos sobre os principais serviços, entendemos o que são as regiões e fizemos a instalação do client.

A quantidade de serviços existentes é muito grande, não seria possível falar sobre todos eles em um artigo e caso tenham se interessado, aconselho vocês a pesquisarem outros serviços removendo o filtro lite.

Na próxima parte desta série de artigo sobre o IBM Cloud, vamos criar uma aplicação completa em java, com pager duty, eclipse orion, e um pipeline CI/CD integrado ao slack.

Caso esteja ansioso para por a mão na massa, de uma olhada neste artigo onde usamos o serviço IBM Cloud functions na construção de uma integração com o whatsapp.

Se quiser ser informado sobre novidades nos artigos, siga nosso instagram @codechainbr ou assine nossa newsletter.

Espero que tenham gostado e considerem o uso da IBM Cloud em seus futuros projetos. Caso já estejam familiarizados com o Azure ou AWS, este artigo mostra um quadro dos principais serviços e seus equivalentes em cada uma das clouds.

Sobre Cateno Viglio Junior 19 Artigos
Carioca, arquiteto de software e entusiasta de tecnologia. Trabalho com java a 15 anos e atualmente coordeno uma área de inovação numa empresa do Rio de Janeiro. Sou fundador do codechain e participo de outras iniciativas por ai :).

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será divulgado.


*