O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Happy

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 é?

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 Thread 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ídos 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 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

Veja Instalação e Uso para mais informações sobre como configurar e utilizar feliz.

Arquitetura

Modelos felizes o seguinte:

  • Node - namespace rede A Linux. Os processos que abrangem o nó são executados em um namespace de rede especificado.
  • Link - interface de rede A Linux. Feliz usa o veth dispositivo de rede para suportar interfaces L3 (IP) e a tap dispositivo de rede para suportar L2 interage fora da caixa.
  • Rede - namespaces rede Linux com uma bridge Ethernet correndo 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
  • Gerenciar o estado geral da estrutura de maneira coesa

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

Feliz também contém um conjunto de plugins encontrados em /plugins . Os plug-ins envolvem um conjunto de funcionalidades relacionadas a uma tecnologia específica. Por exemplo, /plugins/weave conter ajudantes que envoltório várias aplicações Weave para execução dentro feliz.

Execução

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

  • Comandos Shell - Todos os comandos estão em /bin .
  • Scripts Python - Importe módulos Happy para chamar comandos Happy em seus próprios scripts Python. Módulos estão em /happy .

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