Upload
internet
View
104
Download
0
Embed Size (px)
Citation preview
Open Cloud ComputingInterface - OCCI
Gustavo Luiz Bastos [email protected]
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
IaaSInfrastructure as a Service
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
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
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)
OCCIOpen Cloud Computing
InterfaceVisão Geral
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
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
OCCI-Core
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
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
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
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.
OCCI-Infrastructure
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
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
OCCI-Infrastructure
• Compute– Recurso genérico de processamento de informações
• e.g. Máquina virtual.
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.
OCCI-Infrastructure
• IPNetworkingMixin– Para suportar capacidades L3/L4 (e.g. IP, TCP etc.) um Mixin OCCI é
definido e atribuído ao Network
OCCI-Infrastructure
• Storage• Representa recursos que gravam informações para um dispositivo de
armazenamento de dados
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.
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
OCCI HTTP Rendering
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).
OCCI HTTP Rendering
• Verbos HTTP
OCCI HTTP Rendering
• Exemplos– Criação de uma instância de recurso Compute
OCCI HTTP Rendering
• Exemplos– Recuperação de uma instância de recurso Compute
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
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
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
Implementações
Implementações
OpenStack
OpenStack
Considerações
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
Fim