Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

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 deweloperskiej z systemem Linux bez korzystania ze sprzętu urządzenia IoT.

Co to jest?

Happy symuluje złożone topologie sieciowe. Na jednym komputerze z systemem Linux Happy może tworzyć wiele węzłów ze stosami sieciowymi, które są od siebie niezależne. Niektóre węzły mogą być podłączone do symulowanych sieci Thread, inne mogą łączyć się z symulowanymi sieciami Wi-Fi, WAN (Internet) lub komórkowymi.

Happy dotyczy następujących przypadków użycia:

  • Testowanie protokołów sieciowych i innych rozproszonych programów wykonawczych na pojedynczej maszynie programistycznej z systemem Linux bez użycia sprzętu
  • Wykonywanie zautomatyzowanych testów funkcjonalnych w całej sieci
  • Uruchamianie wielu współbieżnych, równoległych sieci w tym samym systemie w celu poprawy przepustowości testów

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 użycie interaktywne, jak i automatyczne skrypty.

Użyj poleceń powłoki Happy, aby skonfigurować, przetestować i debugować kod podczas programowania. Ta sama konfiguracja sieci i programy testowe mogą być następnie tworzone przez skrypty i używane w testach automatycznych.

Zaczynaj

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

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

Wypróbuj Pierwsze kroki z Happy Codelab

Zobacz Konfiguracja i użytkowanie, aby uzyskać więcej informacji na temat konfigurowania i używania Happy.

Architektura

Szczęśliwe modele:

  • Węzeł - przestrzeń nazw sieci Linux. Procesy zawierające węzeł działają w określonej sieciowej przestrzeni nazw.
  • Link - interfejs sieciowy Linuksa. Happy używa urządzenia sieciowego veth do obsługi interfejsów L3 (IP) oraz urządzenia sieciowego tap do obsługi interfejsów L2 po wyjęciu z pudełka.
  • Sieć - sieciowe przestrzenie nazw systemu Linux z działającym mostem Ethernet.

Realizacja

Happy to zbiór modułów Pythona. Podstawowe moduły Happy zapewniają abstrakcje dla:

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

Większość abstrakcji zaimplementowanych przez moduły Happy jest odwzorowywana na polecenia wywołujące narzędzia sieciowe Linuksa.

Happy zawiera również zestaw wtyczek znalezionych w /plugins . Wtyczki opakowują zestaw funkcji związanych z określoną technologią. Na przykład /plugins/weave zawiera pomocniki, które opakowują różne aplikacje Weave do wykonania w Happy.

Wykonanie

Użytkownicy mogą budować symulowane topologie za pomocą dwóch metod:

  • Polecenia powłoki - wszystkie polecenia znajdują się 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 używania modułów Happy we własnych skryptach języka Python, zobacz Skrypty w języku Python .