"Computação em nuvem" é um termo geral destinado a fazer duas coisas: primeiro, abstrair todos os usos possíveis de um modelo cliente-servidor por trás de um único termo, em oposição a casos de uso mais específicos, como "servidores de arquivos", "servidores de banco de dados", "servidores web", "servidores de aplicativos" etc .; e segundo, abstrair a própria arquitetura do servidor, em termos de hardware, topologia, localização e até propriedade.
Em um modelo tradicional de cliente-servidor, que ainda hoje é de uso comum, um cliente se conecta a um servidor que executa uma tarefa específica. Este servidor pode hospedar um banco de dados, uma série de compartilhamentos de arquivos ou uma página da web. Quando o cliente se conecta a esse servidor, existe um entendimento implícito do tipo de comunicação e transmissão de dados que ocorrerá entre os dois computadores. Também pode haver um entendimento do cliente ou do usuário final sobre os recursos do hardware do servidor e suas limitações. Esse acoplamento relativamente "estreito" entre a máquina cliente e seu servidor pode causar problemas para um administrador de sistemas que precisa desativar um servidor para manutenção; todos os aplicativos dependentes dos recursos fornecidos por este servidor devem ser apontados para outro servidor,
Em um modelo de nuvem, o hardware, a topologia, a divisão do trabalho e o número uniforme de máquinas envolvidas são abstraídos por trás de um único terminal. A analogia poderia ser desenhada para uma "aplicação web" moderna, em oposição às gerações mais antigas de "site", que eram mais estáticas. Podemos supor que exista um servidor de aplicativos e um servidor de banco de dados nos bastidores, mas realmente não precisamos nos preocupar; o servidor da web, como parte de seu trabalho de atender o aplicativo completo aos usuários além da "borda", fornece um ponto de extremidade unificado, permitindo acesso controlado a todos os dados e serviços fornecidos por outras máquinas atrás dessa porta da frente.
O resultado é que, com um único ponto de extremidade exposto para fornecer a funcionalidade do aplicativo, é tudo o que um consumidor cliente do aplicativo precisa se preocupar, em vez de onde obter seus dados, onde chamar esse e tal processo remoto de aplicativo etc; isso significa que os administradores e arquitetos do provedor de serviços nessa nuvem são mais ou menos livres para alterar as máquinas, a topologia e outros detalhes de implementação específicos desse "serviço em nuvem" sem que os clientes sejam mais sábios. O Facebook poderia, se achasse sensato, reconstruir todo o seu sistema de armazenamento de dados a partir do zero, usando um DBMS diferente e todos os novos servidores. Enquanto o site permanecesse disponível durante a transição, ninguém seria mais sábio; de fato, o Facebook fez exatamente isso, muitas vezes,