O modelo conceitual encontrado com maior freqüência na literatura é composto por
três camadas, este modelo define um padrão arquitetural para soluções em
computação em nuvem e pode ser visto na figura 2.1, que também exibe uma breve
especificação de serviços compatíveis com cada camada. Na figura 2.2, observa-se
exemplos de aplicações destacadas por tipo de camada.
Infraestrutura como Serviço - IaaS
Representa a camada inferior do modelo conceitual, sua base, ela é composta por
plataformas para o desenvolvimento, teste, implantação e execução de aplicações
proprietárias. Segundo [Sousa, 2009], seu principal objetivo é tornar mais fácil e
acessível o fornecimento de recursos, como servidores, redes, armazenamento e
outros que são fundamentais na construção de um ambiente sob demanda podendo
ser tanto sistemas operacionais quanto aplicativos.
A infra-estrutura é baseada na virtualização dos recursos computacionais que
pode ser dinamicamente escalada para aumentar ou diminuir os recursos de acordo
com as necessidades das aplicações.
Em resumo, IaaS relaciona-se com a capacidade que um provedor tem de
oferecer uma infra-estrutura de processamento e armazenamento de forma
transparente.
Algumas vantagens de trabalhar com IaaS são:
- A redução de investimentos em hardware, bem como a preocupação
com a depreciação dos mesmos;
- Eliminação de custos com segurança e manutenção;
- Otimização do desempenho;
- Liberação de espaço físico no empresa;
- Flexibilidade para ampliar e reduzir a capacidade de processamento
e/ou armazenamento.
Alguns exemplos de IaaS são o Amazon Elastic Cloud Computing - EC2, o
Elastic Utility Computing Architecture Linking Your Programs To Useful Systems -
Eucalyptus e o Open Nebula.
Plataforma como Serviço - PaaS
É a camada intermediária do modelo conceitual, sendo composta por hardware
virtual disponibilizado como serviço. Oferece tipos específicos de serviços como
sistemas operacionais, banco de dados, serviços de mensagens, serviços de
armazenamento de dados e etc.
Uma PaaS fornece ambientes de desenvolvimento de software e facilita a
implantação de aplicações sem os custos e complexidades relativos a compra e
gerenciamento do hardware e de software adjacentes que são necessários ao
ambiente de desenvolvimento.
Muitos serviços podem ser oferecidos através de uma PaaS, facilidades para
o projeto e desenvolvimento de aplicações, testes, implantação, hospedagem,
integração de serviços web, segurança, integração de banco de dados, persistência,
etc. Todos estes serviços também podem ser configurados como uma solução
integrada, oferecida através da internet.
Como exemplo de PaaS pode-se citar a Google App Engine e Aneka
[Vecchiola et al, 2009].
Software como Serviço - SaaS
Corresponde a camada mais externa do modelo conceitual, ela é composta por
aplicativos que são executados no ambiente da nuvem. Podem ser aplicações
completas ou conjuntos de aplicações cujo uso é regulado por modelos de negócios
que permitem customização.
Os sistemas de software devem estar disponíveis na internet através de uma
interface com um navegador web, logo devem ser acessíveis de qualquer lugar a
partir dos diversos dispositivos dos usuários. Desta forma, novos recursos podem
ser adicionados aos sistemas de forma transparente aos usuários, tornando-se
assim a manutenção e evolução dos sistemas tarefas bem mais simples.
A aquisição de licenças para uso é dispensada para a utilização do SaaS,
reduzindo-se então custos operacionais.
Exemplos de SaaS são o Google Docs, Facebook e Microsoft SharePoint.
Outros serviços
Existem muitos conceitos derivados, utilizados normalmente para diferenciar um
determinado tipo de serviço, dentro os quais podemos citar, banco de dados como
serviço (DaaS), testes como serviço (TaaS), segurança, simulação, comunicação ,
etc, todos sendo oferecidos como serviço.