Cloud Computing (arquitetura) - UBIpprata/spd/SD_14_15_T16.pdf · 2015. 5. 7. · 3 Sistemas...
Transcript of Cloud Computing (arquitetura) - UBIpprata/spd/SD_14_15_T16.pdf · 2015. 5. 7. · 3 Sistemas...
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