38
Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista [email protected] Abril/2014 Projeto EUBrazilCC

Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista [email protected] Abril/2014 Projeto EUBrazilCC

Embed Size (px)

Citation preview

Page 1: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

Open Cloud ComputingInterface - OCCI

Gustavo Luiz Bastos [email protected]

Abril/2014

Projeto EUBrazilCC

Page 2: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

Agenda

• IaaS• OCCI – Visão Geral• OCCI Core

– OCCI Core Model

• OCCI Infrastructure– OCCI Infrastructure Model

• Compute, Network, Storage, Infrastructure Templates

• OCCI RESTful HTTP Rendering– Operações– Exemplos– Considerações de Segurança

• OCCI 4 Java• Implementações• Considerações para o CSGrid

Page 3: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

IaaSInfrastructure as a Service

Page 4: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

Infrastructure as a Service (IaaS)

• Oferecimento de recursos de TI como serviços acessados na nuvem– Ambiente autocontido - centrado em infraestrutura– Recursos básicos de TI

• Hardware• Rede• Sistemas Operacionais

– Recursos são tipicamente virtualizados• Permitem a escalabilidade• Simplificam a customização

Page 5: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

Infrastructure as a Service (IaaS)

• Servidores virtuais são provisionados a partir de contratos de requisitos– Processador, Memória, Armazenamento, Disponibilidade ..

• Provedores de serviços na nuvem podem utilizar IaaS de outros provedores para escalar seus ambientes

Page 6: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

Infrastructure as a Service (IaaS)

• Consumidores que requerem alto nível de controle dos recursos do ambiente virtualizado– Consumidor tem total responsabilidade administrativa,

de configuração e utilização– Recursos providos como instâncias virtuais recém inicializadas

(não pré-configuradas)

Page 7: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCIOpen Cloud Computing

InterfaceVisão Geral

Page 8: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

Open Cloud Computing Interface - OCCI

• OCCI - Visão Geral– Protocolo e API RESTful– API de gerenciamento remoto para

serviços IaaS– Evoluiu para uma API flexível com

foco em• Interoperabilidade• Extensibilidade

– Permite gerenciamento de qualquer tipo de recurso

– Pode servir de base para PaaS e SaaS

– Front-end para Resource Management Framework de um provedor

– Consumidores• Usuários finais• Outros sistemas

Page 9: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

Open Cloud Computing Interface - OCCI

• Especificação modular e extensível• Conjunto de 3 documentos complementares: – OCCI Core

• Descreve a definição formal do OCCI Core Model– OCCI Infrastructure

• Contém a definição da extensão para o domínio IaaS• Define tipos de recursos, atributos e ações para cada tipo de

recurso– OCCI HTTP Rendering

• Define como interagir com o modelo através da RESTful OCCI API• Define como o OCCI Core Model pode ser comunicado e

serializado utilizando o protocolo HTTP

Page 10: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Core

Page 11: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Core

• OCCI-Core Model– Modelo base de abstração de

recursos do mundo real, incluindo formas para• Identificação• Classificação• Associação• Extensão

– É propriamente utilizado apenas em alguns casos de uso limitados• Base na qual os

renderings (e.g. HTTP) e extensões (e.g. Infrastructure) são construídos

– Representação de tipos que podem ser manipulados e estendidos

Page 12: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Core

• OCCI-Core Model– Qualquer recurso exposto

através de OCCI é um Resource ou um subtipo do mesmo• E.g. Máquina virtual, job,

usuário ..

– Um Link associa instâncias de Resource

– Entity é um tipo abstrato, do qual Resource e Link herdam

– Cada subtipo de Entity é identificado por uma única instância de Kind

Page 13: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Core

• OCCI-Core Model– Kind - Define capacidades

na forma de Actions

– Action - operação invocável aplicável a uma instância de recurso.

– Mixin - mecanismo adicional de extensão • Adição de capacidades(i.e.

Attributes e Actions) a qualquer instância de recurso

• Adição na criação ou tem tempo de execução

Page 14: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Core

• OCCI-Core Model– Extensões deste modelo

são descobertas e visíveis por clientes OCCI em tempo de execução• Descoberta de subtipos de

Resource e Link suportado por uma implementação

• Descoberta de Mixins suportados

– Um mesmo Cliente web OCCI pode ser reutilizado como ferramenta de gerenciamento uma variedade de serviços.

Page 15: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Infrastructure

Page 16: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Infrastructure

• OCCI Infrastructure– Documenta extensão para IaaS que utiliza o OCCI Core Model

– API permite gerenciamento de recursos típicos IaaS• Exemplo

– Criação de uma instância de Compute– Criação de instância de Storage– Associação entre os dois através de um StorageLink

Page 17: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Infrastructure

• Resource– Compute – Recursos de processamento de informações.– Network – Recurso de interconexão e representa um recurso de rede.

• Complementado pelo IPNetworkMixin

– Storage – Recursos de armazenamento de informações.

• Link– NetworkInterface – Conecta uma instância de Compute a uma instância de Network.

• Complementado por um IPNetworkInterfaceMixin

– StorageLink – Conecta uma instância de Compute a uma instância de Storage

• OCCI Query Interface– Permite a descoberta de recursos pelos clientes

Page 18: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Infrastructure

• Compute– Recurso genérico de processamento de informações

• e.g. Máquina virtual.

Page 19: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Infrastructure

• Network– O tipo Network representa uma entidade de rede L2 (e.g. switch virtual). – Pode ser estendido utilizando o mecanismo de Mixin

• E.g. Para suportar capacidades L3/L4 tais como TCP/IP etc.

Page 20: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Infrastructure

• IPNetworkingMixin– Para suportar capacidades L3/L4 (e.g. IP, TCP etc.) um Mixin OCCI é

definido e atribuído ao Network

Page 21: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Infrastructure

• Storage• Representa recursos que gravam informações para um dispositivo de

armazenamento de dados

Page 22: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Infrastructure

• Infrastructure Templates– Permitem clientes aplicar configurações pré-definidas a tipos do

OCCI Infrastructure.

– Eles são implementados utilizando instâncias de Mixins.

– Existe 2 tipos suportados• OS Template

– Permitem clientes especificar qual SO deve ser instalado em um Compute– O gerenciamento de OS Templates é feito pelo implementador– Exemplo

» Provedor possui um OS Template para Ubuntu Linux, 9.10, em um recurso Compute provisionado para um cliente.

Page 23: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI-Infrastructure

• Infrastructure Templates– Resource Template

• Construído sobre o conceito de OS Templates.• É uma instância de Mixin definida pelo provedor que se refere a uma

configuração de Resource pré-determinada.• Exemplo

– Provedor oferece Computes baseados em differentes perfis (i.e., small, medium, large)– Cada perfil corresponde a um conjunto pré-determinado de atributos específicos de

OCCI Resource

Page 24: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI HTTP Rendering

Page 25: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI HTTP Rendering

• Especifica como o OCCI Core Model é utilizado através do protocolo HTTP

• Constrói sobre o conceito de Resource Oriented Architecture (ROA)

– A interação com o sistema é realizada por inspeção e modificação de um conjunto de recursos relacionados e seus estados

– Segue o modelo Representation State Transfer (REST) utilizando o protocolo HTTP• Provê identificação única de recursos através de URLs• Instâncias de recurso dentro de um sistema OCCI tem um

identificador único– E.g. Uniform Resource Name (URN)

• Utiliza verbos HTTP para operar nos recursos– Fracamente mapeados para operações relacionadas a recursos

» Create (POST), Retrieve (GET), Update (POST/PUT) e Delete (DELETE).

Page 26: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI HTTP Rendering

• Verbos HTTP

Page 27: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI HTTP Rendering

• Exemplos– Criação de uma instância de recurso Compute

Page 28: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI HTTP Rendering

• Exemplos– Recuperação de uma instância de recurso Compute

Page 29: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI HTTP Rendering

• Operações– Operações em instâncias de recursos

• Criação de instância de recurso• Recuperação de instância de recurso• Atualização parcial de instância de recurso• Atualização completa de instância de recurso• Remoção de instância de recurso• Disparar Action em instância de recurso

– Tratamento de instâncias de Link• Criação inline de instância de Link• Recuperação de instâncias de recursos de Links definidos• Criação de instâncias de recurso Link• Recuperação de instâncias de recurso Link

Page 30: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI HTTP Rendering

• Operações– Tratamento da OCCI Query Interface

• Recuperação de todos os Kinds, Actions e Mixins• Adicionar definição de Mixin • Remover definição de Mixin

– Operações em caminhos no name-space• Recuperar o estado da hierarquia do name-space• Recuperar todas as instâncias de recursos em um caminho• Remover todas as instâncias de recursos em um caminho

– Operações em Mixins ou Kinds• Recuperar todas as instâncias pertencentes a um Mixin ou Kind• Disparar Actions em todas as instâncias de um Mixin ou Kind• Associar instâncias de recursos com um Mixin• Atualização completa de uma coleção de Mixins• Dissociação de instância de recurso de um Mixin

Page 31: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OCCI HTTP Rendering

• Considerações de Segurança– Utiliza os mecanismos relacionados ao HTTP para segurança

• Implementações devem oferecer Transport Layer Security (TLS)

– A autenticação deve ser realizada pelos mecanismos de autenticação do HTTP• HTTP Basic ou Digest Auth

– Perfis adicionais podem especificar outros métodos• Devem garantir que o esquema de autenticação selecionado possa ser

utilizado com os protocolos relacionados a HTTP

Page 32: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

Implementações

Page 33: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

Implementações

Page 34: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OpenStack

Page 35: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

OpenStack

Page 36: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

Considerações

Page 37: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

Considerações

• Considerações gerais– O OCCI Infrastructure permite lidar com o modelo IaaS– Futuras extensões para PaaS e SaaS podem ser feitas a partir do OCCI

Core Model (existem apenas propostas acadêmicas)

• Considerações para o CSGrid– Considerando IaaS como modelo, a interação via OCCI permite apenas

a alocação e gerenciamento de recursos virtualizados– O controle do que é executado nos recursos pertence ao consumidor,

neste caso o CSGrid• Algum componente no CSGrid (e.g. Gateway) deverá fazer a intermediação

do escalonamento CSGrid, a alocação e utilização de recursos virtualizados na cloud– Componente deverá utilizar API cliente para geração/parsing de

requisições/ respostas HTTP OCCI» E.g. OCCI4Java

Page 38: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC

Fim