Cloud Computing (Computação em Nuvens) é um termo genérico para qualquer atividade que envolve a entrega de serviços hospedados na Internet. Estes serviços são amplamente divididos em três categorias: Infrastructure as a Service (IasS), Plataform as a Service (PaaS) e Software as a Service (SaaS). O nome Computação em nuvem foi inspirado no símbolo da nuvem que muitas vezes é usado para representar a Internet nos fluxogramas e diagramas.

Um serviço de nuvem tem três características distintas que o diferenciam da tradicional hospedagem. É vendido por encomenda, normalmente a cada minuto ou a hora, é flexível (um usuário pode ter tanto ou tão pouco de um serviço que ele quer em um determinado momento, e o serviço é totalmente gerenciado pelo fornecedor (o consumidor não precisa de nada, apenas um computador pessoal e acesso à Internet). Inovações significativas em virtualização e computação distribuída, bem como o acesso melhorado à Internet de alta velocidade, aceleraram o interesse em computação em nuvem.

Uma nuvem pode ser pública ou privada. Uma nuvem pública vende serviços para qualquer pessoa na Internet. (Atualmente, o Amazon Web Services é o maior provedor de cloud público). Uma nuvem privada é uma rede de propriedade ou de um centro de dados que fornece serviços hospedados para um número limitado de pessoas. Quando um prestador de serviços usa recursos públicos para criar sua nuvem particular, o resultado é chamado de nuvem virtual privada.

Infrastructure as a Service (IasS)
Infrastructure as a Service (IasS) como o Amazon Web Services fornece instâncias de servidor virtual com endereços IP e os blocos de armazenamento por demanda. Os clientes usam a API do provedor para iniciar, parar, acessar e configurar os seus servidores virtuais e armazenamento. Na empresa, a computação em nuvem permite que uma empresa pague apenas a capacidade, tanto quanto for necessário, e trazer mais espaço (banda) quando necessário. Este modelo (pré-pago) é semelhante a forma com que o combustível e água são consumidos, por isso ele também pode ser chamado de Utility Computing.

Plataform as a Service (PaaS)
O Plataform as a Service é definido como um conjunto de ferramentas de software e desenvolvimento de produtos hospedados em infraestrutura do provedor. Os desenvolvedores criam aplicações na plataforma do provedor através da Internet. As ferramentas Force.com e GoogleApps são exemplos de PaaS. Os desenvolvedores precisam saber que, atualmente, não existem normas de interoperabilidade e portabilidade de dados na nuvem. Alguns provedores não permitem que o software criado por seus seja movido de provedor.

Software as a Service (SaaS)
No Software as a Service, o vendedor fornece a infraestrutura de hardware, software e interage com o usuário através de um frontend. Os serviços podem ser qualquer atividade baseada em Web como e-mail. Neste serviço o provedor hospeda o aplicativo e os dados, assim o usuário final está livre para usar o serviço em qualquer lugar.