Archive for setembro \30\UTC 2009

Open Cloud Manifesto

setembro 30, 2009

O assunto Cloud Computing ou Computação em Nuvem é extremamente fascinante. Na minha opinião o mundo da tecnologia está às portas de uma transformação profunda e no cerne desta transfomação está exatamente este conceito. Com o movimento em direção à Computação em Nuvem a Internet passa a ser o repositório de arquivos digitais e o usuário pode criar documentos, planilhas e apresentações sem precisar instalar nenhum software em sua máquina. A proposta da Computação em Nuvem é permitir que um mesmo arquivo possa ser acessado independentemente do equipamento, sejam estes PCs, notebooks, netbooks ou celulares, pois todos os arquivos estarão guardados em servidores na Web.

 Porém, a Computação em Nuvem ainda tem muito que evoluir e amadurecer. As nuvens públicas ainda precisam oferecer mais garantias de segurança e disponibilidade. Além disso é problemático a falta de  padrões de interoperabilidade. A tentação dos grandes fornecedores é criar sistemas fechados que na prática impedem seus clientes trocar de provedor de nuvem, dada a complexidade e os riscos envolvidos. A criação destes padrões abertos de interoperabilidade são, portanto, essenciais para o uso corporativo da Computação em Nuvem. 

 Até o momento, as ofertas mais conhecidas de nuvem, como o Amazon Web Services, Salesforce, o Google Docs são proprietárias. Isto significa que só podemos usar o Google Docs na nuvem do Google e não em nenhuma outra nuvem. Esta limitação à tecnologias proprietárias gera aprisionamento do usuário, restringindo sua liberdade de migrar de uma nuvem para outra.

 Entretanto, recentemente começaram a surgir alguns movimentos em direção a um padrão aberto para interoperabilidade entre nuvens e foi, inclusive, criado um manifesto, chamado “OpenCloud Manifesto” (www.opencloudmanifesto.org) que se propõe a   aglutinar empresas em torno da especificação de um padrão aberto para a Computação em Nuvem.

 O manifesto estabelece um conjunto de princípios, denominados princípios para nuvens abertas,  que asseguram que as organizações que usarem nuvens computacionais não ficarão restritas a padrões fechados, mas terão liberdade de escolha, flexibilidade e abertura para não ficarem aprisionadas a nenhuma nuvem. Embora a Computação em Nuvem traga claros benefícios, existe o potencial (como hoje acontece) de aprisionamento e perda de flexibilidade, caso padrões abertos não sejam adotados.

 Diversas empresas já fazem parte deste manifesto, como a IBM, Sun Microsystems  e EMC, mas algumas outras, como Microsoft, Google e Amazon não haviam acordado nenhum compromisso com esta proposta. Pena, pois padrões abertos são garantia de interoperabilidade entre nuvens.

Cloud computing e mainframes: tudo a ver!

setembro 28, 2009

Um dia destes estive envolvido em um animado debate sobre Cloud Computing e mainframes. Um profissional de uma outra empresa alegou que com a computação em nuvem os mainframes não teriam mais espaço.

Minha opinião é totalmente contrária. E aqui estão meus argumentos…Na verdade quando se fala em nuvens computacionais, uma primeira percepção que vem à mente de muitos são os imensos data centers tipo Google, onde centenas de milhares de servidores de baixo custo, baseados em Intel, constituem a sua plataforma de hardware.

 Mas, será que todas as empresas podem ter estes data centers? Para mim  fica claro que não.  Mesmo um grande banco não pode criar e manter diversos data centers com mais de 500.000 servidores distribuídos. Estes data centers corporativos atuam de forma diferente das nuvens públicas, pois precisam manter determinados processos e controles internos, sejam por questões regulatórias, sejam por obediência à normas de auditoria. Por outro lado precisam construir uma infra-estrutura dinâmica, baseada nos conceitos de cloud computing. São as nuvens privadas, que oferecem muitas das facilidades das nuvens computacionais publicas, mas que operam internamente ao firewall da empresa. São nuvens disponibilizadas e acessadas apenas internamente.

 E em quais plataformas de hardware deveriam construir suas nuvens? As grandes corporações, como grandes bancos já usam mainframes. E porque não usá-los também como plataforma para suas nuvens? Vamos pensar um pouco sobre o assunto.

 Os novos mainframes não apenas rodam aplicações legadas baseadas em Cobol, mas processam com eficiência programas Java e sistemas Linux. Um exemplo prático são as facilidades CMMA (collaborative memory management assist) e DCSS (discontinuous shared segments). O CMMA expande a coordenação da paginação entre o Linux e o z/VM ao nível das páginas individuais, otimizando o uso da memória. Com o DCSS, porções da memória podem ser compartilhadas por várias máquinas virtuais. Desta forma, programas que sejam usados por muitos ou todas máquinas virtuais Linux podem ser colocadas em DCSS, de modo que todas compartilhem as mesmas páginas. Outra questão interessante que afeta as nuvens construídas em servidores distribuídos é a latência que ocorre quando os programas estão em máquinas distantes umas das outras. Em um único mainframe podemos ter milhares de servidores virtuais, conectados por comunicação memória a memória, eliminando este problema.

 Ok, e tenho outros argumentos? Sim…vamos lá. Os mainframes incorporam naturalmente muitos dos atributos que são necessários a uma nuvem, como capacidade escalonável, elasticidade (você pode criar e desligar máquinas virtuais sem necessidade de adquirir hadware), resiliência e segurança. E sem falar em virtualização, que faz parte dos mainframes desde 1967!

A gestão automática de recursos já está incorporada há muito nos softwares do mainframe. Aliás, o System z Integrated Systems Management Firmware gerencia de forma integrada recursos, workloads, disponibilidade, imagens virtuais e consumo de energia entre diversos mainframes.

 Vamos olhar agora a distribuição de carga. Um mainframe consegue processar muitos mais servidores virtuais por metro quadrado que em um ambiente de servidores Intel. Em média o espaço ocupado por um mainframe para uma nuvem de milhares de servidores pode ser 1/25 do que seria necessário com servidores Intel. Alem disso, por cada processador de mainframes conseguimos colocar, dependendo da carga, dezenas de servidores virtuais. Outra consequencia é que o consumo de energia pode ficar em torno de 1/20 do que seria consumido pelos milhares de servidores fisicos.

Um exemplo prático: a nuvem criada pelo Marist College nos EUA, que em um mainframe de quatro processadores opera mais de 600 máquinas virtuais.

 No aspecto econômico, o zEconomics, ou economia do mainframe (System z) pode apresentar um custo de propriedade extremamente vantajoso. As aplicações Java (que executam em um processador específico chamado zAAP) e os sistemas Linux (que rodam em processadores IFL) usam processadores que custam muito menos que os processadores tradicionais que rodam os sistemas z/Os e as aplicações legadas.

 Um último argumento, como controles automaticos já estão inseridos no mainframe e porque existem muito menos elementos físicos para gerenciar, a demanda de profissionais de administração da nuvem pode se situar em torno de 1/5 do que seria necessário em sistemas distribuidos fisicamente. 

 Moral da história: cloud computing e mainframes, tudo a ver!

Convite para lançamento do meu livro

setembro 25, 2009

Gostaria de contar com a presença de vocês!CONVITE

Algumas dicas de papers sobre Cloud Computing

setembro 23, 2009

Escrever um livro é um trabalho que demanda muita leitura e pesquisa. E, para escrever meu livro, sobre Cloud Computing, garimpando na Internet consegui encontrar textos muito bons.

 Um paper que recomendo a todos interessados em estudar o assunto Computação em Nuvem é “Above the Clouds: a Berkeley View of Cloud Computing”, que pode ser acessado em http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf .

 O paper foi escrito por diversos pesquisadores  da Universidade da California, Berkeley, e procura responder a varias questões como o que é Computação em Nuvem, por que surgiu e porque está se disseminando pelo mercado, quais as oportunidades de exploração deste conceito, quais os novos modelos de negócio que poderão advir do seu uso e assim por diante. Vale a pena ler.

 Também recomendo ouvir uma série de palestras apresentadas no Workshop “Computing in the Cloud”, realizado na Princeton University. Vejam http://citp.princeton.edu/cloud-workshop/#panel1.

 Enfim, o assunto Cloud Computng merece atenção. Jornais de negócios como o New York Times (http://www.nytimes.com/2007/10/08/technology/08cloud.html?_r=4&ref=technology&oref=slogin&oref=slogin&oref=slogin&oref=slogin), Wall Street Journal (http://online.wsj.com/public/article/SB119180611310551864-55slpWwDncT1vmG_6OJJdxxeF4E_20071107.html?mod=tff_main_tff_top) e Business Week (http://www.businessweek.com/print/magazine/content/07_52/b4064048925836.htm) também escreveram sobre o assunto.

 O que concluímos? No mínimo devemos acompanhar com atenção a evolução do conceito e das tecnologias de Cloud Computing para não sermos surpreendidos com o CEO indagando “qual é mesmo nossa estratégia para Cloud Computing?”.  E não termos resposta.

Algumas tecnologias que merecem atenção!

setembro 21, 2009

Computação em nuvem vai provocar uma revolução no software. Nos próximos anos os desenvolvedores deverão aprender a usar com proficiência um novo stack de software. Hoje basicamente falamos no stack LAMP, que envolve Linux, Apache, linguagens como Perl/PHP e Python e o bancos de dados MySQL.

 Mas, o que a computação em nuvem vai nos trazer? Além do  Hadoop,  projeto open source baseado no conceito do MapReduce, que é a técnica de programação usada pelo Google para implementar suas aplicações em Cloud (http://labs.google.com/papers/mapreduce.html e http://hadoop.apache.org/), devemos prestar atenção ao  lighttpd (http://www.lighttpd.net/) , um webserver que já turbina sites de alta demanda como Youtube, e o banco de dados distribuído MogileFS (http://www.danga.com/mogilefs/). Todos são projetos open source. Vale a pena estudá-los.

Alguém tem uma boa definição para Cloud Computing?

setembro 18, 2009

Quando pesquisando para escrever o livro sobre Cloud Computing descobri que existem dezenas de definições diferentes. É um paradigma ainda em evolução e portanto nada mais natural que suas definições ainda não estejam bem claras. Aliás, na computação em nuvem, suas definições, atributos e características, bem como as suas tecnologias de sustentação ainda vão evoluir muito e se modificar com o tempo.

 Já vivemos isso antes. Basta olhar para a Internet em 1999, dez anos atrás. Alguém imaginava que ela seria como hoje? Tivemos a fase de empolgação, o estouro da bolha, a descrença e agora vemos que ela é a base das comunicações do planeta. Mas, ninguém imagina mais um mundo sem a Internet.

 Mas, voltando a Cloud Computing. Aliás, o termo em português que eu adoto é Computação em Nuvem, embora também vejamos  outros termos como Computação nas Nuvens ou Computação na Nuvem…De qualquer maneira, é um ecossistema que compreende vários modelos de negócio, centenas de fonecedores e diferentes nichos de mercado. É um paradigma bem abrangente e muito mais amplo que simplesmente infraestrutura como serviços.

 Querem um exemplo? Bem, como modelos de serviços, além de infraestrutura como serviços  (IaaS), podemos ter também Platform-as-a-Service (PaaS) e Software-as-a-Service (SaaS). Além disso, se olharmos pelo prisma dos modelos de entrega, as nuvens podem ser públicas (as mais conhecidas, como a nuvem do Google ou Amazon), mas também privadas (operada por uma única empresa), comunitárias (compartilhadas por um conjunto de empresas) ou híbridas (um mix de nuvens públicas e privadas).

 Indo mais além…Uma “cloud” ou “nuvem” é um conceito abstrato e portanto não se compra como um produto. É construída. E para construí-la precisamos de muito mais esforços em serviços que só adqurindo tecnologias.  Como o ecossistema que envolve Cloud Computing é amplo, surgem diversos fornecedores com definições diferentes e muitas vezes discrepantes entre si. Rotular seus produtos e serviços como Cloud é hoje uma ação comum de marketing. Qualquer produto ou serviço hoje é “cloud”…Um simples hosting de servidores passa a ser chamado de oferta de Cloud Computing!

 Enfim, hoje ainda temos muito mais interesse que ações ocorrendo no mundo da Computação em Nuvem. Mas, à medida que os conceitos forem se firmando, as tecnologias evoluindo e os casos de sucesso se disseminando, mais e mais veremos as ações se concretizando.

 Adotar o conceito de nuvem é uma trilha a ser perecorrida passo a passo. É uma evolução gradual, não se acorda em “nuvem” de um dia para o outro. O primeiro passo? Entender os conceitos e separar o que é puro hype da realidade. Cloud Computing não é hype, tem substância.

Como cloud computing vai afetar as suites de escritório

setembro 16, 2009

Um dias destes, em mais uma das minhas apresentações sobre Cloud Computing, surgiu uma pergunta bem interessante. Me foi indagado se eu achava se no futuro ainda haveria espaço para suites de escritório nos moldes tradiconais, a lá PC…

 Bem, embora a suite Office tenha se tornado padrão de fato do ambiente de produtividade de escritórios, o surgimento de alternativas baseadas em cloud, como o Google Applications e o Zoho abre uma nova e viável alternativa em contraponto ao modelo tradicional de suites de escritório.  

 A principal mudança é a mudança de conceitos. O modelo tradicional de suites de escritório surgiu no contexto do computador pessoal, onde o trabalho era individualizado e as trocas de documentos efetuadas por email. Aliás, no início a troca de arquivos era por disquetes…lembram?

 O PC era o centro do universo e as premissas de criação da suite de escritório eram que elas poderiam (e geralmente era o caso) funcionar de forma independente, em offline, sem necessidade de conexão à Internet. O modelo de computação pessoal não foi criado com colaboração em mente  e portanto tarefas como sincronismo de versões de documentos nunca foram seu forte.

 O modelo de cloud, por outro lado,  está alinhado com a visão do trabalho colaborativo. Este modelo demanda uma intensa troca de idéias entre os envolvidos na criação e atualização dos documentos, o que não era enfatizado no modelo anterior. O compartilhamento dos documentos está no cerne de sua proposta.

 Claro que uma comparação direta entre as ofertas de suites em cloud com o Office vai mostrar que o Office tem mais funções, embora a maioria delas seja dispensável para a imensa maioria dos seus usuários. As alternativas em cloud são, por sua vez, “good enough”, o que significa, na prática, que atendem a maior parte das necessidades de um usuário típico.  O modelo em cloud também cria uma maior independência de equipamentos. O acesso ao documento pode ser feito por qualquer dispositivo, via browser. Ou seja, posso criá-lo no meu notebook e acessá-lo via um smartphone, um thin-client PC ou por qualquer outro notebook. O documento não reside no disco rígido do computador onde foi criado. E o documento acessado é sempre a ultima versão. Não exisem problemas de sincronismos e conciliação de versões, como no modelo de PCs.

 As proposições de valor são diferentes. O modelo atual tem como proposta de valor sua riqueza funcional, que permite criar documentos sofisticadíssimos. Claro que existe um preço para isso! Entretanto, na minha opinião, esta riqueza funcional caracteriza fundamentalmente um excesso de capacidade, ou seja, extrapola a necessidade da maioria dos seus usuários.

 O modelo de suites em cloud (nuvem) oferecem uma proposta diferente, baseada em menos funcionalidades (pelo menos por enquanto…) e concentrada em colaboração e compartilhamento de documentos.

 E voltando a pergunta inicial… Na minha opinião, ao longo dos próximos anos veremos a convivência de ambos o modelos, mas também assistiremos a um lento declínio do modelo tradicional de suites, ampliando-se o uso das alternativas em cloud.

Cloud Computing no CIAB

setembro 13, 2009

Participei algumas semanas atrás de um painel sobre Cloud Computing ou Computação em Nuvem no CIAB. E um dos itens que foram abordados no debate foi “por onde começar minha caminhada em direção à Computação em Nuvem?”.

 Bem, de maneira geral, quando se fala em Computação em Nuvem lembramos logo das nuvens públicas como a do Google ou a oferecida pela Amazon, a EC2 (Elastic Compute Cloud).

 Mas, com as atuais soluções de virtualização e algumas tecnologias de software como o Tivoli Service Automation Manager da IBM (http://www-01.ibm.com/software/tivoli/products/tsam-facts.html) é perfeitamente possivel construir um ambiente de Computação em Nuvem dentro do data center de uma empresa. Claro que ainda existem peças faltantes no jogo, mas com a tecnologia disponivel já dá para começar a fazer muita coisa interessante.

 Inclusive existe, desde que sua empresa tenha tempo e expertise suficiente, tecnologia Open Source para construir uma nuvem privada. É o projeto Eucalyptus, que simula o ambiente EC2 da Amazon. Começou como um projeto criado para fins acadêmicos e agora é uma empresa à parte (http://www.eucalyptus.com/), que além de ser um distribuidor para o software, busca gerar receita para serviços de implementação da nuvem. Mas, como a empresa começou agora e não tem ramificação no Brasil, caso você opte por usar o Eucalyptus, ainda vai assumir toda a responsabilidade por mantê-lo em seu data center.

 Uma nuvem interna ou privada, operando dentro do firewall, entrega alguns dos beneficios das nuvens publicas, como melhor aproveitamento dos ativos computacionais e menor time-to-market para novas aplicações, ao mesmo tempo que mantém os processos e procedimentos internos de padrões, segurança, compliance e niveis de serviço.

 Mas, por onde começar  a jornada em direção à Computação em Nuvem? Uma sugestão é começar pela “nuvenização” do ambiente de desenvolvimento e teste.

 Imagine os desenvolvedores tendo à sua disposição um ambiente de auto-serviço, onde através de um portal ele requisita uma determinada capacidade computacional e a obtém em minutos e não em dias ou semanas, sem precisar passar pela área de produção e operação. E sem a necessidade de esperar a compra e instalação de um novo servidor para testar novas aplicações…Aliás, estes ambientes geralmente recebem a menor prioridade da produção. O resultado será uma maior produtividade do desenvolvimento de sistemas.

 Para a produção, o ambiente de desenvolvimento e teste ocupa cerca de 20% dos recursos computacionais, mas dá 80% das dores de cabeça. Para ela, não ter mais que se ocupar desta questão é um grande ganho. Em resumo: os dois lados saem ganhando!

 Como os ambientes de desenvolvimento e teste geralmente são isolados do ambiente de produção, são risk-free para o processo de aprendizado de criação e operação de uma nuvem interna.

 A computação em nuvem chegou para ficar, assim, é melhor começar a aprender como criar e usar este modelo computacional. Taí um bom primeiro passo.

Mais videos sobre Cloud Computing

setembro 12, 2009

Mais um video interessante sobre Cloud Computing:

http://www.youtube.com/watch?v=nw3QjGgDLvI

Discutindo segurança em Cloud Computing

setembro 11, 2009

Indiscutivelmente que a computação em nuvem veio para ficar. Seus apelos (elasticidade dos recursos, que são pagos pelo modelo “pay-as-you-go” e facilidade de acessar serviços de dados e aplicações de qualquer dispositivo e de qualquer lugar) são  bastante atrativos. Entretanto, nos traz novos desafios em termos de segurança, privacidade e resiliência. Um provedor de nuvem pública, por questões estratégicas, não abre sua tecnologia, organização e processos. Alguém sabe como funciona em detalhes a nuvem do Google ou da Amazon? Além disso, por concentrarem milhares  de clientes e seus valiosos dados,  tendem a atrair os indesejáveis crackers.

 Só para lembrar, uma nuvem pública é uma nuvem computacional oferecida por provedor externo, que provê recursos acessados via Internet. Como todo processo de outsourcing (computação em nuvens públicas é também um modelo de outsourcing), embora coloquemos nas mãos do provedor a responsabilidade pela segurança dos nossos dados, ainda somos os responsáveis pelo cumprimento das normas de auditoria e aderência as normas regulatórias. Assim questões práticas como por exemplo garantia de privacidade de informações pessoais, períodos de retenção de dados históricos para propósitos legais, possibilidade de revisão de processos pelas áreas de auditoria e investigações forenses em sistemas devem estar claramente definidas nas contratações externas de computação em nuvem.

 Em muitas situações, principalmente quando falamos em empresas de pequeno e médio porte, com restrições orçamentárias e carência de skills especializados, é bem provável que o provedor ofereça um nível de segurança e resiliência muito superior ao do data center interno. Mas, nenhum sistema é 100% seguro. Devemos estar atentos quanto à qualidade dos serviços em nuvem oferecidos pelo provedor. Uma nuvem computacional, embora seja um conceito, é criada em cima de estruturas físicas como data centers e seus servidores. A qualidade desta infraestrutura e dos processos do provedor é que desenharão o nivel de segurança, disponibilidade e resiliência da nuvem contratada.

 Muitos dos provedores de nuvens públicas enfrentam, vez ou outra,  problemas de disponibilidade. O Google AppEngine por exemplo, como podemos ver em http://www.datacenterknowledge.com/archives/2009/07/02/google-app-engine-hit-by-outage/ já teve problemas de desempenho. O mesmo já aconteceu com a Amazon, em seu serviço EC2 (http://www.datacenterknowledge.com/archives/2009/06/11/lightning-strike-triggers-amazon-ec2-outage/).

 A possibilidade de acesso indevido é real. Recentemente o blog TechCrunch postou um texto abordando a violação das bases de dados do Twitter por um hacker. No post, que pode ser acessado em http://www.techcrunch.com/2009/07/19/the-anatomy-of-the-twitter-attack/ é descrito em detalhes como foi feito o ataque, a partir de entrevista com o próprio hacker.

 Incrível que o hacker não usou nada sofisticado. Mostrou que com paciência e um pouco de conhecimento de comportamento social consegue-se descobrir muita coisa. O que ele fez? Primeiro usando motores de busca como o Google e acesso a redes sociais, criou um banco de dados sobre a empresa alvo (no caso a Twitter)  pesquisando informações públicas disponiveis na Web. Neste banco de dados coletou informações sobre os funcionários, endereços de email, funções na empresa e dados diversos como datas de nascimento e nomes dos animais de estimação.

 O passo seguinte seria obter um ponto de entrada no Twitter. Sabia que se conseguisse entrar no email de um funcionário, teria, a partir daí, acesso aos demais. O Twitter usa Gmail como seu sistema de correio eletrônico. Conseguiu a conta Gmail de um funcionário, embora sem senha. Mas como muitos sistemas, o Gmail busca ajudar o usuário que perdeu a senha enviando uma nova para um email alternativo. Assim o fêz e este email era o Hotmail. No Hotmail ele descobriu que o userid já estava desativado, mas que ele poderia recriá-lo com mesmo ID. Ele registrou novamente o ID (era o mesmo ID do Gmail, hábito que nós geralmente adotamos) e pode receber então o email do Gmail com nova senha. Entrou no Gmail do funcionário e pesquisou algum serviço que ele houvesse contratado e que tivesse enviado a senha em texto aberto. Muitos sistemas fazem isso: enviam a senha em texto aberto para o usuário da conta. Ele precisava retornar a senha original do Gmail para que o seu dono não soubesse que sua conta havia sido invadida, o que aconteceria quando o dono da conta fizesse login no Gmail! Achou alguns serviços e como geralmente usamos a mesma senha para todos os serviços online que assinamos (contas de email alternadas, Amazon, newsletters, etc) ele conseguiu restaurar senha original do Gmail. Estava dentro da rede do Twitter.

 Com acesso a este email, ele conseguiu fazer downloads de dezenas de arquivos e usando a mesma senha acessou o Google Apps, ferramental de escritório usado pelo Twitter, conseguindo outras valiosas informações.

 Lições aprendidas? Novas tecnologias nos trazem muitos benefícios, mas não devemos desprezar as questões de segurança. Computação em nuvem é uma mudança no modelo computacional, mas o uso de nuvens públicas deve ser visto com atenção. Não que as nuvens públicas sejam inerentemente inseguras, geralmente não o são, mas nossos hábitos muitas vezes facilitam os acessos indevidos. Uma alternativa? Usarmos nuvens privadas (nuvens computacionais internas ao “firewall”, quando podemos ter controle das normas e procedimentos de segurança) ou mesmo usarmos nuvens híbridas, onde temos nuvens privadas para aplicações e dados críticos, mas também usamos alguns serviços providos por nuvens externas.

Video muito legal sobre Cloud Computung

setembro 10, 2009

Vejam este vídeo muito legal sobre cloud computing. Ele foi feito no evento Web 2.0 Expo, em maio último, nos EUA e o seu autor pergunta a vários profissionais e editores de publicações técnicas o que é cloud computing. Interessante ver as respostas!

Confiram em : http://www.youtube.com/watch?v=6PNuQHUiV3Q .

Cloud Computing no IBM Forum 2009

setembro 8, 2009

Em 2 e 3 de setembro aconteceu o IBM Forum 2009. Foram dois dias de densas atividades e um tema quente foi, indiscutivelmente Cloud Computing. Ministrei uma palestra, com mais de 160 pessoas presentes, o que demonstra o grande interesse pelo assunto.

Uma das coisas boas de qualquer grande evento são as conversas de corredor, as trocas de idéias e opiniões. No IBM Forum não foi diferente. Mantive várias conversas sobre o tema. E vou compartilhar com vocês um resumo destas trocas de idéias.

 Interessante que computação em nuvem é visto por ângulos bem diversos. Para uns é a panacéia que vai resolver todos os problemas de TI. Esta corrente é incrementada pela mídia popular, onde o assunto já foi inclusive capa de revistas semanais como a Veja. Do outro extremo, vemos os céticos, que dizem que nada de novo vem com a computação em nuvem e que ela é apenas uma nova faceta dos velhos birôs de serviços dos anos 60 e 70.

 Na minha opinião não é a panacéia universal, e muito menos os birôs maquiados. Na minha opinião, a computação em nuvem vai transformar o modelo econômico da TI, tanto do lado consumidor, quanto do lado dos fornecedores de tecnologias e serviços. Entretanto, devemos extirpar preconceitos e tentar entender o que será esta mudança. Primeiro, Cloud Computing não é uma inovação tecnológica, pois se baseia em diversas tecnologias já existentes, como SOA, virtualização e grid computing, mas é uma verdadeira disrupção na maneira de se gerenciar e entregar TI! Existe todo um novo ecossistema sendo construído em cima destes novos modelos. As relações entre provedores de tecnologias e serviços e seus clientes, bem como as relações dos fabricantes com seus distribuidores e VARs deverá mudar ao longo dos próximos anos, à medida que a computação em nuvem se dissemine.

 Uma mudança significativa no modelo é a constatação que o modelo econômico atual, onde o consumidor de TI tem que dispender previamente elevados custos de capital (capex ou capital expenditure) começa a ser substituído por um modelo de opex (operational expenditure). Você pode, como já vemos acontecer na nuvem da Amazon, criar startups com capacidade computacional elástica, sem investir em ativos. Tem um case interessante de uma inovadora empresa para criação de vídeos, chamada Animoto (http://animoto.com/ que começou sua operação com  50 instâncias na Amazon. Ao lançarem o serviço também via Facebook o sucesso foi estrondoso. Em três dias tiverem que aumentar o numero de instâncias para 3.500! Podemos imaginar, no modelo atual, uma empresa precisando pular de 50 para 3500 servidores em apenas três dias? Existe possibilidade de você contactar um fornecedor, negociar e contratar estes servidores, instalá-los e os colocar em operação neste curto espaço de tempo? Não é um novo paradigma?  

 Na computação em nuvem não precisamos mais discutir GHz de processadores, porque não me interessa mais saber onde meus aplicativos vão rodar. A escolha da plataforma de execução vai se deslocar de caraterísticas técnicas para variáveis como custo, nivel de segurança, disponibilidade, confiabilidade e privacidade, e, importante, a brand do provedor. E tudo isso feito por self-service, através de um portal. Eu posso provisionar e operar um servidor na Amazon sem falar absolutamente com ninguém e pagar o que consumi de recursos computacionais com meu cartão de crédito.

 Sintomático deste quadro foi a interessante conversa com um CIO que me disse que começava a ficar assustado com cloud computing, pois poderia ser “bypassado” pelos usuários. Estes poderiam reservar uma máquina virtual na Amazon e contratar algum desenvolvedor externo para criar uma aplicação, usando softwares open source, sem mesmo pagar licenças de uso. Sim, é verdade. A “desintermediação” da área de TI pode ocorrer, desde, e enfatizei a ele, desde que o CIO se abstenha de entender a computação em nuvem. Por outro lado, se ele desenhar uma estratégia de cloud computing, com um road map adequado, ele não irá mais manter o controle absoluto e centralizado dos recursos computacionais como faz hoje, mas vai assumir um novo papel, o de coordenar e orquestrar estes recursos, sejam eles obtidos de nuvens públicas ou de nuvens privadas.

 Falando em nuvens privadas, a idéia é que a empresa crie uma infraestrutura dinâmica, com os usuáros internos alocando seus recursos computacionais da mesma forma que os provisionariam em uma nuvem pública, através de portais. Não precisariam mais solicitar servidores e esperar anuência dos administradores de sistemas. TI passa a ser um fornecedor de serviços, que seriam alocados de acordo com um “manual de políticas de uso de serviços computacionais”. Bem diferente do que vemos hoje!

 Outro aspecto que discuti em algumas conversas foi por onde cloud computing vai começar a se disseminar nas empreas. É bem provavel que em muitas o movimento começará pelos usuários, que usando nuvens computacionais públicas ou contratando aplicativos pelo modelo SaaS forçarão a área de TI a aceitar o modelo de computação em nuvem…

 Um questionamento que me chamou a atenção foi de um amigo meu que perguntou por onde e como começar a usar cloud computing. Na minha opinião as melhores chances de sucesso de introduzir novos paradigmas é não começar batendo de frente com as práticas arriagadas. Começar pelos ambiente de desenvolvimento e testes, ou mesmo por novos serviços como aplicações colaborativas (wikis e blogs) é um caminho que não substitui sistemas tradicionais e diminui-se drasticamente o risco de encontrarmos resistências, sejam culturais ou das politicas e hábitos já entranhados na organização.

 E vejam bem…foram apenas dois dias de debates e conversas. Imginem o que não teremos pelos próximos meses!

Bate papo sobre Cloud Computing

setembro 4, 2009

Bate papo animado sobre cloud computing… Aliás, hoje quase não vemos conversas entre profissionais de TI que não envolvam o assunto cloud computing.

 O que saiu de bom da conversa? Alguns insights interessantes! O primeiro insight, óbvio, é que cloud computing ou computação em nuvem, é um estilo de computação. Um novo paradigma computacional, como antes foram o modelo centralizado e o cliente-servidor. É também um novo modelo econômico de TI. 

Depois, rascunhamos nos guardanapos alguns atributos ou características que expressam o que é cloud computing. 

São eles:

 a)      Recursos de TI ofertados como serviços. O usuário se abstrai das questões mundanas das platformas tecnológicas. A infraestrutura na retaguarda não precisa e nem deve ser conhecida pelos usuários.

b)     Elasticidade. Um atributo quente, melhor até que escalabilidade, pois este último nos remete a um crescimento eterno. Elasticidade é a própria essência da computação on demand. Elasticidade significa que os serviços podem adicionar ou remover recursos, de forma automática, à medida do necessário.

c)      Compartilhamento de recursos. Os serviços compartilham recursos para obter economias de escala. A infraestrutura é compartilhada pelos usuários, sem que estes precisem saber disso.

d)     Pagamento por uso. Os usuários pagam apenas pelo que usarem da nuvem. Similar à energia elétrica, só que em vez de Kw/hora, o usuário paga por ciclo de CPU, bytes transferidos, etc…

e)      Uso da Internet como meio de comunicação entre o usuário e a nuvem.

Claro que existem variações sobre o tema, como por exemplo, a classificação em modelos de serviços, como nuvens públicas e nuvens privadas. Uma nuvem privada fica dentro do firewall e tem algumas características próprias, como restringir acesso apenas aos usuários (e parceiros de negócio) da empresa, e esta tem o controle dos niveis de serviço, aderência a regras e procedimentos de segurança. Claro que uma nuvem privada tem elasticidade mais restrita, pois fica sujeita ao parque tecnológico da empresa. E também existe a opção de nuvem híbrida, que permite expandir para determinadas situações e serviços a nuvem privada para acessar uma nuvem publica, expandindo assim a escalabilidade.

 De maneira geral, uma nuvem privada é criada quando é necessário ter controle explícito da disponibilidade da aplicação (não ficar dependente da Internet), niveis mais rigorosos de segurança e privacidade (compliance com exigências regulatórias) e performance (não pode ter o inevitáveis delays de acesso via Internet).

 Bem, lá se vai outro guardanapo: uma lista de tipos de aplicações adequadas para nuvens públicas. São ambientes de desenvolvimento, teste e pré-produção de sistemas, email e demais ferramentas de colaboração, aplicações batch sem maiores restrições de segurança, aplicações isoladas onde latências não impactam os usuários, backup/restore as a service, anti-spam as a service, e assim por diante. Por outro lado, aplicações com dados altamente sensíveis à regras de segurança e privacidade, ou que sejam sujeitas à regulamentos como Sarbanes-Oxley ainda estão fora das nuvens públicas.

 Comentário final: acessem o texto do New York Times (IBM to help clients fight cost and complexity) em http://www.nytimes.com/2009/06/15/technology/business-computing/15blue.html , que aborda a entrada da IBM em cloud computing. O artigo lembra de como a IBM transformou o Linux de sistema de nicho a sistema usado amplamente pelas empresas, como antes já tinha tornado o PC também ferramenta empresarial, saindo do uso exclusivo do mercado de usuários finais. Tem um comentário interessante de Frank Gens, analista chefe do IDC que disse o seguinte sobre a estratégia da IBM em cloud: “Its strategy is all about making cloud computiung safe for enterprise customers”.

Algumas dúvidas comuns sobre Computação em Nuvem

setembro 1, 2009

Desde o ano passado  venho apresentando e debatendo o assunto Cloud Computing ou Computação em Nuvem, tanto em eventos como em reuniões e conversas com clientes. Aliás, está ficando dificil participar de qualquer conversa sobre TI sem que este tema não apareça.

 Mas, ainda sinto que o desconhecimento é grande. Muita curiosidade, mas pouca ação. Bem, nestas conversas coletei um questionamento sempre recorrente, que vou compartilhar com vocês aqui no blog.  

Uma pergunta é “O que posso colocar (operar) em um nuvem?”. Na prática um ambiente de nuvem não vai resolver todos os problemas de TI de uma empresa. Vão existir aplicações que irão funcionar muito bem em nuvens e outras que não. Um exemplo típico de aplicações que podem ser deslocadas para nuvens são aplicações Web 2.0, ambientes de colaboração (como emails, webconferencing, wikis e blogs), e-learning, simulações, sistemas de computação analíticas e ambientes de desenvolvimento e teste. Além disso, uma nuvem pode ser usada para as aplicações que demandem os chamados “cloud burstings”, que são ocasiões especáficas nas quais a demanda computacional cresce muito. Um exemplo: uma aplicação de comércio eletrônico que ofereça promoções “imperdíveis” por curtos periodos de tempo.

 Outras, principalmente as que demandam um nível de integração grande com sistemas legados ou que tenham limites rigidos  de desempenho ficarão melhor nos servidores operados de forma tradicional.

 Entretanto, quando falamos em nuvem não estamos falando apenas de nuvens públicas, mas também de nuvens privadas ou internas ao firewall da empresa. Uma nuvem interna é, portanto, uma nuvem computacional confinada ao data center da companhia. Algumas aplicações podem ficar em nuvens publicas como mashups que fazem uso intenso de plataformas externas como Facebook. Mas, outras, que demandam maior necessidade de controle e estrita aderência à restrições regulatórias ou de compliance devem ficar dentro do firewal, em nuvens privadas. 

 Quando se usa uma nuvem pública, transferimos a responsabilidade da operação para o provedor da nuvem. Para empresas de pequeno porte, com procedimentos de segurança e recuperação frágeis (o que é bastante comum), pode ser uma alternativa bastante atraente. Mas, para empresas de maior porte, com regras e procedimentos de controle, o uso de nuvens publicas é mais restrito. Para estas empresas, o uso de nuvens privadas ou hibridas, em que apenas parte dos serviços está em nuvens publicas é a estratégia mais adequada.

 Aliás, a questão da segurança e privacidade sempre aparece nas conversas sobre cloud computing. Usar uma nuvem publica ou externa é bem diferente de se usar um serviço de hosting tradicional. Neste último você sabe exatamente onde estão seus servidores e o que você compartilha e o que você não compartilha com outras empresas. Em uma nuvem externa isso não acontece. Voce não sabe em que data center do provedor e muito menos em que servidores, seus arquivos e aplicações vão rodar. Nem mesmo se eles se encontram no seu próprio país. Outra dúvida é quanto a atividade de auditoria. Auditores começam a questionar como auditar aplicações e serviços em nuvens públicas. Alguns provedores de nuvens públicas não gostarão de abrir seus procedimentos operacionais, considerados “segredos de estado” para auditores externos ou investigações forenses.

 Outro aspecto importante que deve ser considerado: a capacidade do provedor de nuvem em oferecer serviços adequados em termos de segurança e privacidade. Como o assunto Computação em Nuvem ainda é novidade, nada impede que muitos provedores de serviços de hosting se auto-rotulem provedores de nuvens. Cabe aos usuários ter certeza que ele podem ser confiáveis, questionando e analisando as suas técnicas de proteção de dados, procedimentos de controle e autenticação, segregação de dados entre os usuários, e se possuem documentação adequada para os processos de auditoria.

 Compliance é outro fator a ser considerado na questão de se usar nuvens públicas ou privadas. Algumas restrições regulatórias e jurídicas podem impedir uma empresa de usar nuvens publicas para determinadas aplicações ou serviços. E os aspectos legais dos contratos com as nuvens publicas devem ser bem avaliados. Por exemplo, o que acontecerá caso voce não continue  usar determinado provedor? Em quanto tempo ele vai disponibilizar os dados de sua empresa para voce rodar em outra provedor e se existem garantias que as cópias armazenadas nos seus data centers serão destruídas. Como vemos, muitas vezes torna-se necessário que o jurídico deve ser envolvido. 

 Enfim, estamos dando os primeiros passos em direção a um ambiente de computação en nuvem. E temos ainda muita estrada pela frente.