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]