Cloud Computing e os desenvolvedores

Cloud Computing está se disseminando e impactando modelos de negócios de empresas de TI já estabelecidas. No curto prazo provavelmente veremos as implementações de soluções em Coud complementando as soluções já existentes no modelo tradicional. Mas no longo prazo o modelo em nuvem deverá substituir gradualmente o modelo computacional atual. Entretanto, seus efeitos já se fazem sentir. Recentemente  a Microsoft teve que se dobrar a este novo cenário e começou também a ofertar neste modelo a sua suite Office, sua principal fonte de receita, que gerou 18,9 bilhões de dólares em 2009.

 As estratégias de adoção variam de acordo com o porte e maturidade das áreas de TI das empresas. As grandes corporações estão dando seus primeiros passos na direção do Cloud Computing adotando nuvens privadas, enquanto pequenas empresas optam por nuvens públicas. Entretanto, os provedores de nuvens públicas criaram plataformas próprias para desenvolvimento de aplicações em nuvem e neste momento ainda inicipiente de mercado, tentam conquistar as corações e mentes dos desenvolvedores. Aliás, estamos começando a reviver uma outra guerra por espaço (lembram-se do debate interminável entre .Net e Java?), mas agora com Amazon, Google, Salesforce (com force.com) e Microsoft (Azure) tentando conquistar este mercado. Sim, é um alvo importante, pois os desenvolvedores é que na prática, são os responsáveis por conectarem as organizações à suas nuvens. A IBM, por sua vez, tem um approach diferente, que a deixa fora desta briga por ferramentas para nuvens públicas. Aposta que, pelo menos no início, os desenvolvedores usarão sim o modelo de cloud, mas para criar aplicações que rodarão no ambiente tradicional ou em nuvens privadas. Não foca no desenvolvimento de aplicativos para rodarem em nuvens públicas. Pessoalmente, eu acredito que esta opção seja bem interessante para empresas de médio a grande porte, que tenderão a manter seus data centers internamente, usando-os em nuvens privadas.

 O cenário atual ainda está indefinido. Os desenvolvedores tem que criar aplicativos para uma plataforma em nuvem pública específica, aplicativos estes que não rodarão automáticamente nas outras nuvens. O risco de lock-in está bem presente. Estes desafios são barreiras que acabam impedindo uma maior e mais rápida disseminação da computação em nuvem.

 E o que os desenvolvedores precisam e demandam para que o cenário de Cloud Computing deslanche? Não fiz nenhuma pesquisa exaustiva, mas conversando aqui e ali com amigos que ganham a vida desenvolvendo sistemas, coletei alguns insights. Antes de mais nada eles querem ferramentas fáceis de usar para desenvolver seus aplicativos para rodar em nuvens, ferramentas estas que também estejam disponíveis neste modelo, ou seja, “pay for use”. Além disso, de maneira geral os desenvolvedores que trabalham em ISVs e em pequenas empresas não tem muito budget à sua disposição e como muitas vezes defrontam-se com falta de suporte em seus próprios data centers querem soluções self-service. Também é necessário que exista uma API universal e aberta, que lhes permita escrever uma aplicação que rode em qualquer nuvem. Não querem ficar submetidos à lock-ins. Precisam também que existam ferramentas que permitam integrar de forma fácil, aplicativos que rodem em uma nuvem a sistemas que estejam rodando em outras nuvens, sejam estas públicas ou privadas. E a sistemas que já estejam rodando em ambiente on-premise. E o que eles encontram hoje? Se adotam IDEs (Integrated Development Environment) acoplados a uma plataforma específica, como GAE (Google Application Engine) ou force.com descobrem que estas ferramentas são boas apenas para desenvolver aplicativos para estas nuvens especificas e proprietárias. A Microsoft recruta os desenvolvedores para nuvens dentro de sua comunidade de desenvolvedores que conhecem .Net e querem (ou são forçados) continuar  com esta tecnologia. Enfim, todos eles buscam criar e expandir os lock-ins para suas nuvens.

 Então, o que os desenvolvedores querem são sonhos de uma noite de verão? Esperam que  a indústria crie soluções que lhes permitam desenvolver aplicações para rodar nas nuvens, mantendo o maior grau possivel de similaridade com as atuais ferramentas. Claro que, pelo menos no início, querem criar aplicativos para as nuvens sem mudar a maneira como fazem aplicativos hoje, mas ao longo do tempo demandarão novas ferramentas, mais adequadas ao desenvolvimento para cloud. Na verdade muita coisa já está sendo feita. Por exemplo, em integração, a recente aquisição da Cast Iron pela IBM é um passo na direção de disseminar o Integration-as-Service ofertado pela Cast Iron como parte fundamental do processo de integração de aplicativos em nuvens. Esta integração é necessária tanto com aplicativos que estejam em outras nuvens ou com os que que estejam rodando on-premise em servidores localizados nos data centers das próprias empresas.

 De maneira geral que ações posso sugerir aos meus amigos desenvolvedores? Bem, antes de mais nada seria bom que eles compreendessem mais profundamente o que é Cloud Computing, suas restrições (cuidados com lock-ins e as questões de segurança em nuvens públicas) e beneficios. Devem manter-se bem informados sobre a rapida evolução do conceito e de suas tecnologias e ofertas. Sugerir também que comecem a desenvolver pequenos aplicativos em nuvem, testando e validando seus conceitos. Usar uma nuvem para desenvolver um aplicativo é uma boa maneira de se entender o próprio conceito de Cloud Computing e dominá-lo.

 E como estamos falando em desenvolvedores, uma tecnologia que os desenvolvedores para nuvens devem aprender a usar é a Hadoop. À medida que a computação em nuvem se dissemina, entender e dominar esta tecnologia vai se tornar mais e mais importante.

Um bom sinal da sua importância são os investimentos dos VCs em start-ups nesta área. Agora há pouco uma start-up focada em Hadoop chamada Karmasphere (www.karmasphere.com) obteve 5 milhões de dólares. Uma outra, Cloudera (www.cloudera.com), já havia levantado 11 milhões de dólares. Quando VCs se interessam por algo é que acreditam que irão recuperar este investimento muitas vezes e em pouco tempo.

 A evolução do Hadoop tem sido bem rápida. Ele se tornou um projeto top-level da Apache Software Foundation em janeiro de 2008 e em março de 2009 saiu o anúncio oficial da Cloudera, start-up originária deste projeto.

 Tem um case muito interessante de uso prático do Hadoop que é o projeto BigSheets da IBM (http://www-01.ibm.com/software/ebusiness/jstart/bigsheets/). É um “insight engine”, construída em cima de um conjunto de várias tecnologias como Hadoop e outras, além do ManyEyes (tecnologia de visualização) que permite extrair montanhas de dados e visualizá-los rapidamente. Um dos primeiros clientes a usar esta tecnologia é a British Library, que a está usando para analisar imensos volumes de dados não estruturados. Este projeto é muito interessante. Parte do princípio que a vida média de um site na Web tem sido de 44 a 75 dias e portanto, a cada seis meses, 10% do conteúdo das Web pages do Reino Unido se perdem. A idéia é usar o BigSheets para extrair, anotar e visualizar estas páginas, para que seu conteúdo, que faz parte da cultura digital do país,  não seja perdido. Não é uma tarefa simples. A British Library recebe uma cópia de cada publicação produzida no Reino Unido e além do material em papel, ela vem arquivando páginas selecionadas da Web desde 2004. O BigSheets, além do Hadoop usa outras plataformas open source como o Nutch (http://nutch.apache.org/), para pesquisas na Web e o Pig (http://hadoop.apache.org/pig/), para análise de grandes volumes de dados. O BigSheets é um projeto que roda em uma nuvem privada e é um bom exemplo de software concebido para operar em nuvem desde seu início. Ah, querem ver um test drive do BigSheets? Acessem os arquivos Web da própria British Library em http://www.webarchive.org.uk/analytics/analytics.htm.

2 Respostas to “Cloud Computing e os desenvolvedores”

  1. Cloud Computing e os desenvolvedores « Saas – Software como Serviço Says:

    […] https://computingonclouds.wordpress.com/2010/05/24/cloud-computing-e-os-desenvolvedores/ […]

  2. Flavio Henrique Says:

    Cezar, excelente post. Acredito que o ponto chave esteja na criação de um padrão que permita a comunicação entre nuvens, independente da tecnologia de desenvolvimento adotada! Na minha opinião este é o único caminho.

    Em relação ao Hadoop, Yahoo, Facebook e o Azure, também estão adotando a tecnologia.

    Abraço, Flávio

Deixe uma resposta

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: