Cloud Computing (Computação em Nuvem) tem se tornado, cada vez mais, parte de nossas vidas, mesmo que não perceba, provavelmente está usando algum serviço na Nuvem.
Todos nós estamos ligados um ao outro através da grande rede de computadores, a Internet, a qual chamamos de Nuvem (ou Cloud em Inglês), e ela nos oferece diversos serviços como: a Web (WWW), e-mail, compartilhamento de arquivos (FTP, P2P, etc), entre outros. Todos esses serviços utilizam memória, armazenamento e processamento de informações, mas onde é que tudo é feito?
Isso tudo é feito na nuvem, ou seja, essas informações são processadas e armazenadas em diversos servidores (centenas, muitas vezes milhares deles) espalhados pela Internet, muitas dessas informações poderiam levar dias, ou até anos para serem processadas em um computador normal, mas como isso é feito de maneira coordenada e distribuída entre os vários servidores, essas informações aparecem quase que instantaneamente, e você não precisa se preocupar onde essa informação está sendo processada, seja num servidor na China ou na Rússia, pois essa divisão e distribuição de tarefas entre os servidores é feita de maneira transparente, te dando a impressão de que tudo isso é feito em um único computador.
Esse conceito de que as informações não são processadas no seu computador, mas sim na Internet, damos o nome de Computação em Nuvem.
Hoje diversas empresas oferecem serviços na Nuvem, como HD virtual, hospedagem de sites, softwares entre outros, e podemos dividir em 3 tipos principais: IaaS, PaaS e SaaS.
- IaaS (Infrastructure as a Service, ou Infraestrutura como Serviço): em termos gerais, consiste do serviço onde o cliente "cria" um(ou mais) computador(es) virtual(is) (chamados de instancias) com as configurações de memória, processador, capacidade de armazenamento e sistema operacional desejados. Um servidor físico (computador real) custa caro, além de outros gastos como manutenção e energia elétrica, muitas vezes não sendo economicamente viável, geralmente os serviçõs de IaaS são pagos apenas pelo tempo que a(s) instancia(s) estiver(em) sendo usada(s). Ex: Amazon EC2.
- PaaS (Platform as a Service, ou Plataforma como Serviço): é um serviço onde apenas a plataforma é oferecida, como um Banco de dados, HD virtual, servidor web ou de aplicações. Ex: Serviços de hospedagem de sites, DropBox, Google App Engine.
- SaaS (Software as a Service, ou Software como Serviço): é um software disponível na internet, você não precisa te-lo instalado no computador, ele estará disponível em qualquer lugar onde você acessar. Ex: Google Docs, de certa forma um webmail também pode ser considerado SaaS.
Existem também outros dois tipos, o DaaS e CaaS, mas não cabe falar deles neste post.
Atualmente as empresas apelam para serviços oferecidos na Nuvem ao invés de terem seus próprios servidores físicos. No Java Day 2010, Pedro Mariano, da Caelum, uma de nossas parceiras, ministrou uma palestra sobre o GAE (Google App Engine), um PaaS bem conhecido, adotado por várias empresas e com suporte a tecnologia Java, que oferece um conjunto completo de tecnologias para criar e hospedar aplicativos da web.
Confira os slides da palestra: