Google is committed to advancing racial equity for Black communities. See how.

Happy

Happy to narzędzie do lekkiej orkiestracji symulowanych topologii sieci. Użyj go do testowania protokołów sieciowych i innych rozproszonych programów wykonawczych na pojedynczej maszynie programistycznej z systemem Linux bez użycia sprzętu IoT.

Co to jest?

Happy symuluje złożone topologie sieci. Na pojedynczej maszynie z Linuksem Happy może tworzyć wiele węzłów ze stosami sieci, które są od siebie niezależne. Niektóre węzły mogą być połączone z symulowanymi sieciami Thread, inne mogą łączyć się z symulowanymi sieciami Wi-Fi, WAN (Internet) lub komórkowymi.

Happy rozwiązuje następujące przypadki użycia:

  • Testowanie protokołów sieciowych i innych rozproszonych programów wykonawczych na pojedynczym komputerze z systemem Linux bez użycia sprzętu
  • Wykonywanie automatycznych testów funkcjonalnych w sieci
  • Uruchamianie wielu równoczesnych, równoległych sieci w tym samym systemie w celu poprawy przepustowości testowania

Happy rozwiązuje te problemy, tworząc abstrakcje topologii sieci przy minimalnym obciążeniu użytkownika. Złożone topologie można tworzyć za pomocą pojedynczego wywołania polecenia powłoki. Happy obsługuje zarówno interaktywne użycie, jak i automatyczne skrypty.

Użyj poleceń powłoki Happy, aby skonfigurować, przetestować i debugować ich kod podczas programowania. Ta sama konfiguracja sieci i programy testowe mogą być następnie oskryptowane i użyte w zautomatyzowanym testowaniu.

Zaczynaj

Najszybszym i najłatwiejszym sposobem rozpoczęcia pracy z Happy jest przejście przez Codelab. Prowadzi użytkownika przez wszystkie podstawy Happy, w tym:

  • Tworzenie i usuwanie topologii
  • Łączenie węzłów razem
  • Zapisywanie i przywracanie topologii
  • Podłączanie topologii do internetu
  • Podstawy splotu

Wypróbuj Pierwsze kroki z Happy Codelab

Patrz Konfiguracja i Wykorzystanie uzyskać więcej informacji na temat konfigurowania i korzystania szczęśliwy.

Architektura

Szczęśliwe modele:

  • Węzeł - nazw sieci Na Linux. Procesy składające się na węzeł działają w określonej sieciowej przestrzeni nazw.
  • Link - interfejs sieci Na Linux. Szczęśliwy używa veth urządzenie sieciowe w celu wspierania L3 (IP) interfejsy i tap urządzenia sieciowego do obsługi interfejsów L2 po wyjęciu z pudełka.
  • Network - Linux nazw sieci za pomocą mostu Ethernet działa wewnątrz nich.

Realizacja

Happy to zbiór modułów Pythona. Podstawowe moduły Happy dostarczają abstrakcji dla:

  • Zarządzanie abstrakcjami węzłów
    • Dodawanie, modyfikowanie i usuwanie węzłów
    • Uruchamianie zestawu procesów w węźle
  • Zarządzanie linkami
    • Dodawanie, modyfikowanie i usuwanie linków
    • Przypisywanie łączy do węzła i sieci
    • Nadawanie i modyfikowanie przydziałów adresów
  • Zarządzanie sieciami
    • Tworzenie, modyfikowanie i niszczenie sieci
    • Łączność sieciowa
  • Zarządzanie ogólnym stanem frameworka w sposób spójny

Większość abstrakcji zaimplementowanych przez moduły Happy odwzorowuje się na polecenia, które wywołują narzędzia sieciowe Linuksa.

Szczęśliwy zawiera również zestaw wtyczek znajdujących się w /plugins . Wtyczki zawierają zestaw funkcji związanych z konkretną technologią. Na przykład, /plugins/weave zawierać pomocników, które owijają różne Weave wnioski o wykonanie w Happy.

Wykonanie

Użytkownicy mogą budować symulowane topologie na dwa sposoby:

  • Polecenia Shell - Wszystkie komendy są w /bin .
  • Skrypty Pythona — Importuj moduły Happy, aby wywoływać polecenia Happy we własnych skryptach Pythona. Moduły są w /happy .

Aby uzyskać więcej informacji na temat korzystania Szczęśliwi moduły we własnych skryptów Pythona, zobacz Python włączony .