Cloud Computing (arquitetura) - UBIpprata/spd/SD_14_15_T16.pdf · 2015. 5. 7. · 3 Sistemas...

Preview:

Citation preview

Sistemas Distribuídos

From: Mastering Cloud Computing

Foundations and Applications Programming

Rajkumar Buyya, Christian Vecchiola, Thamarai Selvi

Morgan Kaufmann Publishers

Cloud Computing

(arquitetura)

2

Sistemas Distribuídos

2 – A Arquitetura da Cloud

Mais um definição:

Cloud Computing is a utility-oriented and Internet-centric way of

delivering IT services on demand. These services cover the entire

computing stack: from the hardware infrastructure packaged as a set

of virtual machines to software services such as development

platforms and distributed applications.

A computação na Cloud suporta qualquer serviço de tecnologias da

informação (IT) que possa ser consumido como uma utilidade, e

fornecido através da internet.

3

Sistemas Distribuídos

2 – A Arquitetura da Cloud

O modelo de referência da cloud:

• Na base da pilha que forma o modelo de cloud computing está a

infraestrutura de hardware.

• Tecnologias de virtualização são usadas para garantir um ambiente

de execução, isolamento e segurança das aplicações, e qualidade de

serviço.

• Estas tecnologias permitem particionar os recursos (CPU, memória,

periféricos, rede e armazenamento)

4

Sistemas Distribuídos

2 – A Arquitetura da Cloud

O modelo de referência da cloud:

• A camada de gestão da infraestrutura mais a infraestrutura física

formam o modelo de serviço: IaaS.

• IaaS fornece serviços limitados para construir aplicações. Essa

funcionalidade constitui a camada acima da pilha, que vai fornecer

uma plataforma para o desenvolvimento de aplicações.

• Essa plataforma inclui ferramentas como: interfaces baseadas na

web; interfaces baseadas em linha de comando; frameworks para

computação paralela e distribuída.

5

Sistemas Distribuídos

2 – A Arquitetura da Cloud

O modelo de referência da cloud:

• Neste nível, os utilizadores podem construir aplicações usando a

API fornecida pelo midlleware ao utilizador.

• Este nível constitui o modelo de serviço PaaS.

• Finalmente o nível de topo do modelo de referência da cloud

contém serviços fornecidos como aplicações. Geralmente são

aplicações web e constituem o modelo de serviço: SaaS.

6

Sistemas Distribuídos

2 – A Arquitetura da Cloud

Virtual Machine (VM), VM Management and Deployment

QoS Negotiation, Admission Control, Pricing, SLA Management,

Monitoring, Execution Management, Metering, Accounting

Cloud Hosting Platforms

Web 2.0, Mashups, Concurrent and Distributed Programming,

Workflows , Libraries, Scripting

Cloud Programming Environment and Tools

User

Applications Social Computing, Enterprise ISV, Scientific Computing, CDNs

Cloud Applications

Cloud Resources

Auto

nom

ic C

loud E

conom

y

Ad

ap

tive

Ma

na

ge

me

nt

User-level

Middleware

Core

Middleware

System

Infrastructure

Saa

S

Paa

S

IaaS

Ia

aS (

M)

Pu

re P

aaS

Virtual Machine (VM), VM Management and Deployment

QoS Negotiation, Admission Control, Pricing, SLA Management,

Monitoring, Execution Management, Metering, Accounting

Cloud Hosting Platforms

Web 2.0, Mashups, Concurrent and Distributed Programming,

Workflows , Libraries, Scripting

Cloud Programming Environment and Tools

User

Applications Social Computing, Enterprise ISV, Scientific Computing, CDNs

Cloud Applications

Cloud Resources

Auto

no

mic

Clo

ud E

con

om

y

Adap

tive M

anag

em

ent

User-level

Middleware

Core

Middleware

System

Infrastructure

Saa

S

Paa

S

IaaS

Ia

aS (

M)

Pu

re P

aaS

P

ure

Saa

S

7

Sistemas Distribuídos

2 – A Arquitetura da Cloud

Infrastructure as a Service – IaaS

• Máquinas virtuais constituem os componentes atómicos que são

disponibilizados ao utilizador a aos quais é atribuído um preço de

acordo com as suas caraterísticas ou workload: memória, nº de

processadores, capacidade de disco.

• Em muitos casos as máquinas virtuais vêm apenas com o sistema

operativo seleccionado.

• Outras soluções, fornecem imagens virtuais que já contêm pacotes

de software de uso comum: servidor web; SGBD; LAMP/XAMPP

LAMP – Linux Apache MySQL and PHP; XAMPP – Apache + MySQL + PHP + Pearl

8

Sistemas Distribuídos

2 – A Arquitetura da Cloud

Infrastructure as a Service – IaaS

• Além da gestão básica das máquinas virtuais, serviços adicionais

podem ser fornecidos como:

- Interface web para aceder aos recursos;

- Gestão de workload;

- Alocação de recursos;

- Suporte para aceder a serviço de outros fornecedores (third party)

O workload define a capacidade de um servidor realizar um dado trabalho:

- descrição e número de instâncias necessárias; - acesso ao disco (I/O);

- quantidade de RAM necessária; - network throughput e latência.

9

Sistemas Distribuídos

2 – A Arquitetura da Cloud

Infrastructure as a Service – IaaS

Uma IaaS é formada por 3 níveis de componentes:

- Infraestrutura física;

- Software de gestão da infraestrutura;

- Interface do utilizador.

10

Tecnologias de Cloud Computing

Physical Infrastructure

Datacenter Cluster Desktop /

Heterogeneous Resources Third Party IaaS Cloud

Infrastructure Management Software

Scheduling Pricing / Billing

Monitoring

QoS SLA Management

Reservation VM Pool

Management VM Image Repository

Provisioning

Web Services, Portals, REST API

Web based Management Interface

11

Sistemas Distribuídos

2 – A Arquitetura da Cloud

Infrastructure as a Service – IaaS

A Interface do utilizador permite ao utilizador aceder aos serviços

fornecido pela infraestrutura através de:

Consolas com interface web;

Web services;

- permitem interactuar com os serviços sem

RESTful APIs; intervenção humana.

mash-ups - página ou aplicação web que usa o conteúdo de

mais do que uma fonte para criar um único serviço..

12

Sistemas Distribuídos

2 – A Arquitetura da Cloud - IaaS

O Software de gestão da infraestrutura faz a gestão das máquinas

virtuais através do um software de escalonamento (scheduler) que

aloca a execução das máquinas virtuais e interactua com os outros

componentes:

- “Pricing and billing” – regista o custo de execução de cada instância

das máquinas virtuais, e mantém os dados necessários para faturar o

serviço ao cliente.

- “Monitoring” – regista os dados de execução de cada instância das

máquinas virtuais, e mantém os dados necessários para reportar e

analisar o desempenho (performance) do sistema.

13

Sistemas Distribuídos

2 – A Arquitetura da Cloud - IaaS

O Software de gestão da infraestrutura … outros componentes:

- “Reservation” –armazena a informação sobre as instâncias de

máquinas virtuais já executadas e sobre as que estão previstas

executar.

- “QoS/SLA management” – mantém informação sobre as SLAs

acordadas com os utilizadores. Este componente é usado em conjunto

com o serviço de monitorização para verificar se cada instância de

uma máquina virtual foi executada com a desejada qualidade de

serviço.

14

Sistemas Distribuídos

2 – A Arquitetura da Cloud - IaaS

O Software de gestão da infraestrutura … outros componentes:

- “VM repository” – fornece um catálogo com as imagens virtuais

disponíveis, que o utilizador pode usar para criar as suas instâncias.

Alguns serviços permitem ao utilizador adicionar novas imagens ao

serviço.

- “VM pool manager” – mantém informação sobre as instâncias em

estado executável.

- “ Provisioning” – permite fornecer uma instância de uma máquina

virtual que é externa à infraestrutura física em uso.

15

Sistemas Distribuídos

2 – A Arquitetura da Cloud - IaaS

A infraestrutura física pode ser de vários tipos:

- Um grande “datacenter” com milhares de máquinas, uma pequena

cloud implementada em casa, uma infraestrutura média criada para

uma empresa em particular, …

- Eventualmente pode conter recursos locais e recursos alugados a

fornecedores de IaaS.

- Os recursos também podem ser heterogéneos: PCs, workstations,

clusters, …

16

Sistemas Distribuídos

2 – A Arquitetura da Cloud - IaaS

Soluções de IaaS completas fornecem as 3 camadas descritas. É o caso

por exemplo de:

Amazon, GoGrid, Rightscale, Rackspace, …

Outras soluções fornecem apenas as camadas de interface com o

utilizador e software de gestão. É o caso por exemplo de:

Eucalyptus, OpenNebula, OpenStack, …

17

Sistemas Distribuídos

2 – A Arquitetura da Cloud

Platform as a Service – PaaS

- Fornecem ambientes para desenvolvimento e implantação de

aplicações que executam na cloud.

- A funcionalidade principal do middleware é a gestão das aplicações

não fornecendo qualquer interface para aceder à infraestrutura.

18

Sistemas Distribuídos

Programming API / Libraries

Physical Infrastructure IaaS Providers

PaaS Core Middleware

Resources Management

Application

Management

User

Management

QoS / SLA Management &

Billing

Elasticity &

Scaling

Runtime

Web Services, Portals, REST API

Web based Interface

19

Sistemas Distribuídos

2 – A arquitetura da Cloud – PaaS

O middleware da PaaS tem o com principal função a gestão de

aplicações:

- automatizando o processo de implantação de aplicações;

- configurar componentes de aplicações;

- configurar tecnologias de suporte como bases de dados e “load

balancers”;

20

Sistemas Distribuídos

2 – A arquitetura da Cloud – PaaS

A interface com os utilizadores pode ser através de:

- Interface web;

- API’s de programação.

Ofertas de PaaS podem incluir o middleware para desenvolvimento de

aplicações mais a infraestrutura (Google AppEngine, MS Azure, …)

Ou, apenas o software para gestão das aplicações

(AppScale, Cloud IQ, …

21

Sistemas Distribuídos

2 – A arquitetura da Cloud – PaaS

PaaS – Caraterísticas Principais:

´

• “Runtime framework” - Possui um ambiente de execução, que

executa o código do utilizador de acordo com as políticas acordadas

entre utilizador e fornecedor.

• Abstração – os utilizadores estão ao nível de abstração da

aplicações. Não se apercebem das máquinas virtuais nem da

infraestrutura.

22

Sistemas Distribuídos

2 – A arquitetura da Cloud – PaaS

PaaS – Caraterísticas Principais:

• Automação – O processo de fazer o deploy das aplicações é

automático. A Paas é também capaz de aumentar de forma

automática os recursos de acordo com as necessidades de utilização,

tendo em contas as SLA.s.

• “Cloud Services” – A plataforma oferece serviços e interfaces para

simplificar a criação de aplicações “elásticas”, e com elevada

disponibilidade. Fornecem também serviços de monitorização,

gestão e geração de relatórios.

23

Sistemas Distribuídos

2 – A arquitetura da Cloud – PaaS

PaaS – Desvantagens:

• “Vendor lock-in”- A maioria das PaaSs fornece um ambiente de

desenvolvimento que prende o utilizador à plataforma usada.

• Migrar a aplicação para outro fornecedor pode não ser fácil .

24

Sistemas Distribuídos

2 – A arquitetura da Cloud

Software as a Service - SaaS:

• Modelo de serviço em que é fornecido o acesso a aplicações através

da internet por um serviço baseado na web.

• Os utilizadores só precisam de um browser, fornecer as suas

credenciais e detalhes para faturação e podem aceder à aplicação

sem custos de hardware, nem de desenvolvimento e manutenção.

• O modelo é útil para aplicações que possam servir para um grande

âmbito de utilizadores. Ex.los CRM – Customer relationship

management; ERP – enterprise resource planning)

25

Sistemas Distribuídos

2 – A arquitetura da Cloud

Software as a Service - SaaS:

• As caraterísticas base do SW são iguais para todos e cada utilizador

pode depois adaptar (customized) os detalhes às suas necessidades.

• As aplicações SaaS são “multitenent” o que permite aos

fornecedores otimizarem a gestão dos recursos.

• Outras aplicações muito usadas como SaaS são as redes sociais.

Permitem integrar outras aplicações que terão acesso aos contactos das

primeiras.

26

Sistemas Distribuídos

2 – A arquitetura da Cloud - SaaS

Todas as aplicações SaaS partilham as seguintes caraterísticas:

• O Software é acedido através da Internet usando um browser.

• A licença é baseada numa subscrição/utilização e é cobrada

periodicamente.

• O Software e o serviço são monitorizados e mantidos pelo

fornecedor, independentemente da localização onde executam os

diferentes componentes.

27

Sistemas Distribuídos

2 – A arquitetura da Cloud - SaaS

• Pode haver código executado do lado do cliente mas o utilizador

não é responsável por manter esse código nem a sua interação com

o serviço.

• A redução dos custos de distribuição, manutenção e interação com o

utilizador final faz com que as Aplicações SaaS sejam mais baratas

que os pacotes de software distribuídos de forma clássica.

• Novas versões, atualizações e correções são muito mais fáceis de

efetuar.

28

Sistemas Distribuídos

2 – A arquitetura da Cloud - SaaS

• Aplicações SaaS têm um acesso inicial muito mais fácil que as

aplicações concorrentes instaladas localmente. Tem um custo cobrado

ao longo do tempo e podem ser escaláveis a pedido.

• Todos os utilizadores têm a mesma versão do Software, portanto cada

utilizador é compatível com os outros.

• SaaS suporta múltiplos utilizadores e fornece um modelo de dados

partilhado através de uma única instância da aplicação.

Uma única instância do software é partilhada por vários utilizadores

mas cada um tem os seus dados, a sua configuração e funcionalidades

especificas. (“single-instance, multi-tenancy model).

29

Sistemas Distribuídos

2 – A arquitetura da Cloud

Com a evolução da Cloud vários tipos de serviços foram surgindo, um

dos mais desenvolvidos é o

IDaaS – Identity as a Service

Fornece serviços de autenticação e autorização em redes distribuídas.

Um serviço de identificação armazena informação associada com uma

entidade digital numa forma que pode ser inquirida e gerida para

utilização em transações eletrónicas.

30

Sistemas Distribuídos

2 – A arquitetura da Cloud

IDaaS – Identity as a Service

- Um entidade digital é um objecto constituído por atributos e

metadados que incluem associações com outros objetos.

- Uma identidade é um conjunto de caraterísticas que torna a entidade

reconhecível num determinado contexto.

Por exemplo:

- Para ser reconhecido na rede irá ser inquirido pelo seu username e

password (single-factor authentication)

31

Sistemas Distribuídos

2 – A arquitetura da Cloud

IDaaS – Identity as a Service

- Uma autenticação mais segura requer um esquema de duas vias

(two-factor authentication): é pedido o username e password e uma

chave fornecida pelo hardware, por exemplo o MAC* address.

- Serviços de identidade têm como componentes principais:

- a data store;

- a query engine;

- a policy engine.

* MAC - media access control

32

Sistemas Distribuídos

2 – A arquitetura da Cloud

Tipos de Clouds

A classificação anterior tipifica os tipos de serviços fornecidos pela

cloud.

Outra classificação tem a ver com o domínio de administração da

cloud:

- Clouds públicas;

- Clouds privadas;

- Clouds híbridas;

- Clouds comunitárias!.

33

Sistemas Distribuídos

2 – A arquitetura da Cloud

Tipos de Clouds - Clouds públicas

- A cloud é aberta a todo o público. É a concretização do modelo no

qual o serviço é fornecido a qualquer pessoas, em qualquer lugar, em

qualquer altura através da internet.

- Uma cloud pública pode fornecer qualquer tipo de serviço:.

infraestrutura, plataforma, aplicações.

- São desenhadas para suportar grandes quantidades de utilizadores,

suportarem procuras variadas, nomeadamente picos de utilização.

34

Sistemas Distribuídos

2 – A arquitetura da Cloud

Tipos de Clouds - Clouds privadas

- São implementadas dentro de uma empresa/instituição, a acessíveis ao

seus membros ou a um subconjunto destes.

- Podem ser úteis se existe informação crítica, ou se existe já uma

infraestrutura de hardware.

- Permitem:

- O controle dos recursos e informação pelos seus proprietários;

- Controlo sobre a qualidade de serviço fornecido;

- Controlo sobre standards próprios das organizações.

- Podem ter menos possibilidades de escalar à medida das necessidades.

35

Sistemas Distribuídos

2 – A arquitetura da Cloud

Tipos de Clouds - Clouds híbridas

- Combinação dos dois modelos anteriores. Geralmente uma cloud

privada é ampliada com recursos fornecidos por uma cloud pública.

- Algum do software de gestão de infraestruturas de cloud permite

a integração de recursos de clouds públicas.

- Resolve o problema da não escalabilidade das clouds privadas.

36

Sistemas Distribuídos

Datacenter

Public Cloud

Cluster Desktop Grids

Public Cloud

Dynamic

Provisioning IaaS (M)

Paas

Private Cloud

Hybrid / Heterogeneous

Cloud

37

Sistemas Distribuídos

2 – A arquitetura da Cloud

Tipos de Clouds - Clouds comunitárias

- Destinam-se a servir o interesse de uma comunidade um ou setor de

negócio.

- Pode integrar qualquer dos três modelos anteriores.

- Pode ser administrada por várias entidades.

38

Sistemas Distribuídos

2 – A arquitetura da Cloud

Aspetos Económicos

- Cloud computing reduz os custos de capital associados a adquirir

infraestruturas de IT.

- Elimina os custos associados à desvalorização/desatualização do

equipamento.

- Licenças de software são substituídas por subscrições

- Reduz os custos de manutenção e gestão dos recursos de IT

39

Sistemas Distribuídos

2 – A arquitetura da Cloud

Desafios

- Interoperabilidade e standards

- Escalabilidade e tolerância a falhas

- Segurança, confiança e privacidade

Recommended