Archive for outubro \26\UTC 2010

Computação em Nuvem na Europa: hoje e amanhã

outubro 26, 2010

Recentemente li um relatório muito interessante chamado “The Future of Cloud computing: Opportunities for European Cloud Computing Beyond 2010”, que pode ser acessado na sua íntegra em http://cordis.europa.eu/fp7/ict/ssai/docs/cloud-report-final.pdf .

A proposta do relatório é debater as potencialidades do uso da computação em nuvem pelas empresas e governos europeus.
Para a União Européia, a computação em nuvem assume um papel estratégico pois ao possibilitar menores barreiras de entrada para criação de negócios que dependam de TI, abre novas e inovadoras oportunidades.

O relatório analisa os aspectos não funcionais da Cloud Computing como elasticidade, considerado um ponto chave do modelo e identifica alguns aspectos econômicos como redução de custos, pay-per-use e mudança de Capex para Opex como grandes impulsionadores.
Entretanto, considera em seu capítulo “State of the Art & Analysis” que embora Cloud Computing seja um conjunto de tecnologias e conceitos que já existem, como virtualização e SOA, ainda demanda muito esforço de pesquisa e desenvolvimento, para criar camadas de software que gerenciem mais eficientemente este ambiente. Aliás cita alguns projetos de pesquisa em Cloud tendo como base o OpenNebula (http://www.opennebula.org/). O OpenNebula é um ambiente Open Source para implementação de Cloud na modalidade IaaS.

Um ponto interessante das pesquisas em desenvolvimento é a questão da elasticidade que hoje é apenas horizontal e não vertical. Vejamos, por exemplo, uma nuvem IaaS como a EC2 da Amazon. Se voce quiser alocar mais recursos, precisa criar mais instâncias ou seja, voce tem apenas elasticidade horizontal. Não existe no EC2 da Amazon e nas demais nuvens públicas recursos que permitam escalabilidade vertical ou aumento ou diminuição automático da capacidade computacional de uma única instância virtual. Na Amazon o que podemos considerar como escalável verticalmente é a nuvem S3 ou Storage-as-a-Service.

Mas, além das pesquisas referentes à tecnologia, alguns aspectos como legislação e políticas de uso ainda precisam ser melhoradas em muito. Existe, na opinião dos autores do relatório um campo imenso para pesquisas na área de Cloud Computing. Aliás, eu concordo plenamente com eles. Estamos ainda na primeira geração das ofertas de Cloud Computing e nos próximos anos veremos acontecer muita evolução, em todos os seus aspectos, desde tecnológicas à mudanças nas questões legais e regulatórias. Não podemos simplesmente tirar uma foto da situação da computação em nuvem atual e congelá-la no tempo. Em dois a três anos muitos dos receios e questionamentos atuais estarão minimizados. Pensem: há dez anos atrás era quase uma heresia falar-se em colocar cartão de crédito na Internet. Hoje, praticamente todo mundo faz compras pela Internet ou usa Internet Banking.

Um capítulo interessante do relatório é o “Towards a European Vision” onde ele faz uma análise SWOT (Strengths, Weaknesses, Opportunities, Threats) da computação em nuvem na Europa. Este é um ponto que merece atenção. Observamos que a maioria das ofertas de nuvem que vemos no mercado são muito “US-centric” e as realidades americanas e brasileiras são muito diferentes, tanto em termos culturais como tecnológicos. Banda larga por aqui não é tão larga e nem tão barata quanto nos EUA. Assim, uma comparação com a Europa, em alguns aspectos, torna-se um pouco mais próxima da nossa realidade.

Por exemplo, em fraquezas (weaknesses) os europeus citam a pouca oferta de infraestrutura computacional. Os imensos data centers da computação em nuvem como os da Amazon ou Google são americanos. Além disso, os europeus reconhecem que estão bem atrás em relação ao desenvolvimento de novas tecnologias no que se refere a Cloud Computing. Na análise de riscos, citam entre outros aspectos a ausência de ofertas de IaaS genuinamente européias, criando uma dependência dos provedores de nuvens americanos. Para a estratégia geopolítica européia é uma questão a ser enfrentada. O que eles indicam no relatório é que incentivam suas empresas de telecomunicações a se tornarem também provedores de nuvens, para contrabalançar a liderança americana exemplificada pelas ofertas de nuvens públicas do Google e Amazon.

Nas conclusões indicam que devem ser enfatizados os esforços europeus para mais pesquisas sobre Cloud Computing, não apenas em tecnologias mas nas questões legais e regulatórias, e o incentivo à criação de novos modelos de negócios que usem a computação em nuvem como base computacional. Em resumo, é um relatório instigante e que merece ser lido com atenção.

Anúncios

Assunto da reunião: Cloud Computing

outubro 16, 2010

Outro dia estive em uma reunião com executivos de uma grande corporação, interessados em debater adoção de Cloud Computing em sua empresa. Eles levantaram uma série de questionamentos, que vale a pena compartilhar aqui.

Um ponto bastante discutido foi a questão legal da jurisdição na qual o provedor de uma nuvem pública vai operar. Um item muito debatido foi: “se os dados de minha empresa estiverem em um data center de um provedor que esteja nos EUA, mas que depois sejam transferidos para um segundo data center, na China, por exemplo, isso não poderia implicar em algum problema?. As leis voltadas à privacidade e proteção à propriedade intelectual variam de país para país e eventualmente isto não poderia ter uma implicação nos aspectos regulatórios nas quais a empresa se insere?”.

A resposta é sim. As legislações de proteção aos dados são diferentes em cada país e esta questão pode ser um impeditivo. O que pode minimizar o problema é garantir por força contratual que os dados residirão em data centers situados em determinados países. Esta questão, até ser resolvida, poderá ser um inibidor para adoção de nuvens públicas por determinadas empresas privadas, públicas e órgãos de governo.

Outro questionamento foi sobre segurança e disponibilidade. Como garantir que os data centers dos provedores de nuvens públicas vão oferecer segurança e disponibilidade nos niveis adequados? Na minha opinião este nivel de segurança e disponibilidade vai depender do provedor. Existem provedores que vão oferecer niveis de segurança bem elevados e outros que se contentarão em oferecer niveis mais baixos. A recomendação é escolher provedores de nuvens públicas que tenham realmente expertise e competência para prover um data center seguro.

Além disso, todos nós sabemos que não existe tecnologia que seja 100% a prova de falhas e muito provavelmente alguns data centers que prestam serviços de nuvens públicas podem falhar. A tecnologia por trás de um serviço de cloud computing é complexa e sofisticada, e eventuais falhas podem ocorrer, gerando efeitos cascata por parte ou toda a nuvem. Os riscos são de perda de acesso aos serviços (nuvem indisponível) ou perda dos dados.

O provedor de nuvem pública deve oferecer mecanismos de resiliência, como backup e recuperação rápidos. Novamente, a escolha do provedor de nuvem pública é um processo que não pode ser feito de forma amadora, mas deve ser efetuado por uma análise bem criteriosa, que valide estes mecanismos de resiliência.
Esta análise deve contemplar questionamentos como:

1) Quais são os procedimentos de backup e restore dos dados armazenados na nuvem pública?
2) Os dados backup são armazenados no mesmo servidor e no mesmo data center, ou em localização geográfica diferente?
3) Os procedimentos de backup e restore são testados periódicamente?
4) Quais são as evidências que o provedor pederá mesmo recuperar os dados em caso de perda?

Aí levantou-se outro ponto que é a transparência destes procedimentos. Como auditar estes niveis de segurança em um provedor externo? Nem todos permitem que auditores dos clientes entrem e avaliem seus data centers. Minha resposta é que sejam exigidos certificações de segurança e que auditorias externas e independentes avaliem os niveis de risco dos data centers dos provedores.

Um terceiro ponto discutido foi a questão das licenças de software. Imaginem adoção de nuvens públicas para infraestrutura (IaaS) e a transferencia para esta nuvem de diversos softwares que rodam nos servidores da empresa. Primeiro ponto: o licenciamento atual permite esta transferência? Além disso, o modelo atual de licenças não combina bem com a proposta de elasticidade oferecida pelas nuvens públicas. É possível conciliar os licenciamentos em uso hoje ou serão necessários outros licenciamenos, e neste caso, como fazer?
Minha resposta: esta questão deve ser resolvida com os fornecedores de software. Alguns deles provavelmente terão contratos de parceria com os provedores de nuvens, o que facilitará o processo. Outros não, o que poderá gerar implicações legais. Portanto, negociação é fundamental neste processo.

Finalmente acordamos que a estratégia mais adequada seria começar com nuvens privadas e efetuar experiências (prova-de-conceito) com algumas aplicações em nuvens públicas. A maioria das grandes corporações tende a seguir este caminho, pela insegurança que ainda sentem em colocar aplicações e dados estratégicos em nuvens públicas. Algumas estatísticas refletem esta tendência. Por exemplo, a empresa de análise da indústria de TI, Saugatuck, liberou uma pesquisa efetuada entre CIOs nos EUA que mostrou que das companhias de grande porte (mais de 5000 funcionários) que tem planos de adotar Cloud Computing, estas estão em sua maioria (78%) optando por nuvens privadas. Mas a pesquisa mostra também que em 2014 este numero deverá cair para 70%, o que mostraria uma lenta mas crescente confiança em nuvens publicas. Na minha opinião o ritmo provavelmente deverá se acelerar, pois este número conservador ainda espelha a desconfiança atual. À medida surjam que mais e mais experiências bem sucedidas, a disseminação de nuvens, tanto privadas como publicas, deve se acelerar.

Outro ponto debatido foi: “por onde começar a usar uma nuvem privada?”. As ofertas atuais, que podemos chamar da primeira geração de nuvens privadas, focam-se em workloads específicos, como ambiente de desenvolvimento e teste, ou business analytics. Mas é um excelente ponto de partida. Posteriormente, outras aplicações poderão migrar para o ambiente de nuvens. Uma oferta de mercado interessante para se começar a usar nuvens é a adoção de uma tecnologia chamada “cloud-in-a-box”, que é um appliance, ou um sistema com softwares previamente embarcados, mas configurável, que permite acelerar o processo de “entrada” nas nuvens. Como exemplos os Smart Analytics Cloud e Smart Business Test Cloud da IBM.

Ficou claro também que a maioria das empresas vai precisar de algum apoio em servicços para implementar um ambiente de cloud computing. É uma caminhada longa, que vai mudar as relações entre TI e seus usuários, bem como entre a empresa e seus fornecedores de tecnologia. É uma mudança de paradigmas e deve começar com sucesso. Neste processo, contar com expertise que não exista dentro de casa, é bem vindo.

Enfim, o que debatemos demonstrou um fato importante: estamos caminhando rápido para uma maior maturidade dos conceitos de cloud computing, tanto que os questionamentos já estão sendo bem mais profundos do que eram há meros seis meses atrás. Sinal claro que a computação em nuvem está avançando mais rápido que muitos estão pensando…

Cloud Computing: tirando algumas dúvidas

outubro 11, 2010

Volta e meia recebo emails de estudantes que estão desenvolvendo seus TCC e que querem abordar algum tema relativo à Computação em Nuvem. Coletei algumas de suas dúvidas e vou resumi-las aqui. Talvez possam ser úteis…

Antes de mais nada precisamos lembrar que existem inúmeros tipos de serviços de Computação em Nuvem. À primeira vista, quando se fala no assunto, aparece a propensão de imaginarmos um único modelo, geralmente de infraestrutura. Mas, existe uma diversidade dos serviços de Computação em Nuvem, que podem ser melhor exemplificadas quando os dividimos em camadas. Estas camadas mostram como os serviços de TI podem ser ofertados sob o modelo de Computação em Nuvem:

 a)     Nivel 1: camada de infraestrutura em nuvem (infrastructure-as-a-service), com oferta de serviços de hospedagem de capacidade computacional e armazenamento de dados. É a camada mais básica da Computação em Nuvem.Um exemplo típico são as ofertas de serviços em nuvem da Amazon, chamados de EC2 e S3.

b)     Nivel 2: camada de  desenvolvimento e serviços de gerenciamento em nuvem. Um exemplo é a plataforma de desenvolvimento como as oferecidas pelo Google AppEngine e pelo force.com. Muitas vezes estas camadas usam serviços e softwares da camada anterior.

c)     Nivel 3: camada de aplicações ou Software-as-a-Service  como Salesforce.com, Google Docs ou LotusLive da IBM. Muitas das aplicações Web 2.0 mais conhecidas, como Facebook, Flickr e Linkedin são serviços baseados em nuvem, embora seus usuários não tenham idéia disso. Esta camada é a parte mais visível da Computação em Nuvem e a que mais enfatiza seus benefícios para os usuários.

d)     Nivel 4: camada de processos, que envolvem processos de negócio baseados nas tecnologias ofertadas pelas camadas anteriores. Um exemplo são os serviços de BPO (Business Processing Outsourcing) oferecidos no modelo  de Computação em Nuvem. Ainda incipiente, mas que deve no futuro transformar o próprio mercado de BPO.

 Abaixo de todas estas camadas podemos imaginar uma camada zero, onde se situam os fornecedores de tecnologias básicas, que são exatamente os servidores, discos, equipamentos de rede, sistemas operacionais. Estes componentes são a base tecnológica das nuvens. Sim, as nuvens precisam de computadores e data centers…

 Uma tecnologia fundamental ao conceito de nuvem é a virtualização. Virtualização é basicamente o uso de software para simular hardware. Quando alugamos os serviços de uma nuvem, na prática não estamos alugando diretamente computadores reais, mas computadores virtuais simulados por software, em cima dos computadores reais da infraestrutura do provedor da nuvem.

 A virtualização não é, em absoluto, uma novidade tecnológica. Suas primeiras implementações datam dos mainframes 360/67 da IBM, que apareceram em 1967.  Mas, nos últimos anos, com o aumento da capacidade dos processadores, a virtualização, antes restrita aos mainframes, começou a se espalhar por servidores de pequeno porte, aumentando sua utilidade e disseminação.

 A virtualização nos permite construir múltiplos servidores virtuais em uma única máquina física. Cada uma destas máquinas virtuais funciona como se fosse uma máquina real, com seu sistema operacional e aplicações. A virtualização possibilita um uso muito mais eficiente do recursos computacionais, pois compartilha e distribui a carga de vários servidores virtuais em um servidor físico.

 O termo infraestrutura como serviços começou a aparecer no final de 2006, como uma sofisticação do conceito e da terminologia de Hardware-as-a-Service, proposto pelo jornalista Nicholas Carr. A idéia básica é que o usuário, ao invés de adquirir e instalar servidores e equipamentos de rede em um data center, poderia usar estes recursos a partir de um provedor externo. Mas, diferentemente dos modelos tradicionais de outsourcing, a Computação em Nuvem não alocaria um determinado recurso ao contratante. A nuvem  alocaria de foma dinâmica e automática os seus recursos, para atender aos requisitos de demanda do cliente.

 As caracteristicas básicas do modelo de Infrastruture-as-a-Service (IaaS) são:

a)      O usuário não precisa obrigatoriamente dispor de hardware e software nos moldes tradicionais, ou seja, em seu próprio data center. Pode alocar estes recursos em uma nuvem pública. A capacidade de processamento e de armazenamento é obtida remotamente da nuvem. Por outro lado, ele pode adotar o conceito d enuvem em seu data center, aparecendo então o conceito da nuvem privada.

b)      Em uma nuvem pública todos os recursos computacionais estão na nuvem do provedor, que os alocará de forma dinâmica e elástica, para atender as demandas de flutuação do negócio.

c)      O acesso à nuvem é via Internet. Portanto banda larga é fundamental.

d)      Os recursos, de uma maneira geral, sendo compartilhados tendem a ser usados de forma mais eficiente.

e)      Todo o pagamento é pelo volume de utilização. Usou, pagou pelo que foi usado.

f)       Este modelo incentiva a criação de ecossistemas que podem gerar aplicações e serviços complementares à oferta IaaS. Um exemplo é ecossistema criado em cima da nuvem da Amazon, com inúmeras empresas disponibilizando serviços adicionais usando esta nuvem como infraestrutura. O catáloga de aplicações basedas na nuvem da Amazon pode ser visto em:  http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=60.

 Outro serviço em nuvem interessante é o do Sofware-as-a-Service. O modelo SaaS é um modelo que entrega software como um serviço, de forma diferente do modelo tradicional, onde a empresa adquire uma licença de uso e instala o software nos servidores da empresa. O modelo SaaS muda as regras do jogo, transformando a maneira de como software é comercializado. Não existe mais a necessidade de contratos de manutenção, pois esta fica  cargo do provedor e não mais da empresa. O usuário passa apenas a usar o software, sem se preocupar com as atividade de instalação, manutenção, upgrades, etc.

 O benefício pode ser visto através de um exemplo bem simples: um editor de texto. No modelo tradicional, o usuário precisa ter uma cópia do software e sua respectiva licença de uso no seu desktop ou laptop. O usuário adquire esta licença para uso 24×7,  mesmo que não use o software a noite ou nos fins de semana. Além disso, se ele levar trabalho para casa e ter que usar um outro computador, como seu PC doméstico, terá que obter uma segunda licença. No modelo SaaS, quando o software não está sendo usado, não está sendo pago. E ele, usuário, pode usar o editor em casa ou no escritório, sob a mesma assinatura, pagando apenas pelo seu uso.

 O modelo SaaS não surgiu de um dia para o outro, mas é fruto da convergência de diversas tecnologias (networking, ferramentas de programação e capacidade computacional) que vem apresentando custos continuamente descrescentes. Por outro lado, os softwares vendidos por modelos de licenciamento estão continuamente se tornando mais complexos e custosos para serem adquiridos, implementados e mantidos. E em cima deste contexto, um cenário de negócios exigindo cada vez mais rapidez e menores custos das áreas de TI. A combinação de todos estes fatores gerou um pano de fundo que criou um mercado para que o software possa ser entregue como serviços, a custos bem menores que no modelo atual.

Surgiu então o SaaS, cujo conceito começou a circular por volta de 1999, mas apenas nos últimos anos ganhou espaço considerável de mídia. Uma das iniciativas pioneiras foi o Salesforce.com, embora hoje muitos outros softwares já estejam disponíveis sob este modelo.

 Ainda existe uma grande confusão em torno das diferenciações entre SaaS e o anterior modelo ASP ou Application Services Provider. SaaS está relacionada com a funcionalidade da aplicação, entregue via modelo de subscrição. O cliente não precisa ter a “propriedade” do software. O ASP é diferente. É um modelo de hospedagem da aplicação, onde o cliente adquire o software e o instala em um provedor remoto. Por exemplo, o cliente adquire a licença de uso de um ERP e o hospeda em um servidor externo. A diferença com relação ao modelo tradicional é que no ASP em vez de instalar e operar o aplicativo nos seus servidores, ele fica em servidores externos. Se um dia o cliente não quiser mais usar este provedor externo, mas rodá-lo internamente, como ele “possui” o software, simplesmente o instala em seus próprios servidores.

 No SaaS, ele não “possui” o software e portanto não pode instalá-lo em seus próprios servidores. Adicionalmente não precisa se preocupar com a tecnologia em que o software vai operar. No ASP esta preocupação existia, pois ele tinha que adquirir um software para determinado ambiente operacional.

 Software-as-a-Service é um modelo disruptivo. Sua proposição de valor é  funcionalidade oferecida e não a “propriedade” do produto. A idéia básica é que você na verdade não quer uma máquina de lavar roupa, mas quer a roupa lavada. Você não necessita instalar um pacote de CRM ou ERP, mas precisa apenas das suas funcionalidades.

 O cliente não adquire licença de uso, mas paga uma taxa mensal baseada no número de funcionários que acessem o serviço.  SaaS por ser um modelo disruptivo, vai afetar toda a estrutura da indústria de software. As empresas de software que se sustentarão neste modelo tenderão a ter nítida vantagem sobre as que se mantiverem rigidamente presas ao modelo de depender de despesas de capital por parte de seus clientes, para a compra de seus produtos. Claro, não será amanhã, mas é um movimento que já se iniciou…