Uma demonstração do IBM BlueMix
David Barnes explora o ambiente de composição de aplicativos na nuvem do
IBM BlueMix
25 de agosto de 2013
[ MÚSICA ]
BARNES: Olá, pessoal. Aqui é David Barnes com outro episódio de ET Info
em que trago informações sobre tecnologias novas e emergentes da IBM.
Já faz um tempo desde que montei um estúdio doméstico aqui e postei
um vídeo. Demorou tanto porque nosso grupo de tecnologias de Internet
emergentes vem trabalhando arduamente em um novo projeto chamado
BlueMix que mostrarei aqui.
O BlueMix destina-se à criação rápida de aplicativos por
desenvolvedores de linha de negócios. A razão: estávamos acostumados
a ouvir a linha de negócios pedir por aplicativos e falávamos no
desenvolvimento em meses, depois falávamos em semanas, agora estamos
começando a ouvi-los solicitar o desenvolvimento de aplicativos em
dias e o ciclo de desenvolvimento de TI tradicional simplesmente não
consegue lidar com isso.
É aí que o BlueMix entra. Ele é um local para esses desenvolvedores
de linha de negócios acessarem, rapidamente criarem aplicativos e
eles não precisam lidar com a infraestrutura subjacente. E como o
BlueMix é desenvolvido com base no Cloud Foundry e usa a tecnologia
de pilha aberta, se o aplicativo se torna um sucesso fenomenal e
precisa aumentar, o BlueMix tem toda a elasticidade que a nuvem nos
promete. Então, chega de conversa, deixe-me pegar minha máquina e
mostrarei o que quero dizer.
Para esse cenário, representarei dois papéis. Serei David Barnes, o
desenvolvedor de linha de negócios, e David Barnes, o usuário de
linha de negócios. Já que estou representando as duas personas,
perguntei ao meu VP, Rod Smith: “Posso receber um salário por cada
uma dessas personas?” E a resposta dele foi não.
De qualquer forma, representarei os dois papéis. Como o desenvolvedor
de linha de negócios, perguntaram-me: “É possível criar um aplicativo
de analítica de impressão social para nós que acesse o Twitter,
capture tweets e os analise para descobrir o que os clientes estão
falando sobre nós, nossos produtos e concorrentes?”.
Como desenvolvedor, é aqui que eu entro. Esse é o BlueMix. Eu já criei
alguns aplicativos, mas vamos fingir que estou criando um pela primeira
vez. Aqui na parte superior, selecionarei Create an Application e esses
são alguns dos serviços que tenho disponíveis para mim.
Eu tenho a capacidade, neste caso, com o Worklight, eu passo o mouse
por cima, eu vejo o que é o Worklight e o que ele pode fazer por mim.
Eu vejo classificações com estrelas, então sei o que outros
desenvolvedores acham desses serviços individuais. Tenho ícones de
informações, portanto posso acessar diretamente os fóruns em que
outros desenvolvedores estão discutindo sobre esses serviços. Os
desenvolvedores são muito autossuficientes, então quero que eles
sejam capazes de ir diretamente para o fórum em que as pessoas estão
discutindo sobre esses serviços.
Para mim, quero usar o Node e meu aplicativo será executado com Node,
ele colocará alguns tweets em um banco de dados Mongo com base em
palavras-chave dos usuários e depois os analisará. Para prosseguir e
selecionar o Node, eu passo o mouse sobre ele, descubro o que ele é para
mim, o que ele faz por mim. Selecionarei Create e vamos atribuir a ele o
nome de customer sentiment, e irei chamá-lo de customer sentiment 2,
pois sei que já tenho um criado com o nome de customer sentiment.
No nome do domínio, é nesse local em que meu aplicativo estará
funcionando e disponível para mim. A propósito, estou trabalhando em
tempo real no servidor, portanto, desenvolverei e executarei aqui. Posso
inserir uma descrição do que esse aplicativo faz para mim. Também é
importante observar que quando terminar de criar esse aplicativo de
analítica de impressão social muito legal, talvez eu queira incluí-lo
nessa paleta para que outras pessoas possam usá-lo, talvez usá-lo como
um modelo.
Apenas prosseguirei. Nesse caso, só selecionarei Create. Algo realmente
importante acontece aqui. Estou provisionando uma instância do Node que
está em execução agora, nesse ambiente de nuvem, e não precisei criar,
como desenvolvedor de aplicativos, uma imagem virtual. Não precisei
instalar um sistema operacional, me preocupar com o middleware, com o
roteamento e não precisei entrar em contato com 10 pessoas diferentes
para configurar meu ambiente com antecedência.
Eu apenas fui direto para a arte da programação. Isso me torna mais
produtivo e torna esse um bom espaço para desenvolvimento. Aqui, eu
posso fazer o download de um arquivo zip com alguns códigos ou posso
colocar isso em um repositório Git. Por que fazer o download de um
arquivo zip? Essa ainda é uma ferramenta de desenvolvimento. Eu poderia
querer fazer o download disso...
E esse é um aplicativo Hello World apenas para o desenvolvedor começar.
Eu poderia querer fazer o download disso, pois gosto de usar o Eclipse
no meu desktop ou talvez eu queira desenvolver de uma linha de comando
ou com o repositório Git em algo que eu mostrarei em breve, talvez
queira desenvolver meu código em um navegador.
Ele é poliglota, o que significa que eu escolho a linguagem de
programação que me torna mais produtivo. Nós não estabelecemos a
linguagem, você determina o tempo de execução, a estrutura que é melhor
para você... Tempo de execução não é a expressão certa, a estrutura que
é melhor para você. Liberdade do desenvolvedor.
No meu caso, se eu desejasse dizer que quero fazer o download daquele
arquivo zip, o download dele é feito no meu Mac aqui e na minha pasta de
downloads e posso trabalhar nele. Não estou fazendo o download do Node e
não farei o download do Mongo, apenas do meu código.
Irei até aqui e direi: “Aqui está o Node, ele está em funcionamento e
está provisionado”. Você sabe, o Node em si não fará muito por mim,
então eu irei até aqui e incluirei outro novo serviço. Eu devo apontar
aqui que algumas pessoas veem isso e confundem ou me perguntam qual é a
diferença entre isso e os mashups, algo que conhecemos do passado.
Bem, certamente posso acessar um serviço externo, como as pessoas faziam
nos mashups, usando uma API Restful. Mas esses serviços na minha paleta
são o que acredito que é possível chamar de serviços nascidos na nuvem.
Eles são projetados para poderem tratar o disco rígido como efêmero. Eu
não me preocupo com isso, não sei que ele está lá, sei apenas que estará
lá.
E eles são totalmente elásticos. Então, quando meu aplicativo crescer de
forma massiva, espero que ele cresça de forma massiva, esses serviços
elásticos podem lidar com ele, pois são serviços de nuvem genuínos.
Tenho o Node, quero obter um banco de dados em que eu realmente inclua
ou coloque os tweets. Selecionarei o Mongo e é aqui que tudo muda.
Há uma descrição do que é o Mongo e o que ele pode fazer por mim. Mas ao
rolar para baixo, começamos a ver um novo modelo de precificação para
software. Como desenvolvedor, estou começando a esperar uma versão
premium do software. Em outras palavras, quero testá-lo, eu nem mesmo
sei se ele funcionará para mim. Portanto, antes de eu comprar muito ou
pagar muito, deixe-me selecionar a versão premium, ela terá uma quantia
de disco e uma quantia de memória limitadas.
Vou até a minha chefe e ela diz: “Isso está absolutamente incrível.
Vamos colocá-lo em produção”. Posso dizer: “Quero obter outra versão,
tenho um pouco mais de disco e de memória e começo a receber
notificações de sistema móvel”. Se eu quisesse partir para a versão de
US$ 500 por mês, começaria a ver instâncias isoladas e análise de log
automatizadas.
Para mim, é importante apontar aqui que nós não estabelecemos como você
autoriza seus serviços. Se você for o provedor desse serviço, talvez
queira cobrar com base nas transações. Talvez queira cobrar com base no
número de usuário ou, nesse caso, a utilização de disco da CPU padrão,
etc.
Talvez não queira cobrar por diferentes autorizações. Talvez você queira
fazer isso por departamento. Se você estiver neste departamento, é
possível obter isso, se estiver neste departamento, é possível fazer
aquilo. Nós não estabelecemos isso, permitimos isso para que você, como
a pessoa, pessoas ou grupo fornecendo os serviços, decida como quer
fazer isso. Nem mesmo é necessário fazer isso dessa forma se você não
quiser. Apenas forneça o serviço a eles.
Eu selecionarei a versão gratuita. No pop-up no canto inferior esquerdo,
seleciono o aplicativo no qual quero incluir isso. Prosseguirei e
selecionarei Add to. E agora acontece outra coisa que facilita para mim,
o desenvolvedor. Nesse caso, estou provisionando aquela instância do
Mongo e fiz as ligações, eu a liguei àquela instância do Node de forma
que agora posso começar a trabalhar muito rapidamente e não preciso me
preocupar com essas coisas.
Eu mencionei que posso fazer o download do código e trabalhar no meu IDE
local se quiser. Há outra opção. Aqui, clicarei em outra guia. Esse é o
Orion, ele é do nosso grupo Rational. Eles o implementaram no Jazz Hub.
Ele me permite realizar o desenvolvimento em um navegador online e
possui muitos recursos que eu não mostrarei aqui (esses recursos merecem
um vídeo à parte).
Mas se for um grande sucesso e minha chefe me disser para colocá-lo em
produção, mas trazer Bill e Jolene para que eles escrevam o código
comigo, ainda existem os recursos de grupo, os recursos de projeto e
tudo o que acompanha o Jazz Hub. Novamente, esse assunto daria outro
vídeo.
Mas como o desenvolvedor desse aplicativo, rolarei para baixo até a
parte inferior e aqui está uma parte do código do Node que vai para o
Twitter, captura tweets com base na entrada de palavra-chave do usuário
e os coloca no banco de dados Mongo.
É importante para mim, como o desenvolvedor (e deixe-me verificar se
peguei o código certo aqui), ele me diz que esse código do Mongo, aqui
está minha URL para chegar ao banco de dados. Preciso inserir meu ID do
usuário e senha de usuário para a autorização OAuth e estou pronto.
Se esse banco de dados for movido, eu não me importo. Isso não faz
diferença para mim como o usuário. Ele está lá na nuvem. Se decidirmos
que queremos pegar esse aplicativo e colocá-lo em outra instância da
nuvem, talvez do desenvolvimento para a produção, no que diz respeito ao
desenvolvedor, não sei e não me importo. Isso é feito para mim.
É um bom momento também para apontar, agora realmente você não as vê
aqui, mas há algumas instruções VCAP nesse código. Isso significa que
isso está implementado e nós implementamos o BlueMix no Cloud Foundry e
usamos tecnologias de pilha aberta para desenvolver esse ambiente de
nuvem. Portanto, é extremamente aberto e é extensível, novamente, há um
vídeo inteiro por si só aí.
Como o desenvolvedor, acabo de escrever meu código, posso salvá-lo aqui,
efetuar o check-in dele no repositório e realizar o push dele novamente
naquela instância da nuvem. Então, eu escrevo meu código, realizo o push
dele, volto aqui e há mais uma atividade que preciso realizar.
Capturo os tweets e os coloco no banco de dados, vou incluir outro
serviço aqui. Rolarei para baixo, e aqui está um chamado Social
Analytics. Isso é algo que foi criado em nosso grupo. Prosseguirei e
irei incluí-lo. E é ele que pega aqueles tweets, os analisa e os exibe
graficamente. Novamente, posso selecionar a versão gratuita, incluí-la
no aplicativo e avançar.
Em vez disso, voltarei aqui para meu material, eu já criei o aplicativo
como uma espécie de pré-preparado. Voltarei para todo o meu material e
esses são os meus aplicativos em execução no servidor. Selecionarei
esse, observe que é o que acabamos de criar, o customer sentiment 2.
Esse é o que eu criei anteriormente.
Prosseguirei e o iniciarei, e aqui está o aplicativo. Neste momento,
ainda havia mais a ser feito. Não é tudo mágico. Eu ainda precisava
escrever o código que tirou os dados do banco de dados Mongo e os
inseriu aqui, todas essas outras atividades. Não é mágico, mas a quantia
de tempo que foi reduzida no front-end, a quantidade de coisas que eu
não precisei fazer.
A propósito, esse aplicativo, eu coloquei no nome, vai para o Twitter e
tem uma palavra-chave, nesse caso era IBM. Ele descobre quem são as
pessoas que mais estão publicando ou republicando tweets ou que mais
estão tendo seus tweets republicados. Posso clicar nessa pessoa e vamos
para o Clout, descobrimos qual é sua pontuação do Clout. Nesse caso, é
45,22, não é uma pontuação muito boa do Clout.
Acessamos o LinkedIn e descobrimos quem é. Analisamos esses tweets, se
são positivos ou negativos, se são sobre funcionamento ou opiniões. Como
o desenvolvedor de linha de negócios, eu terminei. Eu criei o aplicativo
solicitado.
Como o usuário de linha de negócios, irei até aqui e trocarei os papéis.
Isso é apenas para ilustrar como ele pode ser usado e como pode
responder a problemas de negócios muito rapidamente. Como o usuário de
linha de negócios, no canto superior direito aqui no meu sistema de CRM,
esse é o Sugar CRM, prosseguirei e incluirei um dashlet. Um dashlet
fornece algo no meu desktop aqui, como minhas oportunidades, minhas
principais campanhas, essas coisas.
Selecionarei na parte superior aqui e procurarei por sentiment, pois
pegamos sentiment... Eu nunca digito corretamente na câmera ou no palco,
aliás. Procurarei por sentiment. Seleciono Search e aqui está aquele
aplicativo de analítica de impressão social que criamos.
O colocamos aqui, novamente, como uma ilustração, pois agora como o
usuário de linha de negócios eu o incluí no meu aplicativo de CRM e
posso continuar e selecionar. Aqui vamos nós, posso selecionar meus
clientes que vão ao Twitter e descobrir o que as pessoas estão dizendo
sobre eles.
Isso estará disponível por um tempo, mas talvez não por muito tempo.
Talvez eu queira algo diferente. Irei até aqui, isso diz Are you sure?
Eu seleciono OK e esse dashlet desapareceu. Agora volto à minha
desenvolvedora e peço a ela: “Seria possível criar algo novo para mim?”
Ela vai, seleciona alguns novos serviços e desenvolve um novo
aplicativo.
E há esse tipo de processo iterativo, de forma que eu posso criá-los
rapidamente, os usuários podem usá-los rapidamente e nós podemos obter,
como minha chefe diz, um rápido tempo de retorno. Em outras palavras, eu
publico essas coisas em alguns dias, descubro que são ótimas, que o
usuário gosta delas e que a linha de negócios também gosta delas. Nós
iniciamos os serviços que a nuvem consegue manipular, esses serviços
elásticos, e quando eles desejam algo diferente, faço uma alteração
rápida e eles vão em frente e os usam muito rapidamente.
Novamente, há tantas coisas que ele faz para a liberdade do
desenvolvedor. Há tantas coisas que ele faz para reduzir a complexidade
com a qual preciso lidar para ir diretamente para a arte da programação.
Então, esse é o BlueMix. Como todas as nossas tecnologias emergentes,
ele continua a se desenvolver muito rapidamente. Estamos incluindo
novos recursos e funções e, conforme fazemos isso, eu continuarei a
fazer mais vídeos e publicá-los no YouTube. Enquanto isso, se estiver
interessado em se envolver conosco em torno de um projeto do BlueMix,
é possível visitar nosso website do jStart que está em
ibm.com/jstart.
[FIM DO SEGMENTO]
Download

Uma demonstração do IBM BlueMix David Barnes explora o