Diferenças entre Data Center e Cloud Computing

Se você sabe exatamente onde seu software está fisicamente alocado então ele não está na nuvem e sim em terra bem firme.

Primeiro os computadores se conectaram, depois as pessoas se conectaram e hoje as coisas se conectam. Seu celular, sua geladeira, seu carro, o alarme da sua casa e até seu computador podem hoje ser presenças ativas na Internet.

Este movimento todo impulsionou uma melhora na qualidade da comunicação e na capacidade de tráfego de dados, o que levou a uma mudança em alguns conceitos que há muito estavam estabelecidos. Depois de passada a desconfiança inicial no que dizia respeito a segurança, as pessoas começaram a perceber que seria bem produtivo ter seus dados disponíveis em qualquer lugar. Depois perceberam que seria igualmente produtivo se os softwares — necessários para manipular esses dados — estivessem também disponíveis em qualquer lugar.

Enquanto os usuários percebiam que seria muito bom ter seus aplicativos disponíveis em qualquer local, sem se preocupar com instalações, atualizações e backups, as empresas produtoras desses aplicativos também encontraram neste cenário vantagens de distribuição, controle, licenciamento entre outras.

Com estas mudanças as empresas produtoras de software começaram um movimento de migrar suas aplicações para ambientes de Data Centers, que por sua vez chamaram para si as responsabilidade de infra-estrutura (disponibilidade, manutenção, segurança, recuperação e etc).

Hoje, ter sua aplicação executando em cloud computing é um diferencial perseguido por empresas já consolidadas e quase um pré-requisito para as que surgem a partir deste momento.

Porém é importante que se saiba que nem todo software que é acessível pela Internet está na nuvem pois a definição de cloud computing vai muito mais além da forma de acesso ao mesmo.

Em um cenário de Cloud, apesar de compartilhar de determinadas características dos Data Centers (como disponibilidade, segurança, manutenção entre outras) o software em questão não estará em um servidor específico e sim distribuído em vários servidores, alocados em diferentes posições geográficas e normalmente dividindo este ambiente com outros softwares (porém separados por camadas de segurança). Esta abordagem traz outras importantes vantagens:

Desempenho: Um serviço de Cloud normalmente possui instalações físicas em diferentes posições geográficas e isso, além de garantir a disponibilidade em caso de desastres (naturais ou não), permite rotas mais inteligentes e rápidas de acesso. O software pode estar ao mesmo tempo no continente americano, europeu e ásia e dependendo de onde origina-se a requisição de acesso ela será encaminhada para a melhor opção.

Escalabilidade dinâmica: Um caso muito interessante é deu um famoso aplicativo de pedido de comida pela Internet. A carga processada por este aplicativo é variável e bem definida. Enquanto durante a maior parte do dia o consumo da aplicação é estável, quando o relógio marca 19h este consumo mais que triplica. Tanto em um Data Center quanto em um ambiente Cloud é possível escalar-se a infra-estrutura, claro, pagando-se por isso. Mas veja bem: esta diferença que vai ser escalada será utilizada em período bem definido, no restante ficará ociosa. Em um ambiente Cloud, podemos programar esta escalabilidade e pagar apenas pelo processamento e memória que foram de fato utilizados.

Escalabilidade gerenciável: Além de poder comprar recursos conforme a necessidade do serviço, isso pode ser feito sem nenhuma interação humana direta com o provedor do serviço. O próprio desenvolvedor dimensiona os recursos de acordo com o que julgar necessário.

Amplo acesso de rede: Os serviço deve permitir o acesso de dos mais variados tipos de clientes, sejam eles computadores, smartphones ou qualquer outra forma de IoT.

É importante que fique claro que a minha intenção com este breve artigo não é outra senão diferenciar as duas categorias de serviço. Em resumo a escolha final entre hospedar uma aplicação em um Data Center ou em um serviço de Cloud, vai depender diretamente das necessidades e características de cada organização e da compreensão precisa do que cada serviço oferece.