open cloud computing interface - occi gustavo luiz bastos baptista [email protected]...
TRANSCRIPT
![Page 1: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/3.jpg)
IaaSInfrastructure as a Service
![Page 4: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/10.jpg)
OCCI-Core
![Page 11: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/15.jpg)
OCCI-Infrastructure
![Page 16: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/24.jpg)
OCCI HTTP Rendering
![Page 25: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/32.jpg)
Implementações
![Page 33: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/33.jpg)
Implementações
![Page 34: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/34.jpg)
OpenStack
![Page 35: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/35.jpg)
OpenStack
![Page 36: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/36.jpg)
Considerações
![Page 37: Open Cloud Computing Interface - OCCI Gustavo Luiz Bastos Baptista gbaptista@tecgraf.puc-rio.br Abril/2014 Projeto EUBrazilCC](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/37.jpg)
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](https://reader036.vdocuments.com.br/reader036/viewer/2022062512/552fc131497959413d8d5f3f/html5/thumbnails/38.jpg)
Fim