sistemas distribuídos cloud computingpprata/spd/sd_14_15_t15.pdf1 - introdução à cloud: “as of...

38
Sistemas Distribuídos From: Mastering Cloud Computing Foundations and Applications Programming Rajkumar Buyya, Christian Vecchiola, Thamarai Selvi Morgan Kaufmann Publishers Cloud Computing

Upload: others

Post on 14-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

Sistemas Distribuídos

From: Mastering Cloud Computing

Foundations and Applications Programming

Rajkumar Buyya, Christian Vecchiola, Thamarai Selvi

Morgan Kaufmann Publishers

Cloud Computing

Page 2: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

2

Sistemas Distribuídos

1 - Introdução à Cloud:

“As of now, computer networks are still in their infancy, but as they

grow up and become sophisticated, we will probably see the spread of

‘computer utilities’ which, like present electric and telephone utilities,

will service individual homes and offices across the country”

1969, Leonard Kleinrock, scientist at ARPANET

Page 3: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

3

Visão actual:

“I do not care where my servers are, who manages them, where my

documents are stored, or where my applications are hosted. I just want

them always available and access them from any device connected

through Internet. And I am willing to pay for this service for as long as

I need it.”

Sistemas Distribuídos

Page 4: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

4

Sistemas Distribuídos

A cloud permite, a qualquer pessoa com um cartão de crédito aceder a:

- Hardware virtual;

- Ambientes de execução;

- Serviços de software;

- A necessidade de armazenar dados e poder aceder-lhes a partir de

qualquer lado, e

- A necessidade de ter capacidade de computação à medida das

necessidades

São as razões mais comuns para considerar a utilização da Cloud.

Page 5: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

5

Tecnologias de Cloud Computing

I need to grow

my

infrastructure,

but I do not

know for how

long…

I cannot invest

in

infrastructure, I

just started my

business….

I want to focus on

application logic

and not

maintenance and

scalability issues

I want to access

and edit my

documents and

photos from

everywhere..

I have a surplus of

infrastructure that

I want to make use

of

I have a lot of

infrastructure that

I want to rent …

I have

infrastructure and

middleware and I

can host

applications

I have

infrastructure and

provide

application

services

Page 6: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

6

Sistemas Distribuídos

A palavra cloud é associada a diferentes tecnologias, serviços e

conceitos:

Virtualizaed infrastructure

Hardware on demand;

Pay as you go;

Utility computing;

IT out sourcing;

Platform as a service;

Sofware as a service;

Cloud Computing;

Page 7: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

7

Tecnologias de Cloud Computing

IT outsourcing

Pay as you

go

No capital

investments

Quality of

Service

Security

Billing

Cloud

Computing?

Page 8: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

8

Sistemas Distribuídos

Na verdade a tecnologia da Cloud, é algo que já estamos a usar há

muito:

- Aplicações distribuídas e serviços disponíveis na Web e que são

acedidos pelos protocolos standard da Internet.

Definição:

“Cloud Computing refers to both the applications delivered as services

over the Internet and the hardware and system software in the

datacenters that provide those services.” [1]

[1] M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. Katz, A. Konwinski, G. Lee, D.

Patterson, A. Rabkin, I. Stoica, and M. Zaharia, “A view of cloud computing,” Commun. ACM,

vol. 53, no. 4, pp. 50–58, Apr. 2010.

Page 9: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

9

Sistemas Distribuídos

Esta definição refere-se à computação na cloud como englobando

todas as camadas do conceito de cloud, desde o hardware até aos

serviços de software e aplicações.

Dos mesmos autores:

Cloud computing é um novo modelo de negócio onde os consumidores

podem ter acesso a hardware e software, através da internet pagando

o serviço que utilizam (como fazemos com os serviços públicos de

água e eletricidade) [1].

Page 10: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

10

Sistemas Distribuídos

É introduzido o conceito de “everything as a service” – XaaS (2),

onde os diferentes componentes do sistema podem ser fornecidos,

medidos, e portanto ter um preço correspondente a um serviço.

Esta abordagem tem implicações na forma como o software é

construído, como é implantado (deployed), como pode ser acedido,

como a infraestrutura de IT é desenhada, como as empresas vão alocar

os custos para as necessidades de IT.

(2) XaaS, acrónimo de X-as-a-Service, onde X pode ser substituído por

uma série de valores: S para Software, I para infraestrutura, P para

plataforma, H para hardware, D para base de dados, ID para

identidade, etc.

Page 11: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

11

Sistemas Distribuídos

Definição:

“Cloud Computing is a model for enabling ubiquitous, convenient,

on-demand network access to a shared pool of configurable computing

resources (e.g., networks, servers, storage, applications and services)

that can be rapidly provisioned and released with minimal management

effort or service provider interaction”[3].

(Modelo para acesso a um conjunto partilhado de recursos computacionais

(hardware, rede, servidores, armazenamento de dados, aplicações) que podem ser

configurados de acordo com as necessidades do utilizador)

[3] P. Mell and T. Grance, “The NIST definition of cloud computing.

recommendations of the national institute of standards and technology,” NIST Special

Publication, vol. 145, no. 6, pp. 1–2, 2011.

Page 12: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

12

Sistemas Distribuídos

A definição do NIST, realça a abordagem orientada à “utility”.

Os serviços são fornecidos, com um dado preço segundo uma

estratégia “pay-per-use”.

Considera-se que um serviço é fornecido segundo um modelo de cloud

se:

- É acessível através de um web browser, ou através de uma API de

“Web services”;

- Para começar a aceder ao serviço, não é necessário qualquer

investimento inicial;

- Apenas se paga o que se usa e enquanto se usa.

Page 13: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

13

Sistemas Distribuídos

Apesar de muitos serviços serem grátis para utilizadores individuais,

geralmente até um certo limite de recursos, para as empresas existe um

esquema de preços que os utilizadores subscrevem.

Entre cada utilizador e o fornecedor de serviços é assinado um

Service Level Agreement onde são estabelecidas as garantias dadas

pelo fornecedor de serviços e as contrapartidas em caso de não

cumprimento.

Visão geral de como o modelo de cloud computing funciona:

Page 14: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

10

Manjrasoft

Compute

Storage

Applications

Development and Runtime Platform

Public Clouds

Subscription-Oriented Cloud Services:X{compute, apps, data, ..}

as a Service (..aaS)

Clients

OtherCloud Services

Govt.Cloud Services

PrivateCloud

Cloud Manager

14

Page 15: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

15

Sistemas Distribuídos

Consideram-se três modelos principais de implantação (deployment

models) e acesso à cloud:

(têm a ver com a localização, e a gestão da estrutura de cloud)

• Public clouds

Se a infraestrutura física pertence a um fornecedor de serviços, e

qualquer utilizador paga para usar os seus serviços.

• Private clouds

- Se a cloud é construída para uso exclusivo de uma organização.

• Hybrid Clouds

Se a cloud é uma combinação dos dois modelos anteriores.

Page 16: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

16

Cloud Deployment Models

Private/Enterprise

Clouds

* A public Cloud model

within a company’s

own Data Center /

infrastructure for

internal and/or

partners use.

Public/Internet

Clouds

* 3rd party,

multi-tenant Cloud

infrastructure

& services:

* available on

subscription basis to all.

Hybrid/Inter

Clouds

* Mixed usage of

private and public

Clouds: Leasing public

cloud services

when private cloud

capacity is

insufficient

Page 17: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

17

Sistemas Distribuídos

Consideram-se três modelos de serviço (service models):

(têm a ver com o tipo de serviços que podem ser acedidos na cloud)

“Infrastructure as a Service” (IaaS):

- Se disponibiliza capacidade de computação, rede e armazenamento

de dados.

Exemplos:

Amazon Elastic Compute Cloud (EC2), Eucalyptus, OpenNebula,

Nimbus, OpenStack, …

Page 18: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

18

Sistemas Distribuídos

(IaaS):

- Hardware virtual é fornecido na forma de instâncias de máquinas

virtuais;

- O modelo de preço é geralmente definido por hora de utilização, e

depende das caraterísticas do hardware virtual;

- O armazenamento de dados é fornecido como espaço em disco.

- A rede é fornecida como uma coleção de serviços que fazem a

gestão da rede entre máquinas virtuais e a sua ligação à Internet ou a

outras clouds.

Page 19: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

19

Sistemas Distribuídos

“Platform as a Service” (PaaS):

- Se disponibiliza ferramentas para desenvolver produtos de software;

Exemplos: Google App Engine, Windows Azure, LunaCloud, PiCloud,

Amazon Web Services …

- Fornecem máquinas virtuais, sistemas operativos, aplicações,

frameworks de desenvolvimento, …

- O fornecimento dos serviços é garantido por um middleware que

cria o ambiente virtual onde as aplicações são desenvolvidas. É da

responsabilidade do fornecedor fornecer escalabilidade e tolerância

a falhas.

Page 20: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

20

Sistemas Distribuídos

(PaaS):

- O utilizador pode focar-se na lógica da aplicação.

- O utilizador tem um maior nível de abstração, mas também tem

menos controlo sobre o ambiente de execução.

Page 21: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

21

Sistemas Distribuídos

“Software as a Service” (SaaS):

- Quando o utilizador compra uma subscrição para usar um software

online.

Exemplos: GoogleApps, Oracle OnDemand CRM, email,

Microsoft Office 365, …

- As aplicações são partilhadas por vários utilizadores, mas a

interação de cada utilizador com a aplicação é isolada dos restantes

utilizadores.

Page 22: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

22

Sistemas Distribuídos

Runtime Environment for Applications

Development and Data Processing Platforms

Examples: Windows Azure, Hadoop, Google AppEngine

Platform as a

Service

Virtualized Servers

Storage and Networking

Examples: Amazon EC2, S3, Rightscale, vCloud

Infrastructure as a

Service

End user applications

Scientific applications

Office automation, Photo editing,

CRM, and Social Networking

Examples: Google Documents, Facebook, Flickr, Salesforce

Software as a Service Web 2.0

Interfaces

Page 23: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

23

Sistemas Distribuídos

Mudança de Paradigma

- O modelo foi proposto sobre conceitos e tecnologias já existentes.

- O que mudou foi a abordagem de como os serviços são produzidos e

consumidos.

Um fornecedor de Cloud possui uma enorme estrutura concentrada em

datacenters (e.g., Google Cloud possui 35 datacenters espalhados pelo

nundo) construídos segundo critérios de:

- eficiência de alocação de recursos;

- eficiência energética;

- localização com acesso de rede privilegiado (high-speed networks)

Page 24: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

24

Sistemas Distribuídos

O que o modelo de “Cloud Computing” traz de novo?

•A perceção de uma capacidade ilimitada de recursos;

Através da tecnologia de virtualização tem-se acesso a um conjunto de

instâncias de máquinas virtuais cujo número depende da quantidade de

recursos necessária em cada momento.

• Elimina ou reduz o investimento inicial em Tecnologias de

Informação (IT);

Uma empresa pode usar os serviços sem necessidade de possuir um

departamento de informática.

Page 25: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

25

Sistemas Distribuídos

O que o modelo de “Cloud Computing” traz de novo?

• Permite a utilização dos recurso à medida que são necessários;

Os utilizadores podem aumentar ou reduzir a utilização dos recursos à

medida das necessidades de cada momento pagando apenas o que

utilizam.

Page 26: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

26

Sistemas Distribuídos

Características, segundo o NIST:

• Broad network access (Interoperabilidade de acesso).

- O acesso aos recursos da cloud é disponibilizado pelos protocolos

standard da internet que são independentes das plataformas e

acedíveis por todo o tipo de clientes.

• Rapid Elasticity (Elasticidade de recursos)

- O sistema pode adicionar recursos, seja alocando mais capacidade de

computação para as máquinas iniciais, ou alocando mais máquinas.

Estes recursos podem ser adquiridos e libertados a qualquer momento

pelo cliente.

Page 27: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

27

Sistemas Distribuídos

Características, segundo o NIST:

• Resource Pooling

- O fornecedor de cloud cria um conjunto de recursos comuns, que

que serão partilhados pelos vários clientes num modelo

multi-tenant. Os recursos físicos e virtuais, são alocados /realocados

à medida das necessidades. Para o cliente é criada uma abstração que

esconde a localização dos recursos.

• Measured Service (Serviço mensurável)

- O sistema é medido, auditado e reportado ao cliente tendo como base

um sistema de medida.

Page 28: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

28

Sistemas Distribuídos

Características, segundo o NIST:

- O serviço é cobrado segundo a quantidade de dados que armazenou,

o número de transações, operações de I/O, capacidade de computação

usada, …

• On-demand Self-service

- O cliente pode alocar recursos sem necessidade de interagir com o

pessoal do fornecedor da cloud.

Page 29: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

29

Sistemas Distribuídos

Page 30: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

30

Sistemas Distribuídos

Outras características / vantagens:

• Redução de custos

- A utilização dos recursos é otimizada, permitindo reduzir os custos.

• Facilidade de utilização

- Não existe necessidade de adquirir licenças de hardware ou software

para utilizar ou implementar serviços.

Page 31: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

31

Sistemas Distribuídos

Outras características / vantagens:

• Confiabilidade

- A possibilidade de fazer balanceamento de carga e replicação de

serviços, torna mais fácil a implementação de sistemas tolerantes a

falhas.

• Low barrier to entry

- Uma empresa pode ter acesso a recursos de computação sem

investimento em equipamento, pessoal, desenvolvimento e

manutenção.

Page 32: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

32

Sistemas Distribuídos

Desvantagens:

• Soluções não personalizadas

- Muitas das aplicações ou serviços são genéricas e não adaptadas ao

cliente

• Problemas de largura de banda

- Aplicações com elevados níveis de transferência de dados podem

não ser eficientes na Cloud.

Page 33: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

33

Sistemas Distribuídos

Desvantagens:

• Segurança e privacidade

- Os dados estão numa estrutura desconhecida do cliente.

O cliente pode ter problemas em confiar dados críticos a terceiros,

Perda de controlo dos recursos por parte do utilizador;

Page 34: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

34

Sistemas Distribuídos

Desafios:

- Desafios técnicos: como otimizar o fornecimento dinâmico dos

recursos, garantindo a qualidade de serviço, mas reduzindo custos.

- Desafios de segurança: mesmo que os dados sejam encriptados na

comunicação, eles têm de ser desencriptados para serem

processados. Como garantir a privacidade? Como proteger contra

ataques mal intencionados?

- Problemas legais: cada país tem a sua legislação de proteção de

dados. Podem levantar-se problemas sobre quem tem direito de

acesso aos dados, por exemplo em empresas investigadas por

ilegalidades.

Page 35: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

35

Sistemas Distribuídos

Licenças

• Quando se compra um Software tradicional, é usada uma licença

denominada End User Licence Agreement (EULA), que descreve:

- O Software comprado é do cliente;

- Pode ser instalado em uma ou mais máquinas;

- Permite uma ou mais ligações;

- Possui limitações que o próprio fabricante colocou no Software;

• As aplicações distribuídas pela Internet criaram a necessidade de

mudar a forma como o Software é licenciado.

Page 36: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

36

Sistemas Distribuídos

Service Level Agreements (SLA)

Um SLA é um contrato que descreve o desempenho do serviço

contratado entre o cliente e o fornecedor (cloud provider).

- Inicialmente eram negociadas entre cliente e fornecedor

- Atualmentes são contratos standardizados até que o cliente tenha um

consumo elevado de serviços.

Page 37: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

37

Sistemas Distribuídos

Service Level Agreements (SLA)

• Um SLA geralmente especifica os seguintes parâmetros:

- Disponibilidade de serviço (uptime);

- Tempo de resposta e latência;

- Confiabilidade dos componentes do serviço;

- Responsabilidades das partes;

- Garantias

• Se o fornecedor falhar em alguns dos parâmetros, compromete-se a

compensar o cliente com um crédito, ou a pagar uma multa.

• Um SLA funciona como um seguro de compra.

Page 38: Sistemas Distribuídos Cloud Computingpprata/spd/SD_14_15_T15.pdf1 - Introdução à Cloud: “As of now, computer networks are still in their infancy, but as they ... Nimbus, OpenStack,

38

Sistemas Distribuídos

• Na prática, não existe uniformidade no modelo das SLAs, nem na

forma como os serviços são taxados.

• Existem vários modelos de licenças. Ex. The open Source Model .

(http://opensource.org/licenses)

• Cada organização está a colocar preços aos seus produtos de forma

diferente:

- App Store

- Google Play

- Carbonite