Seção: Calendário

 

Serviços em Nuvem I: Modelos de Serviços

 

Os modelos de serviços podem ser considerados como a definição de uma fronteira que delimita onde terminam as responsabilidades, gerenciamento e a rede do cliente e onde começam as do provedor de serviços na nuvem.

 

Existem diversos modelos de serviços descritos na literatura, geralmente descritos da forma: XaaS, do inglês “<Something> as a Service” (ou, em português, <alguma coisa> como um serviço).

 

O NIST (2011) define três modelos de serviços para a computação em nuvem. São eles: Infraestrutura como um Serviço (IaaS), Plataforma como um Serviço (PaaS) e Software como um Serviço (SaaS). Muitos outros modelos foram mencionados na literatura como, por exemplo: StaaS (Armazenamento como um Serviço), IdaaS (Identidade como um Serviço), CaaS (Comunicação como um Serviço). Contudo, os modelos definidos pelo NIST englobam todas as outras possibilidades (Sosinsky, 2011). A figura 5 ilustra esses três modelos de serviços e apresenta alguns dos serviços que podem ser disponibilizados dentro de cada modelo. As próximas subseções descrevem com mais detalhes esses três modelos de serviço.

 

Figura 5: Modelos de serviços para a computação em nuvem

[adaptado de (Zhou, et al., 2011)]

 

Software como um Serviço (SaaS)

 

Neste modelo de serviço, o provedor de serviços oferece a seus clientes a capacidade de utilizar sistemas de propósitos específicos que são executados sobre a infraestrutura física do provedor. Esses sistemas são acessíveis a partir de diversos dispositivos por intermédio de uma interface cliente, como um navegador Web, ou por uma Application Programming Interface (API). No SaaS, o usuário não administra ou controla a infraestrutura subjacente, incluindo rede, servidores, sistemas operacionais, armazenamento ou mesmo características individuais da aplicação, exceto configurações específicas limitadas ao domínio do usuário.

 

No modelo organizacional tradicional de TI, as empresas possuem um conjunto de licenças de software para as várias aplicações que ela utiliza. Estas aplicações podem estar nos setores de recursos humanos, finanças ou vendas, por exemplo. No modelo SaaS, em vez de comprar licenças para desktops e servidores para as aplicações, a empresa pode obter as mesmas funções utilizando os serviços em nuvem de um provedor através da Internet ou alguma rede de comunicações.

 

O modelo SaaS elimina a complexidade com instalação, manutenção e atualização de softwares para a equipe de TI dentro da empresa, pois o software é agora gerenciado de maneira centralizada pelo provedor do serviço. Como a aplicação está, geralmente, na Web, os usuários podem acessá-la de qualquer lugar com conectividade e a qualquer momento, permitindo maior integração entre unidades de uma mesma empresa ou outros serviços de software. A cobrança pelo serviço é feita tipicamente por usuário, para uma quantidade fixa de banda e de armazenamento. O monitoramento do desempenho da entrega do serviço é de responsabilidade do provedor.

 

O modelo SaaS fornece para diferentes clientes a funcionalidade de aplicativos que são completamente hospedados em nuvem, mas os clientes possuem flexibilidade limitada. Por meio do modelo SaaS, o tempo para que a solução chegue ao mercado e o tempo de reação às demandas do segmento é bastante curto (Zhou, et al., 2011). Como exemplos de SaaS, destacam-se os sistemas de gerenciamento de relacionamento com clientes da Salesforce (Salesforce, 2012) e o GoogleDocs da Google (Google, 2012).

 

Plataforma como um Serviço (PaaS)

 

O modelo de PaaS traz os benefícios que o SaaS trouxe para as aplicações, mas para o mundo de desenvolvimento de software. O PaaS provê uma plataforma de software na qual os usuários podem desenvolver e testar suas próprias aplicações e hospedá-las na infraestrutura do próprio provedor do serviço e sem a complexidade de comprar e manter o software e a infraestrutura necessária durante todo o ciclo de desenvolvimento. O usuário não administra ou controla a infraestrutura subjacente, incluindo rede, servidores, sistemas operacionais ou armazenamento, mas tem controle sobre as aplicações implantadas e, possivelmente, sobre as configurações das aplicações hospedadas nessa infraestrutura. O serviço fornece um sistema operacional, linguagens de programação e ambientes de desenvolvimento para as aplicações, auxiliando a implementação de sistemas de software, já que contém ferramentas de desenvolvimento e colaboração entre desenvolvedores.

 

Em geral, os desenvolvedores dispõem de ambientes escaláveis, mas têm que aceitar algumas restrições sobre o tipo de software que se pode desenvolver, desde limitações que o ambiente impõe na concepção de aplicações até a utilização de sistemas de gerenciamento de banco de dados (SGBDs) do tipo chave-valor, em vez de SGBDs relacionais (Sousa, Moreira, & Machado, 2009). Como exemplos de PaaS têm-se o Google App Engine (Google, 2012)e o Microsoft Azure (Microsoft, 2012).

 

Infraestrutura como um Serviço (Iaas)

 

O modelo de IaaS tem por principal objetivo tornar mais fácil e acessível o fornecimento de recursos, tais como servidores, rede, armazenamento e outros recursos de computação fundamentais em que o usuário pode instalar e executar softwares arbitrários, que podem incluir sistemas operacionais e aplicativos. A IaaS possui algumas características, tais como uma interface única para administração da infraestrutura, Application Programming Interface (API) para interação com hosts, switches, balanceadores, roteadores e o suporte para a adição de novos equipamentos de forma simples e transparente. Em geral, o usuário não administra ou controla a infraestrutura da nuvem, mas tem controle sobre os sistemas operacionais, armazenamento e aplicativos implantados, e, eventualmente, seleciona componentes de rede, tais como firewalls.

 

Em geral, segundo (Sousa, Moreira, & Machado, 2009), o termo IaaS se refere a uma infraestrutura computacional baseada em técnicas de virtualização de recursos de computação. Esta infraestrutura pode escalar dinamicamente, aumentando ou diminuindo os recursos de acordo com as necessidades das aplicações. Do ponto de vista de economia e aproveitamento do legado, em vez de comprar novos servidores e equipamentos de rede para a ampliação de serviços, podem-se aproveitar os recursos disponíveis e adicionar novos servidores virtuais à infraestrutura existente de forma dinâmica.

 

O modelo IaaS oferece aos usuários o maior grau de controle quando comparado aos outros dois modelos de serviços. Portanto, o usuário fica responsável por saber quais as necessidades de recursos para as aplicações. Escalabilidade e elasticidade, por exemplo, são responsabilidades do usuário – e não do provedor IaaS. O Amazon Elastic Cloud Computing (EC2) (Amazon, 2012) e o Elastic Utility Computing Architecture Linking Your Programs To Useful Systems (Eucalyptus) (Liu, Liang, & Brooks, 2007) são exemplos de IaaS.