Alguns cases reais de utilização de Cloud Computing

Em diversas palestras sou solicitado  mostrar alguns cases reais de uso de Cloud Computing. Pensando um pouco, vou listar alguns aqui que me parecem bem interessantes e que foram desenvolvidos em parceria com a IBM. Um primeiro exemplo de aplicação em nuvem é o que foi desenvolvido em parceria com a Universidade de Pretoria, na África do Sul

Esta universidade mantém um grupo de pesquisas chamado de Computational Inteligence Research Group (CIRG) que atua focado no desenvolvimento, teste e implementação de algoritmos de inteligência computacional, aplicados na resolução de problemas do mundo real. O CIRG possui cerca de 50 pesquisadores e estudantes. 

 A inteligência computacional (IC) é um subconjunto da inteligência artificial, consistindo de algoritmos e técnicas que combinam elementos de aprendizado e aprendizado para criar softwares, que são, em alguns aspectos, inteligentes. Como exemplos de uso temos redes neurais, computação evolucionária e lógica fuzzy. As aplicações baseadas em IC são aplicadas em problemas como otimização de processos de engenahria, roteamento de linhas de comunicação, pesquisa médica, mineração de dados e assim por diante. No decorrer do tempo, o CIRG desenvolveu uma biblioteca de inteligência computacional, chamada de CIlib, composta de um framework de compontes escritos em Java.

 O problema enfrentado pelo CIRG é comum a muitas universidades: os pesquisadores e estudantes precisam desenvolver seus trabalhos usando  computadores. Os algoritmos de IC demandam massivos recursos de computação. Para obterem resultados estatisticos signficantes na aplicação dos algoritmos, são necessários milhares de experimentações, usando-se diferentes parâmetros e tipos de problemas. Cada teste pode levar dias ou semanas, havendo inclusive situações que demandaram meses para computar o algoritmo, usando uma workstation 24 horas por dia.

 Uma solução paliativa foi rodar os experimentos em mais de uma workstation, em paralelo. Conseguiu-se um maior throughput, mas esbarrou-se no problema do número de workstations disponíveis, gerando “colisões” entre os estudantes, na disputa por estas máquinas.

 O grande problema era dividir as cerca de 50 workstations pelos experimentos, quando cada um dos 50 estudantes e pesquisadores requisitando de 5 a 10 workstations ao mesmo tempo. Além disso, para rodar em paralelo, da forma mais eficiente possível os estudantes e pesquisadores gastavam parte do tempo otimizando o algoritmo para melhorar o seu despenho neste cenário, em vez de otimizar a eficiência da inteligência computacional do algoritmo, ou seja, sua proposta original.

 O projeto de Computação em Nuvem permite agora que os estudantes e pesquisadores reservem e usem as workstations, de forma dinâmica. Os experimentos não reservam mais uma ou mais máquinas especificas, mas requisitam determinada capacidade e o sistema, de forma automática, provisiona os recursos necessários.

 Para operar de forma paralela em várias workstations, o sistema de nuvem utiliza o Hadoop. Com o Hadoop o sistema cria multiplas réplicas, distribuídas pelos diversos nodos da nuvem, retirando do programa a ser rodado a maior parte das tarefas relacionadas com a computação paralela. Estas tarefas ficam a cargo do próprio Hadoop. Assim, o estudante submete um único job, que o Hadoop distribui pelos nodos provisionados (em múltiplas máquinas virtuais Xen), executa-os nestes nodos e retorna o resultado, de forma única e consolidada.

 Os benefícios obtidos com o uso da Computação em Nuvem e com Hadoop foram:

 a)     Os estudantes não precisam mais saber de antemão que workstations estarão disponiveis em tal momento. A nuvem permite que os estudantes reservem o período de tempo e a quantidade de recursos computacionais que serão necessários para rodar os experimentos.

b)     Os estudantes não precisam mais perder tempo checando se a configuração de determinada workstation está adequada em termos de versão de software e biblioteca CIlib. A nuvem provisona e aloca os recursos de forma dinâmica, inclusive com as versões de softwares adequadas.

c)     Os estudantes não tem mais que gastar tempo liberando os espaços e recursos alocados às workstations, para disponibilizá-las para os outros experimentos que rodarão a seguir. A nuvem, ao encerrar o experimento, libera todos os recursos alocados a ele.

d)     Os tempos dos experimentos reduziram-se signficativamente, de semanas para dias. 

e)     Os estudantes e pesquisadores concentram seu tempo na eficiência do algoritmo e não nas questões secundárias de configurações de máquinas, reserva de recursos, etc.

 Um outro exemplo interessante de uso de Computação em Nuvem foi o desenvolvido com o pólo tecnológico de software da cidade de Wuxi, cerca de 150 quilometros de Shangai, na China. Esta cidade criou um parque tecnológico, oferecendo entre outras vantagens incentivos fiscais. Mas, o desafio das start-ups que se interessaram em se instalar no parque era o alto investimento prévio para a infraestrutura de TI que eles precisariam para desenvolver seus produtos. É um dilema que afeta todas as start-ups: obter capital para investir em servidores e softwares antes de começarem a obter receita com seus produtos.

 Para endereçar esta questão, o governo da cidade e a IBM desenvolveram um data center baseado em nuvem computacional. Desta maneira as start-ups provisionam servidores virtuais para seus desenvolvimentos, sem terem que arcar com inevstimentos em infraestrutura. A tecnologia oferecida às empresas são máquinas virtuais baseadas em Linux e um conjunto amplo de ferramentas de desenvolvimento e testes da família de produtos Rational. Um paper mais detalhado pode ser acessado em ftp://public.dhe.ibm.com/common/ssi/ecm/en/dic03005usen/DIC03005USEN.PDF

 Um terceiro exemplo é a infraestrutura usada por um projeto interno da IBM, de incentivo a inovação, denonimado Technology Adoption Program (TAP). Este programa faz parte de um conjunto bem amplo de  iniciativas que exploram o conceito de inovação aberta e colaborativa dentro da IBM. A base do TAP é o conceito de comunidade e crowdsourcing.

 A propósito do assunto crowdsourcing, sugiro a leitura de um livro muito legal, chamado “Crowdsourcing, o Poder das Multidões”, de Jeff Howe. No livro ele descreve muitas experiências interessantes que mostram como amadores tem feito contribuições sem precedentes para as ciências. Aliás, “amadorismo” me parece muito mais um termo criado por classes profissionais para proteger a si mesmo…Afinal eles são profissionais e os outros que se atrevem a entrar em sua seara são simples amadores. Para eles profissionalismo é seriedade e amadorismo simples brincadeira.

 Mas será que isto ainda  tem valor? Em uma época de participação em massa na Internet precisamos redefinir o termo “amador” e “amadorismo”. Um químico sem treinamento prévio em biomedicina pode gerar uma inovação notável neste ramo. Um médico ou um arquiteto podem escrever um software fantástico e para isso não precisam ter formação acadêmica em ciências da computação.  Bem, agora como opinião pessoal, não concordo com regulamentação da profissão de informático…Será necessário um diploma de computação para escrever um brilhante mash-up?

 A colaboração alavancada pela computação e pela Internet muda muita coisa e inclusive a nossa própria maneira de pensar, além de, obviamente, transformar por completo setores de negócio baseados em informação. Alguns exemplos: indústria de música, fotografia, vídeos, editoração (lembram-se de um negócio antigo chamado tipografia?), jornalismo… Muitas bandas já colocam suas músicas nos sites de relacionamento como Facebook e vídeos no YouTube, não mais lançando CDs. As gravadoras já estão supérfluas na cadeia de valor da música.

 Vale a pena investir algum tempo e entender como a força da coletividade está realmente remodelando o futuro dos negócios. E entender antes que seja tarde!

 Mas, voltando à computação em nuvem, o TAP é um ambiente ideal para implementar uma prova de conceito de nuvem privada, pois é um ambiente isolado, sem maiores demandas de integração com aplicações legadas. O resultado obtido foi muito positivo. Usando-se o conceito de nuvem computacional, baseado em virtualização e provisionamento automático, conseguiu-se a redução da infraestrutura de 488 servidores dedicados para 55, e de 15 para 2 administradores de sistemas, com uma redução total no custo de hardware, software e pessoal de mais de 83%. Dêem uma olhada em http://www-935.ibm.com/services/in/cio/pdf/dic03001usen.pdf.  Vale a pena pensar sobre isso, não?

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s


%d blogueiros gostam disto: