Onix Uma plataforma de desenvolvimento para controle distribuído.

42
onix Uma plataforma de desenvolvimento para controle distribuído

Transcript of Onix Uma plataforma de desenvolvimento para controle distribuído.

Page 1: Onix Uma plataforma de desenvolvimento para controle distribuído.

onixUma plataforma de desenvolvimento para controle distribuído

Page 2: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Cloud computing – a evolução

o Paradigma geral de controle

o Provisão de serviços

o Foco em lógica ao invés de infraestrutura

introdução

Page 3: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Modelo tradicional

o Dificuldade o Criação de funções de controle

o Exige criação de protocolo próprio

o Envolvimento no aspecto baixo nível

introdução

Page 4: Onix Uma plataforma de desenvolvimento para controle distribuído.

introdução

o Plataforma genérica

o Controle em nível de rede

o Abstração de distribuição de estado

o Interface para desenvolvimento

o “Abaixo a visão de baixo nível !”

Page 5: Onix Uma plataforma de desenvolvimento para controle distribuído.

introduçãoo Plano de controle | Plano de

encaminhamento

o Funções da plataforma

o Coletar informações dos switches e...o ... Distribuir o estado apropriado entre eleso Coordenar o estado entre servidores da

plataformao Prover uma API para desenvolvimento

o Rede definida por software - SDN

Page 6: Onix Uma plataforma de desenvolvimento para controle distribuído.

introdução

o Modelo RDS

o Nova função implementada sobre a API

o Dificuldades por conta da plataforma

o De que forma?o Primitivas de distribuição de estadoo Uso de técnicas consolidadas

Page 7: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Mas......e os...

Desafios!

o Generalidadeo Escalabilidadeo Confiabilidadeo Simplicidadeo Desempenho

introdução

Page 8: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Componentes - Infraestrutura Física

o Switches

o Roteadores

o Outros elementos de rede manipuláveis

arquitetura

Page 9: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Componentes - Conectividade

o Canal de controleo In band x Out of bando Comunicação bidirecionalo Protocolos padrão

arquitetura

onix

Page 10: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Componentes - Onixo Sistema distribuídoo Cluster de um ou mais servidoreso Cada um Uma ou mais instâncias da Onix

o Responsabilidadeso Habilitar lógica das aplicaçõeso Operar sobre estados dos elementoso Disseminar estados

arquitetura

Page 11: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Componentes - Lógica de Controle

o Codificada sobre a API

o Determina comportamento da rede

o Determina características da aplicação

arquitetura

Page 12: Onix Uma plataforma de desenvolvimento para controle distribuído.

o APIo “... útil e genérica ...”o Visibilidade da redeo Ler e escrever estados

o Modelo de dadoso Elemento de rede Objetoo Ler, escrevero NIB – Cópia da rede

arquitetura

Page 13: Onix Uma plataforma de desenvolvimento para controle distribuído.

arquitetura

Node Port Link

ForwardingEngine

Host Network

ForwardingTable

1

n

1 n 2 1

Page 14: Onix Uma plataforma de desenvolvimento para controle distribuído.

o NIB (Network Information Base)

o Mecanismo de replicação e distribuiçãoo Mantém entidades de redeo Elementos de rede ou suas subparteso Identificador global 128-bitso Atributos (chave-valor)o Métodos

arquitetura

Page 15: Onix Uma plataforma de desenvolvimento para controle distribuído.

arquiteturaCategoria FinalidadeConsulta Buscar por entidades.Criar, excluir Criar e excluir entidades.

Acesso a atributos

Inspecionar e modificar entidades.

Notificações Receber atualizações sobre mudanças.

Sincronização Esperar que atualizações sejam aplicadas no conteúdo dos elementos da rede e dos controladores.

Configuração Configurar como os estados são importados e exportados da NIB.

Pull Solicitar que entidades sejam importadas sob demanda.

Page 16: Onix Uma plataforma de desenvolvimento para controle distribuído.

o NIB (Network Information Base)o Consulta direta o Notificações: adição, alteração ou remoçãoo Manipulação {entidades estado da rede}

o Operações assíncronaso Eventualmente!o Sem garantia de ordenação ou latênciao Eficiência x Necessidadeo Primitiva de sincronização - callback

arquitetura

Page 17: Onix Uma plataforma de desenvolvimento para controle distribuído.

o NIB (Network Information Base)o NIB Escalabilidadeo Consistência ajustávelo Detecção e resolução de conflitos

o Sem mecanismo de bloqueio distribuídoo {requisição, liberação} de acesso

exclusivoo Dependência dos mecanismos de

distribuição

arquitetura

Page 18: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Observações sobre aplicaçõeso Escalabilidadeo Frequência de atualizaçãoo Durabilidadeo Consistência

o Opções quanto a taxa de atualização( ) Alta Disponibilidade( ) Baixa Consistência e durabilidade

mecanismo de distribuição

Page 19: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Distribuição de estado entre instâncias Onixo Banco de dados replicadoo Durabilidadeo Consistênciao Problema de desempenhoo Dados com baixas taxas de mudançao API SQLo Suporte a Importação e Exportaçãoo Transaçõeso Mudanças Banco de Dados NIB

mecanismo de distribuição

Page 20: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Distribuição de estado entre instâncias Onixo Distributed Hash Tableo Disponibilidadeo Consistência eventualo Armazenada em memóriao Dados com altas taxas de mudançao Atualizações simultâneaso Estados inconsistenteso Aplicações resolvemo Evitam o conflitos ou atuação

simultânea

mecanismo de distribuição

Page 21: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Gerenciamento de estado de elemento de redeo Não usa protocolo particularo Qualquer protocolo é aceitoo Condiçãoo Sincronizaçãoo {Estado atual da rede, NIB}

o OpenFlowo {Evento, Operações} Estadoso Manipulados como entidades da NIB

mecanismo de distribuição

Page 22: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Consistência e Coordenaçãoo NIB é o point dos dadoso “Não mexe aqui!”o Aplicação declara que dados

import./export.o Integração sem exigênciaso Estados inconsistentes são armazenadoso Fonte específicao Inconsistência entre diferentes fontes

o Aplicações dizem como vão resolver

mecanismo de distribuição

Page 23: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Consistência e Coordenaçãoo Dois modos são disponibilizados:o Modo 1o Entidades são classes C++o Herança lógica de detecção de

inconsistênciao Sem exposição a inconsistência

o Mas.... E se acontece?o Mudanças inconsistentes ficam

pendenteso ( ) Aplicadas na NIB ( ) Inválidas

mecanismo de distribuição

Page 24: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Consistência e Coordenaçãoo Dois modos são disponibilizados:

o Modo 2o Resolução de conflito na importaçãoo {Fonte do dado, NIB}

mecanismo de distribuição

Page 25: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Utilização da NIB determina

o Propriedades de {escalabilidade, confiabilidade}

o número de elementos exaurir memória

o número de eventos saturar CPU

escalabilidade e confiabilidade

Page 26: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Escalabilidade

o Particionamento

o Agregação

o Consistência e durabilidade

escalabilidade e confiabilidade

Page 27: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Escalabilidadeo Suporte a três estratégias

o Particionamentoo Instância mantem parte atualizada da

NIBo Menor número de eventos para

processar

o Agregaçãoo Expõe subconjunto da NIB como um

agregado

escalabilidade e confiabilidade

Page 28: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Escalabilidadeo Consistência e durabilidadeo Através de mecanismos de bloqueio eo Algoritmos de consistência ou o Detecção e resolução de conflitos

o Alta durabilidade e consistênciao Banco de dados

o Volatilidade e tolerância a inconsistênciao DHT

escalabilidade e confiabilidade

Page 29: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Confiabilidadeo Gerência de falha:

o Elementos de rede

o Link

o Instância Onix

o Conectividade

escalabilidade e confiabilidade

Page 30: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Confiabilidadeo Gerência de falhao Elementos de rede e link

o Desviar tráfego de elementos problemáticos

o Tempo mínimo: Disseminação + Recálculo

o Instâncias Onixo Outra instância assume as

responsabilidadeso Gerenciamento redundanteo Perda de atualização em atuação

concorrenteo Alterações {pode, não pode} ser

sobrescrita?

escalabilidade e confiabilidade

Page 31: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Confiabilidadeo Gerência de falhao Falha de conectividade

o Distribuição de estado separada da topologia

o Conectividade requeridao {Elementos de rede, Instância Onix}o {Instância Onix, Instância Onix}

o Rede {gerenciamento , tráfego} separadas

o Topologia física é conhecida pela Onixo {Encaminhamento estático,

Multipathing}

escalabilidade e confiabilidade

Page 32: Onix Uma plataforma de desenvolvimento para controle distribuído.

o 150000 linhas de código C++o Bibliotecas de terceiros

o Contém lógica parao Comunicação com elementos de redeo Gestão de informação na NIBo Framework para desenvolvedores

o Comunicação por RPC sobre conexões IPCo Suporte a linguagens: C++, Python e Java

implementação

Page 33: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Módulos escritos com baixo acoplamento

o Substituição sem recompilaçãoo Interface deve permanecer a mesma

o {Carga, descarga} dinâmica de componentes

o Desenvolvedor deve expressar as dependênciaso Assegurar ordem apropriada de {carga,

descarga}

implementação

Page 34: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Distributed Virtual Switch

o Ambientes corporativos virtualizadoso Switches Baseados em softwareo Milhares ou dez. de milhares de VMso Ambientes altamente dinâmicoso Criação, exclusão, migração on-the-fly

o Distributed Virtual Switch (DVS)

aplicações

Page 35: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Distributed Virtual Switcho DVS provê abstração lógico de switcho Nas portas declaram-se políticaso Ligadas nas VMs pelo hypervisor

o DVS assegura queo Políticas VMs

o Nada de reconfiguração manualo Ok. Mas E A ONIX ?

aplicações

Page 36: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Distributed Virtual Switcho Onix não se envolve no encaminhamentoo Invocada quando as VMs são:o Criadas, excluídas ou migradas

o Poolso VMs tipicamente não migram entre poolso A lógica de controle particiona-se em pools

o Uma instância Onix (1) (1) Pool

aplicações

Page 37: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Distributed Virtual Switcho Configuração dos switches armazenadas no

BDo Localização das VMso Desconhecida entre instâncias Onix

o Em caso de falhao Rede ainda pode operaro VMs dinâmicas no way !

aplicações

Page 38: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Data centers virtualizados multi locatárioso Responsabilidades da redeo Gerenciar a dinâmica de hostso Isolar endereçamento e recursoso Ex.: Sobreposição de IP ou MAC

o Aplicação baseada na Onixo Permite criar redes locatáriaso Cada uma com configuração independente

aplicações

Page 39: Onix Uma plataforma de desenvolvimento para controle distribuído.

o Data centers virtualizados multi locatárioso Funções da lógica de controle o Estabelecer túneis entre hypervisor da

mesmo redeo Particionar a rede entre instâncias Onix

o Instância Onixo Gerencia subconjunto de hypervisorso Divulga seus pontos terminais na DHTo Outras instânciaso Configuram módulo importação DHT NIB

aplicações

Page 40: Onix Uma plataforma de desenvolvimento para controle distribuído.

o {Ambientes, Soluções, Protocolos} específicoso Exigem abordagem baixo nível

o Onixo Abstração de nível físicoo Foco em lógica

o Facilidade de inclusão de novas técnicaso Facilidade de inclusão de novos algoritmoso Customização baixo nível em serviço sob

demanda

conclusão

Page 41: Onix Uma plataforma de desenvolvimento para controle distribuído.

1. Hurwitz, Judith, Bloor, Robin e Kaufman, Marcia. Cloud computing for dummies - HP Special Edition. Hoboken, NJ : Wiley Publishing, Inc, 2010. 978-0-470-63881-1.

2. Koponen, Teemu, et al., et al. Onix: A Distribuited Control Platform for Large-Scale Production Networks.

3. Tanenbaum, Andrew. Distribuited Systems, Principles and Paradigms. New Jersey : Prentice Hall, 2007. 0-13-239227-5.

4. Kurose, James F. e Ross, Keith W. Computer networking, a top-down approach featuring the Internet. 3ª. s.l. : Pearson, 2006. 85-88639-18-1.

5. Akella, Aditya. Multi-Path Routing: A Different Perspective. s.l. : Carnagie Mellon University.

6. Elmasri, Ramez e Navathe, Shamkant B. Fundamentals of database systems. s.l. : Pearson, 2004. 0-321-12226-7.

7. Mckeown, N., et al., et al. OpenFlow: Enabling Innovation in Campus Networks. SIGCOMM CCR 38. 2, 2008.

8. Hunt, P., et al., et al. ZooKeeper: Wait-free Coordination for Internet-Scale Systems. Usenix Annual Technical Conference. Junho de 2010.

referências

Page 42: Onix Uma plataforma de desenvolvimento para controle distribuído.

perguntas

?