O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba 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ída em uma única máquina de desenvolvimento Linux sem usar hardware de dispositivo IoT.

O que é isso?

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

Happy aborda os seguintes casos de uso:

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

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

Use os comandos de shell Happy para configurar, testar e depurar seu código durante o desenvolvimento. A mesma configuração de rede e programas de teste podem então ser programados 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 por todos os fundamentos da Happy, incluindo:

  • Criação e exclusão de uma topologia
  • Nós de rede juntos
  • Salvando e restaurando topologias
  • Conectando uma topologia à Internet
  • Fundamentos do Weave

Experimente o Getting Started with Happy Codelab

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

Arquitetura

Happy modela o seguinte:

  • Node - um namespace de rede Linux. Os processos que abrangem 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 oferecer suporte a interfaces L3 (IP) e o dispositivo de rede tap para oferecer suporte a interfaces L2 fora da caixa.
  • 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ós
    • Adicionar, modificar e excluir nós
    • Executando um conjunto de processos dentro do nó
  • Gerenciando links
    • Adicionar, modificar e excluir links
    • Atribuição de links a um nó e uma rede
    • Atribuição e modificação de atribuições de endereço
  • Gerenciando redes
    • Criação, modificação e destruição de redes
    • Conectividade de rede
  • Gerenciando o estado geral da estrutura de uma forma coesa

A maioria das abstrações implementadas pelos módulos Happy são mapeados em comandos que invocam ferramentas de rede Linux.

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 ajudantes que envolvem vários aplicativos do Weave para execução no Happy.

Execução

Os usuários podem construir 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 in /happy .

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