Archive for junho \30\UTC 2010

Curso de Cloud Computing

junho 30, 2010

O assunto Cloud Computing já começa a gerar cursos específicos. Vi que a Impacta tem um curso chamado Show Day Cloud Computing, que vai acontecer dia 24 de julho, em São Paulo. As informações sobre este curso podem ser obtidas no http://www.impacta.com.br/eventos/showday.php .

O que este curso sinaliza? Que começam a surgir demandas de conhecimento específico sobre Cloud Computing e os profissionais de TI devem ficar antenados para estas novas oportunidades.

A Internet das Coisas e Cloud Computing

junho 28, 2010

Um assunto que começa a despertar interesse é a chamada Internet das Coisas. Nos últimos dois meses fui convidado a dar quatro ou cinco entrevistas sobre o tema. Assim, vamos abordar assunto aqui e mostrar qual a relação entre a Internet das Coisas e Cloud Computing.

 Bem, para começar podemos definir a Internet das Coisas como uma infraestrutura de rede global baseada em padrão IP onde coisas físicas (objetos) ou virtuais, com suas identidades únicas a atributos interoperam entre si e com sistemas de informação. Na Internet das Coisas, as coisas e objetos participam ativamente dos processos sociais e de negócios, compartilhando dados e informações “sentidas” sobre o ambiente em que se encontram, reagindo de forma autônoma aos eventos do mundo fisico, influenciando ou modificando os proprios processos em que se encontram, sem necessidade de intervenção humana.

 A interação com as coisas ou objetos inteligentes (“smart things”) dá-se geralmente na forma de interfaces para serviços, uma vez que estes objetos fazem parte de um conjunto maior. Por exemplo, um semáforo inteligente pode ter seu controle de tempo modificado por variáveis simples como hora (maior ou menor fluxo do trânsito) ou data (feriado ou dia da semana), bem como a partir de uma central que, baseado em algoritmos sofisticados, analisa outras informações e variáveis, oruindas de outros semáforos ou de incidentes como uma colisão em ruas próximas, que alteram o fluxo do trânsito. O semáforo faz parte de um serviço de controle de trânsito.  Por curiosidade, além do nome Internet das Coisas podemos achar também na literatura os termos Computação Pervasiva (Pervasive Computing) ou Computação Ubíqua (Ubiquitous Computing).

 Na Internet das Coisas a comunicação se dará principalmente entre objetos e data centers, onde infraestruturas de computação em nuvem (Cloud Computing) disponibilizarão capacidade computacional elástica e flexível o suficiente para acomodar esta grande demanda por recursos de armazenamento e processamento. O uso de recursos computacionais em nuvens é necessário, pois à medida que a computação vai se tornando cada vez mais onipresente, com objetos interagindo uns com os outros e etiquetas de produtos contendo chips com Identificação por Radio Freqüência (RFID) colados em latas de cerveja e pacotes de sucrilhos, o volume de dados que irão trafegar pelas empresas e que precisarão ser manuseados em tempo real será absurdamente maior que o atual. A imprevisibilidade da demanda aumentará também de forma exponencial e será impossível implementar sistemas pelo tradicional método de dimensionamento de recursos pelo consumo no momento de pico, pois os custos serão simplesmente astronômicos. Juntando a necessidade de acompanhar a flutuação das demandas de mercado com o crescimento dos volumes e serviços prestados, e com a subtilização dos recursos computacionais hoje disponíveis nas empresas, chegamos à constatação de que precisamos de um novo modelo computacional, mais flexível e adaptável à velocidade das mudanças que ocorrem diariamente no mundo dos negócios. Nuvem computacional significa que toda uma rede de computadores estará disponível ao usuário para executar seus programas, sem que ele precise saber exatamente qual ou quais computadores estarão fazendo o trabalho.

 A Internet das Coisas vai criar uma rede de centenas de bilhões de objetos identificáveis e que poderão interoperar uns com os outros e com os data centers e suas nuvens computacionais. A Internet das Coisas vai aglutinar o mundo digital com o mundo físico, permitindo que os objetos façam parte dos sistemas de informação. Com a Internet das Coisas podemos adicionar inteligência à infraestrutura física que molda nossa sociedade.

 Com tecnologias cada vez mais miniaturizadas podemos colocar inteligência (leia-se software) nos limites mais externos das redes, permitindo que os processos de negócio sejam mais descentralizados, com decisões sendo tomadas localmente, melhorando o seu desempenho, escalabilidade e aumentando a rapidez das decisões. Por exemplo, sensores que equipam um automóvel enviam sinais em tempo real para um algoritmo sofisticado em um processador no próprio veículo, que pode tomar decisões que melhoram a segurança da sua condução, evitando colisões ou mau uso dos seus componentes. Outras informações podem ser repassadas a uma central que monitore o percurso, gerenciando a forma do usuário dirigir o veiculo e retribuir esta forma de direção em descontos ou taxas adicionais de seguros. Podem enviar informações que mostram que o veículo está sendo furtado e portanto decisões como o bloqueio de sua condução e acionamento da força policial podem ser tomadas.

 A Internet das Coisas implica em uma relação simbiótica entre o mundo físico e o mundo digital, com entidades fisicas tendo também sua única identidade digital, podendo com esta comunicar-se e interagir com outras entidades do mundo virtual, sejam estes outros objetos ou pessoas. E não é futurologia, mas algo que já é realidade.

The Future of Cloud Computing

junho 21, 2010

Li atentamente o relatório produzido pela Pew Internet, chamado de “The Future of Cloud Computing”. A idéia central deste relatório foi analisar e consolidar as visões de centenas de especialistas sobre se eles concordavam ou não com a afirmativa: “By 2020, most people won’t do their work with software running on a general-purpose PC. Instead, they will work in Internet-based applications such as Google Docs, and in applications run from smartphones. Aspiring application developers will develop for smartphones vendors and companies that provide Internet-based applications, because most innovative work will be done in that domain, instead of designing applications that run on a PC operating system”. Uma sólida maioria dos entrevistados (71%) concordou com a afirmativa. Esta também é minha visão e analisando mais profundamente o relatório gostaria de compartilhar alguns insights pessoais com vocês. O relatório pode ser lido em sua íntegra em //pewinternet.org/Reports/2010/The-future-of-cloud-computing.aspx.

 Há no relatório uma frase bem interessante do Nicholas Carr, autor do livro “The Big Switch: rewiring the World, from Edison to Google”, que diz “We don’t have to wait until 2020 for this shift. It’s already happened. The browser (a cloud interface) is already by far the most possible PC application, and cloud services like Facebook are the most popular computing services, whether accessed by PCs, netbooks, or smartphones. For consumers, the cloud revolution has already happened”. Sim, é verdade. Muita gente já usa cloud computing. Basta ver os usuários das redes sociais como Facebook, Orkut e Twitter. Os usuários do Gmail, Hotmail, WordPress, YouTube e Flickr. E de muitas outras aplicações como Delicious ou TripAdvisor. E os que compram livros na Amazon. Outras aplicações seguirão este rumo. A Netflix já anunciou que vai eliminar a necessidade de fazer downloads de filmes. O streaming passará a ser o padrão para ver vídeos e ouvir músicas. Armazenar fotos, vídeos e músicas não será mais no seu PC mas em nuvens, acessáveis por quaisquer dispositivos.

 O uso de cloud computing se dissemina em ritmos variáveis, dependendo das características de cada país. No Brasil, por exemplo, ainda temos sérias limitações de banda larga, inibindo uma maior disseminação da computação em nuvem. Cloud computing tem uma relação de dependência direta com a banda larga. Por aqui, já vemos que a banda larga móvel ultrapassou a fixa. Nos primeiros três meses deste ano o numero de assinantes de banda larga móvel chegou a 11,9 milhões, sendo 100.000 a mais que o acesso fixo. As estimativas apontam que até o fim deste ano serão 18 milhões de usuários de banda larga móvel contra 13 milhões de assinantes de banda larga fixa. Neste primeiro trimestre, o numero de celulares 3G já chegou a 8,7 milhões. Mas, a banda larga móvel no Brasil ainda apresenta problemas como uma densidade abaixo da média mundial e preços maiores que os praticados na América Latina e Europa. Também o subdimensionamento das redes, em especial em relação à capacidade de transmissão faz com que os niveis de serviço estejam aquém do desejado.

 Uma coisa é a crescente utilização da computação em nuvem e o deslocamento de funções computacionais para smartphones, tablets e outros dispositivos móveis. Estes dispositivos estão cada vez mais poderosos. Outra é o desaparecimento dos PCs. Estes, assim como a telefonia fixa, estão em uma rota declinante, mas não desaparecerão, pelo menos nos próximos 5 a 10 anos. Os PCs podem ser considerados como telefones fixos, ainda existem, mas caminham lentamente para desaparecerem completamente.

É provavel que o cenário mais comum seja um ambiente híbrido, com a maioria das funções sendo obtidas a partir das nuvens computacionais, mas algumas outras ainda resistindo nos PCs.

 Na minha opinião, a disseminação da computação em nuvem será mais lenta nas grandes empresas, por questões de segurança e controle. Estas provavelmente trilharão inicialmente o caminho das nuvens privadas. Mas empresas de pequeno porte e a maioria dos usuários finais usarão mais e mais nuvens publicas, muitas vezes sem o saber. Um usuário acessando um PC usará uma aplicação sem ter noção se ela está no seu computador ou residindo em uma nuvem publica, que esteja mesmo em um outro país. Na prática ele usará o PC e a cloud ao mesmo tempo, e de forma indistinta.

 De maneira geral superestimamos os apelos tecnológicos de curto prazo (ciclo do hype) e subestimamos os impactos na sociedade a médio e longo prazo. Basta vermos os exemplos anteriores do próprio PC, do email, da Web, do Google e agora do Facebook. Não compreendemos seu alcance no início, mas que, indiscutivelmente foram, ao longo do tempo, agentes de dramáticas mudanças nos comportamentos e hábitos sociais. Cloud computing vai se tornar mais e mais importante, mudando a relação de uso das empresas e das pessoas com a computação. Os proprios gate-keepers de acesso à Internet, hoje os ISP (Internet Service Providers) serão substituídos por empresas como Google e Apple. Os conceitos já quase obsoletos do PC e de seus sistemas operacionais e softwares residentes em discos rígidos (que precisam de download para instalação e aplicações de patch) perderão espaço para smartphones, tablets e outros dispositivos móveis e nas nuvens. E quem sabe se o  futuro Windows não será o Chrome OS?

 Mas, prever futuro é sempre uma incerteza. Para mim a essência dos conceitos e idéias da computação em nuvem ainda vai evoluir bastante. Estamos ainda na sua infância, sujeitos a erros e acidentes de percurso. Ao longo do tempo ajustes e refinamentos no próprio conceito e nas tecnologias que o suportam devem mudar em muito a “cara” do que é hoje considerado Cloud Computing. Mas, em uma coisa eu aposto: o conceito vai “pegar”.

Mais papos sobre Cloud Computing

junho 10, 2010

Estive ontem no CIAB participando de um painel sobre Cloud Computing. Durante o painel e após, surgiram diversas perguntas que são emblemáticas dos questionamentos dos CIOs e CTOs. Vale a pena compartilhá-las aqui.

 Mas, antes de mais nada é importante frisar que na minha opinião Cloud Computing não é hype mas um novo modelo computacional que requer imediata atenção dos executivos de TI.

 Bom, mas indo para as questões, o primeiro questionamento que surge em eventos como CIAB e outros geralmente é “Me explica o que realmente é Cloud Computing”. Existem inúmeras definições, mas uma que podemos adotar foi a criada pelo NIST (National Institute of Standards and Technology), órgão de padrões do governo americano que definiu Cloud Computing como “Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models”. 

 As características essenciais são auto-serviço, compartilhamento de recursos, elasticidade, acesso via rede de alta velocidade e serviços mensuráveis. Os serviços da nuvem são SaaS (Software as a Service), PaaS (Platform as a Service) e IaaS (Infrastructure as a Service). Já os modelos de entrega destes serviços são Private cloud, Community cloud, Public cloud e Hybrid cloud. Os documentos do NIST podem ser acessados em    http://csrc.nist.gov/groups/SNS/cloud-computing/.

 Depois desta resposta vem inevitavelmente a questão “mas, onde cloud computing é diferente do velho e tradicional outsourcing?”. Para mim está claro que Cloud Computing é um novo modelo computacional que apresenta algumas diferenças fundamentais em relação ao outsourcing como conhecemos. Por exemplo, a elasticidade é vital para permitir o modelo pay-as-you-go (pagar pelo que consome) e as economias de escala oferecidas pelos massivos data centers dos provedores de nuvem. Outras diferenças são um gerenciamento automático (em escala muito maior que os tradicionais data centers, onde muitas operações, como provisionamento de recursos, são manuais), workloads padronizados (economia de escala é conseguida quando se reduz a variedade de configurações), provisionamento automático (voce requisita e obtém de imediato um recurso através de um portal de auto-serviço e não precisa passar por negociações e demoras até que um servidor físico seja instalado e configurado) e um billing similar ao da telefonia móvel, onde você paga pelos recursos devidamente consumidos e não por configurações ociosas.

 Surge então a pergunta “afinal cloud computing é uma revolução ou evolução?”. Do ponto de vista tecnológico é evolucionário, pois é construído em cima de tecnologias já existentes como a nossa conhecida virtualização. Por outro lado a arquitetura multitenant (um texto ainda incipiente pode ser encontrado no Wikipedia, em http://en.wikipedia.org/wiki/Multitenant)  e mesmo ferramentas de análise massivamente paralelas como o Hadoop (http://hadoop.apache.org/) são revolucionárias. Mas podemos considerar Cloud Computing como uma revolução na maneira de se gerenciar e entregar TI. Provavelmente em breve consideraremos capacidade computacional como mais uma das utilities, ao lado de energia, água, gás e comunicação. Para isso acontecer cloud computing terá que ter sido adotado massivamente.

 Um dos questionamentos mais comuns é “quais os benefícios e riscos de Cloud Computing?”. Começando pelos benefícios posso destacar aqui alguns itens como a velocidade de resposta para o “time-to-application”, pois a computação em nuvem permite implementar uma aplicação em muito menos tempo, seja adotando uma já pronta no modelo SaaS ou desenvolvendo uma nova via PaaS e/ou IaaS. Basta comparar com quanto tempo se demora para selecionar, adquirir, instalar e configurar um novo servidor. Três meses? Quatro meses? Outros benefícios são o alinhamento dos investimentos (leia-se budgets de TI) com a demanda (você não precisa comprar uma máquina para ser usada daqui a seis meses), a substituição do capex pelo opex (não precisa investir seu capital antes de usar os ativos) e a possibilidade de usar a computação em nuvem como válvula de escape para aquelas situações de demanda de pico, que ultrapassa a capacidade do data center. Não se precisa mais configurar um data center para o período de pico, mas para sua utilização média, usando-se por exemplo, uma nuvem pública para os períodos excepcionais. Quanto aos riscos, lembramos de imediato das questões de segurança e privacidade (principalmente quando falamos em nuvens publicas), aderência a restrições regulatórias (questões de compliance), lock-ins por parte de determinados provedores de nuvens, e a dificuldade de integração entre as aplicações em nuvens publicas e as que continuarão operando no modelo on-premise. Um outro desafio é a qualidade e disponibilidade de banda larga, que no Brasil é cara, lenta e mal distribuída.

 Uma pergunta que aparece de vem em quando é “que tipos de aplicação posso colocar em uma nuvem?”. Algumas são mais propícias e podem ir de imediato para nuvens, como aplicações de colaboração e email. Outras, principalmente as que demandam muita integração com sistemas on-premise devem ser deixadas para um segundo momento. Para começar sua jornada em direção a Cloud Computing sugiro começar com aplicações de baixo risco, como uma aplicação Web, que não requeira maiores integrações com outros sistemas e nem demande acesso a dados sensiveis em termos de segurança e compliance.

 E afinal, perguntam, “devo ir para nuvem pública ou privada?”. A resposta é “depende”. Talvez os dois…Uma nuvem privada opera dentro do data center e pode ser a resposta para aquelas empresas ou aplicações altamente sensiveis à aspectos de segurança e compliances regulatórios, e que não podem em princípio, serem hospedads em nuvens públicas.

 E no final, faço questão de lembrar que ir para Cloud Computing não é mais questão de “se”, mas apenas de “quando e como”. E aproveito para sugerir que vocês se mantenham atualizados com o assunto e uma das fontes para isso é o CCIF (Cloud Computing Interoperability Forum) em http://www.cloudforum.org/. Boa jornada!