domingo, 18 de dezembro de 2011

Qual a origem do nome "cloud computing"?

Existem muitos artigos e tutoriais explicando o conceito de "cloud computing" ou "computação em nuvem". Minha ideia aqui não é criar mais um desses artigos (até porque existem contradições entre alguns desses artigos).

A minha ideia neste artigo é explicar a origem no nome. Não é apenas uma curiosidade ou um conhecimento inútil, pois neste caso eu acredito realmente que compreender a origem do nome ajuda a entender o conceito.

Primeiro, vamos dar uma olhada neste diagrama abaixo (que não tem a nada a ver com cloud computing). É um diagrama antigo, indicando uma conexão entre duas redes utilizando Frame Relay como rede principal e ISDN como backup.

Porque as redes ISDN e Frame Relay estão desenhadas na forma de nuvem? Não é apenas porque elas são fornecidas por uma operadora, mas também porque não interessa, para este diagrama, como essas redes são. Por exemplo na rede Frame Relay podem existir vários switchs Frame Relay no meio do caminho. Na rede ISDN o mesmo pode ocorrer. Mas para quem está usando esses serviços, não importa.

Neste caso a nuvem desenhada não quer dizer algo vago ou algo no céu, nas alturas. Essas nuvens são mais parecidas com aquelas que o personagem de desenho animado papa-léguas deixava quando saia correndo do coiote, atrapalhando a visão (e muitas vezes fazendo o coitado do coiote cair do penhasco). Assim essas nuvens querem representar algo sólido e real, porém que está fora da nossa visão, obscurecido pela "nuvem".

Por décadas essa foi a principal maneira para indicar, em um diagrama de rede, algo que usamos, mas não temos muita certeza de que como ele é (voltando ao diagrama anterior, não sabemos quantos switchs existem na rede Frame Relay nem como eles estão interligados), mas por outro lado também não nos interessa saber. No caso da rede Frame Relay contratamos a operadora para ligar o ponto A ao ponto B, se a conexão cair tudo que podemos fazer é reclamar para a operadora e esperar.

Essa "nebulosidade" ou "neblina" é que torna o conceito interessante: usar sem precisar saber os detalhes do que está dentro.

Agora como isso se reflete no conceito de cloud computing? Simples, no cloud computing a localização dos serviços se tornam nebulosos. Por exemplo, em uma rede normal você sabe que os servidores de email são dois servidores no site central. Você sabe quantos são e aonde estão. Isso também significa que se o link para o site principal cair, você que está na filial sabe que vai perder acesso ao email.

No cloud computing o serviço de email está distribuído entre vários servidores, normalmente em vários sites (que inclusive podem mudar de lugar da noite para o dia). Os sites podem ser de propriedade da empresa, podem ser sites alugados dentro de um data center ou pode ser um serviço completamente alugado de terceiros (ou um misto disso tudo). No cloud computing ou computação em nuvem os usuários perdem a noção de aonde está o servidor ou o serviço, eles acessam e - de alguma maneira quase mágica - conseguem a informação que necessitam.

Obviamente é necessário criar uma infraestrutura que distribua as informações entre vários servidores em vários sites, e essa infraestrutura precisa direcionar os usuários automaticamente. Quando uma empresa cria ela mesma essa infra-estrutura, é chamado de private cloud ou nuvem privada, quando essa empresa contrata o serviço de terceiros (ou seja, os servidores não são da empresa), é chamado de public cloud ou nuvem pública.

A primeira vantagem do cloud computing é que a confiabilidade do serviço aumenta (algo muito importante quando o serviço se torna essencial para a empresa) pois os usuários passam a ter várias opções de acesso e são direcionados automaticamente (ou "automagicamente", se preferir) para o servidor mais apropriado que esteja no ar.

Outra vantagem do cloud computing (que a principal não seria obrigatório no conceito, mas muitos provedores de nuvem publica colocam como benefício) é a capacidade de contratar processamento por demanda. Um provedor de cloud computing global (como Google, Microsoft ou Amazon) pode "mover" servidores dos EUA para o Japão quando for noite na Ásia (e houver menor demanda dos servidores lá), assim economizando. Ou seja, ou invés de comprar 1.000 servidores nos EUA (que ficariam parados quando fosse noite nos EUA) e 1.000 servidores no Japão (que teriam o mesmo problema quando fosse noite no Japão), o provedor compra 500 servidores em cada localidade e joga os usuários de um lado para outro.

Repare que como o usuário é "automagicamente" direcionado para o servidor apropriado, não existe impacto negativo no usuário.

Além disso as empresas que contratam serviços de nuvem publica podem contratar mais poder de processamento durante sazonalidades. Por exemplo, no final do mês, quando ocorre o processamento da folha de pagamento, a empresa contrata "mais servidores" na nuvem, para atender a demanda dos funcionários. Isso se chama processamento elástico.

É claro que isso tudo só funciona se houver tecnologia apropriada, tanto para os servidores como para atender aos usuários. E essa tecnologia existe e está bem madura, porém é assunto para outro artigo.

Para finalizar: o nome cloud computing ou computação em nuvem vem da maneira como os profissionais de TI e Telecomunicações costumam representar estruturas as quais não tem muito controle nem conhecimento (mas que também não necessitam ter). No cloud computing os servidores estão "em algum lugar", aonde não faz diferença aos usuários, eles apenas usam o serviço e ponto final.

Se quiser saber dos meus próximos artigos, me siga no Twitter: http://www.twitter.com/mlrodrig
Postar um comentário