O Google está comprometido em promover a equidade racial para as comunidades negras. Veja como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Feliz

Happy é uma ferramenta para orquestração leve de topologias de rede simuladas. Use-o para testar protocolos de rede e outros programas de execução distribuídos em uma única máquina de desenvolvimento Linux sem usar o hardware do dispositivo IoT.

O que é isso?

Happy simula topologias de rede complexas. Em uma única máquina Linux, o Happy pode criar vários nós com pilhas de rede independentes entre si. Alguns nós podem estar conectados a redes de encadeamento simuladas, outros podem se conectar a redes Wi-Fi, WAN (Internet) ou celulares simuladas.

Happy aborda os seguintes casos de uso:

  • Testando protocolos de rede e outros programas de execução distribuídos em uma única máquina de desenvolvimento Linux sem usar hardware
  • Executando testes funcionais automatizados em uma rede
  • Executando várias redes paralelas simultâneas no mesmo sistema para melhorar a taxa de transferência de teste

O Happy resolve esses problemas criando abstrações de topologia de rede com o mínimo de sobrecarga do usuário. Topologias complexas podem ser criadas com uma única chamada de comando do shell. O Happy suporta tanto o uso interativo quanto o script automatizado.

Use os comandos do shell Happy para configurar, testar e depurar seu código durante o desenvolvimento. A mesma configuração de rede e programas de teste podem ser roteirizados e usados ​​em testes automatizados.

iniciar

A maneira mais rápida e fácil de começar a usar o Happy é passar pelo Codelab. Ele orienta o usuário em todos os fundamentos da Happy, incluindo:

  • Criando e excluindo uma topologia
  • Nós de rede juntos
  • Salvando e restaurando topologias
  • Conectando uma Topologia à Internet
  • Fundamentos de tecer

Experimente o Introdução ao Happy Codelab

Consulte Configuração e uso para obter mais informações sobre como configurar e usar o Happy.

Arquitetura

Happy modela o seguinte:

  • - um espaço para nome da rede Linux. Os processos que compreendem o nó são executados em um namespace de rede especificado.
  • Link - Uma interface de rede Linux. Happy usa o dispositivo de rede veth para suportar interfaces L3 (IP) e o dispositivo de rede de tap para suportar interfaces L2 veth para uso.
  • Rede - namespaces de rede Linux com uma ponte Ethernet em execução dentro deles.

Implementação

Happy é uma coleção de módulos Python. Os módulos Core Happy fornecem abstrações para:

  • Gerenciando abstrações de nó
    • Incluindo, Modificando e Excluindo Nós
    • Executando um Conjunto de Processos no Nó
  • Gerenciando links
    • Adicionando, Modificando e Excluindo Links
    • Designando Links para um Nó e uma Rede
    • Atribuindo e modificando atribuições de endereço
  • Gerenciando redes
    • Criando, modificando e destruindo redes
    • Conectividade de rede
  • Gerenciando o estado geral da estrutura de maneira coesa

A maioria das abstrações implementadas pelos módulos Happy é mapeada para comandos que invocam ferramentas de rede Linux.

O Happy também contém um conjunto de plug-ins encontrados em /plugins . Os plug-ins envolvem um conjunto de funcionalidades relacionadas a uma tecnologia específica. Por exemplo, /plugins/weave contém auxiliares que agrupam vários aplicativos Weave para execução no Happy.

Execução

Os usuários podem criar topologias simuladas por meio de dois métodos:

  • Comandos do shell - todos os comandos estão em /bin .
  • Scripts Python - importe módulos Happy para chamar comandos Happy em seus próprios scripts Python. Os módulos estão em /happy .

Para obter mais informações sobre o uso de módulos Happy em seus próprios scripts Python, consulte Script em Python .