A computação em nuvem é um dos campos distribuídos mais promissores, o que deu a nova face ao campo distribuído. A computação em nuvem surgiu recentemente como um novo modelo de alojamento e prestação de serviços através da Internet. O principal objectivo da computação em nuvem é fornecer os recursos como um serviço ao cliente. Nesta tese estudamos sobre a arquitectura de cloud computing, que inclui três serviços diferentes bem conhecidos fornecidos pela cloud computing, são eles Infra-estrutura como Serviço IaaS, SaaS e PaaS e tais serviços são fornecidos pelos três tipos diferentes de cloud computing, são nuvem privada, nuvem pública e nuvem híbrida. Os estudos sobre as diferentes camadas da arquitectura de computação em nuvem são também discutidos neste estudo. Duas questões principais. A primeira "alocação da máquina virtual eficiente" e a segunda "realocação das máquinas virtuais". A primeira questão é a preocupação com os diferentes algoritmos de balanceamento de carga, que são utilizados para a alocação de máquinas virtuais. De alguma forma, se a nuvem não fornecer a máquina virtual ao cliente cliente, o conceito de realocação, ou seja, migração da máquina virtual de uma máquina fonte para outra máquina alvo.