Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Disciplina - Sistemas Distribuídos Prof. Andrey Halysson Lima Barbosa Aula 12 Computação em Nuvem
Sumário Introdução Arquitetura Provedores de Serviços em Nuvem
Introdução O termo computação em nuvem (do inglês cloud computing) está associado a um novo paradigma na área de computação; Basicamente, esse novo paradigma tende a deslocar a localização de toda a infraestrutura computacional para a rede; Com isso, os custos de software e principalmente de hardware podem ser consideravelmente reduzidos;
Introdução Embora este assunto esteja sendo amplamente discutido nos dias de hoje, ainda não há uma definição completa do termo; Na literatura, podemos encontrar uma infinidade de definições que em algumas vezes podem ser semelhantes, e em outras podem apresentar conceitos diferentes;
Introdução Computação em Nuvem, como o próprio nome sugere, engloba as chamadas nuvens, que são ambientes que possuem recursos (hardware, plataformas de desenvolvimento e/ou serviços) acessados virtualmente e de fácil utilização. Esses recursos, devido à virtualização, podem ser reconfigurados dinamicamente de modo a se ajustar a uma determinada variável, permitindo, assim, um uso otimizado dos recursos. Esses ambientes são, em geral, explorados através de um modelo pay-per-use. [VAQUERO et al. 2009]
Introdução Em suma, podemos destacar três principais aspectos que são novos na computação em nuvem: A ilusão da disponibilidade de recursos infinitos, ilimitados: o conceito da nuvem sugere que o usuário tem em suas mãos toda a Internet e os seus serviços;
Introdução A eliminação de um comprometimento com antecedência por parte dos usuários: uma empresa pode começar usando poucos recursos de hardware, e, à medida que for crescendo, ou seja, à medida que for necessário, pode ir aumentando a quantidade de recursos usados, sem que haja um comprometimento anterior em relação a essa quantidade; a escalabilidade é uma das características responsáveis por esse aspecto;
Introdução A habilidade de pagar pelo uso dos recursos à medida que eles são utilizados: o modelo pay-per-use pode usar, por exemplo, uma métrica de processadores por hora, ou de armazenamento por dia, para cobrar pelos serviços; isso permite que os recursos sejam liberados caso não sejam utilizados, evitando um consumo desnecessário.
A computação em nuvem é composta por três atores principais: Os prestadores de serviços, também conhecidos como SPs (do inglês Service Providers); Os usuários dos serviços, também conhecidos como usuários das nuvens; Os prestadores de infraestrutura, também conhecidos como IPs (do inglês Infrastructure Providers).
A arquitetura da computação em nuvem pode ser dividida em três camadas abstratas: A camada de infraestrutura é a camada mais baixa. É através dela que os prestadores de infraestrutura disponibilizam os serviços de rede e armazenamento da nuvem. Dessa forma, fazem parte dela servidores, sistemas de armazenamento, como os data centers, e roteadores, por exemplo.
A camada de plataforma possui uma abstração mais elevada e provê serviços para que as aplicações possam ser desenvolvidas, testadas, implementadas e mantidas no ambiente da nuvem pelos prestadores de serviços. Finalmente, a camada de aplicação é a de mais alto nível de abstração, e aquela que oferece diversas aplicações como serviços para os usuários.
Como já foi falado, a computação em nuvem distribui os recursos na forma de serviços. Esses serviços, por sua vez, podem ser disponibilizados em qualquer uma das camadas abstratas já apresentadas; Com isso, podemos dividir a computação em nuvem em três cenários, em relação aos serviços oferecidos: IaaS, PaaS e SaaS.
Infrastructure as a Service IaaS (do inglês Infrastructure as a Service) diz respeito aos serviços oferecidos na camada de infraestrutura; Esses serviços incluem servidores, sistemas de armazenamento, roteadores e outros sistemas que são agrupados e padronizados a fim de serem disponibilizados pela rede.
Platform as a Service PaaS (do inglês Platform as a Service) encapsula uma camada de software e a disponibiliza como um serviço; O objetivo do PaaS é facilitar o desenvolvimento de aplicações destinadas aos usuários de uma nuvem, criando uma plataforma que agiliza esse processo; Um PaaS é construído utilizando-se um ou mais IaaS que permanece transparente aos prestadores de serviços que utilizam o PaaS.
Software as a Service SaaS (do inglês Software as a Service) representa os serviços de mais alto nível disponibilizados em uma nuvem; Esses serviços dizem respeito a aplicações completas que são oferecidas aos usuários; Um SaaS é disponibilizado por prestadores de serviços na camada de aplicação. Ele roda inteiramente na nuvem e pode ser considerado uma alternativa a rodar um programa em uma máquina local.
Tipos de Nuvem As nuvens podem ser classificadas em três tipos básicos: públicas, privadas e híbridas; A escolha entre elas depende das necessidades das aplicações que serão implementadas.
Nuvens públicas As nuvens públicas são aquelas que são executadas por terceiros. Nuvens privadas As nuvens privadas são aquelas construídas exclusivamente para um único usuário (uma empresa, por exemplo). Nuvens híbridas As nuvens híbridas combinam os modelos das nuvens públicas e privadas. Elas permitem que uma nuvem privada possa ter seus recursos ampliados a partir de uma reserva de recursos em uma nuvem pública.
Exemplos de Provedores de Serviços em Nuvem Amazon Web Services (IaaS) Google (SaaS, PaaS) Microsoft Azure Services Platform (PaaS) Proofpoint (SaaS, IaaS) RightScale (IaaS) Salesforce.com (SaaS, PaaS) Sun Open Cloud Platform (SaaS, PaaS, IaaS) Workday (SaaS) Eucalyptus (IaaS)