Szczegóły ebooka

Zaawansowana inżynieria sieci w Pythonie. Automatyzacja, monitorowanie i zarządzanie chmurą. Wydanie IV

Zaawansowana inżynieria sieci w Pythonie. Automatyzacja, monitorowanie i zarządzanie chmurą. Wydanie IV

Eric Chou

Ebook

Programiści cenią Pythona za wyrazistość i zwięzłość kodu, a także za bogatą kolekcję narzędzi i bibliotek. Z tych zalet mogą korzystać również inżynierowie sieci. Programistyczne zarządzanie siecią stanowi odpowiedź na rozwój technologii ― tradycyjny interfejs wiersza poleceń i pionowo zintegrowane metody kontroli sieci nie są już najlepszymi sposobami zarządzania współczesnymi sieciami.

Oto uzupełnione i zaktualizowane wydanie bestsellerowego przewodnika dla inżynierów sieci. Dzięki niemu przejdziesz trudną (ale ekscytującą!) drogę od tradycyjnej platformy do platformy sieciowej opartej na najlepszych praktykach programistycznych. Zaczniesz od zagadnień podstawowych, aby następnie zagłębić się w tajniki stosowania bibliotek Pexpect, Paramiko czy Netmiko do komunikacji z urządzeniami sieciowymi. W kolejnych rozdziałach znajdziesz solidny przegląd różnych narzędzi wraz ze sposobami ich użycia: Cisco NX-API, Meraki, Juniper PyEZ, Ansible, Scapy, PySNMP, Flask, Elastic Stack i wielu innych. Rozeznasz się również w kwestiach związanych z kontenerami Dockera, a także usługami sieciowymi chmur AWS i Azure. Lektura tej książki pozwoli Ci się w pełni przygotować na następną generację sieci!

W książce między innymi:

  • interakcja Pythona z urządzeniami sieciowymi
  • uzyskiwanie informacji o sieci i analiza danych sieciowych
  • tworzenie wysokopoziomowych API
  • korzystanie z biblioteki AsyncIO
  • paradygmat programowania sterowanego testami w Pythonie
  • zastosowanie GitLab w praktykach DevOps w kontekście zagadnień sieciowych

Chcesz mieć sieć najnowszej generacji? Python jest dla Ciebie!

O autorze

O recenzencie

Przedmowa

Wstęp

Rozdział 1. Prezentacja zestawu protokołów TCP/IP i Pythona

  • Przedstawienie internetu
    • Serwery, hosty i komponenty sieci
    • Powstanie centrów danych
  • Model OSI
  • Model klient-serwer
  • Zestawy protokołów sieciowych
    • Protokół sterowania transmisją - TCP
    • Protokół pakietów użytkownika - UDP
    • Protokół internetowy - IP
  • Przegląd języka Python
    • System operacyjny
    • Uruchamianie programów w Pythonie
    • Wbudowane typy danych Pythona
    • Operatory w Pythonie
    • Narzędzia do sterowania przepływem
    • Funkcje w Pythonie
    • Klasy w Pythonie
    • Moduły i pakiety
  • Podsumowanie

Rozdział 2. Niskopoziomowe interakcje z urządzeniami sieciowymi

  • Wyzwania stosowania CLI
  • Konstruowanie wirtualnego laboratorium
    • Urządzenia fizyczne
    • Urządzenia wirtualne
    • Laboratoria modelowania Cisco
    • Cisco DevNet
    • GNS3 i inne laboratoria
  • Wirtualne środowisko Pythona
  • Biblioteka Pexpect
    • Instalacja modułu Pexpect
    • Przegląd biblioteki Pexpect
    • Pierwszy program używający Pexpect
    • Więcej możliwości Pexpect
    • Pexpect i SSH
    • Kompletny przykład użycia biblioteki Pexpect
  • Biblioteka Paramiko
    • Instalacja biblioteki Paramiko
    • Prezentacja biblioteki Paramiko
    • Pierwszy program z użyciem Paramiko
    • Więcej możliwości biblioteki Paramiko
    • Więcej przykładów użycia biblioteki Paramiko
  • Biblioteka Netmiko
  • Framework Nornir
    • Wady Pexpect i Paramiko w porównaniu z innymi narzędziami
  • Podsumowanie

Rozdział 3. API i sieci intuicyjne

  • Infrastruktura jako kod (IaC)
    • Sieci intuicyjne
    • Analiza wyświetlanych wyników a strukturalne wyniki API
    • Modelowanie danych na potrzeby IaC
    • YANG i NETCONF
  • Przykłady wykorzystania API urządzeń Cisco
    • Cisco NX-API
    • Model YANG firmy Cisco
    • Przykłady Cisco ACI
  • Kontroler Cisco Meraki
  • API Pythona dla urządzeń Juniper Networks
    • Juniper i NETCONF
    • Biblioteka Juniper PyEZ dla programistów
  • API Pythona dla urządzeń Arista
    • Zarządzanie przy użyciu Arista eAPI
    • Biblioteka Pyeapi firmy Arista
  • Przykład VyOS
  • Inne biblioteki
  • Podsumowanie

Rozdział 4. Framework automatyzacyjny Pythona - Ansible

  • Ansible - framework bardziej deklaratywny
    • Wersje Ansible
  • Pierwszy sieciowy przykład użycia Ansible
    • Instalacja Ansible na węźle kontrolnym
    • Topologia laboratorium
  • Zalety Ansible
    • Brak agentów
    • Idempotentność
    • Prostota i rozszerzalność
  • Ansible Content Collection
  • Kolejne sieciowe przykłady użycia Ansible
    • Zagnieżdżanie ewidencji
    • Wyrażenia warunkowe w Ansible
    • Zmiany konfiguracji
    • Fakty sieciowe Ansible
    • Pętle Ansible
    • Szablony
  • Podsumowanie

Rozdział 5. Kontenery Dockera dla inżynierów sieciowych

  • Prezentacja Dockera
    • Zalety Dockera
  • Tworzenie aplikacji Pythona w Dockerze
    • Instalowanie Dockera
    • Przydatne polecenia Dockera
    • Budowanie aplikacji hello-world
    • Budowanie własnej aplikacji
    • Udostępnianie obrazów Dockera
    • Orkiestracja kontenerów przy użyciu docker-compose
  • Sieci w kontenerach
    • Sieć hosta kontenerów
    • Własne sieci mostkowe
    • Inne opcje sieciowe kontenerów
  • Kontenery w zastosowaniach inżynierii sieciowej
    • Containerlab
  • Docker i Kubernetes
  • Podsumowanie

Rozdział 6. Bezpieczeństwo sieci w Pythonie

  • Przygotowanie laboratorium
  • Program Scapy
    • Instalowanie Scapy
    • Interaktywne przykłady korzystania ze Scapy
    • Przechwytywanie pakietów z użyciem Scapy
    • Skanowanie portów TCP
    • Zestaw narzędzi ping
    • Popularne ataki
    • Zasoby dotyczące Scapy
  • Listy dostępu
    • Implementacja list dostępu przy użyciu Ansible
    • Listy dostępu adresów MAC
  • Przeszukiwanie dzienników Syslog
    • Przeszukiwanie z użyciem modułu obsługi wyrażeń regularnych
  • Inne narzędzia
    • Prywatne wirtualne sieci lokalne
    • Obsługa UFW w Pythonie
  • Dalsza lektura
  • Podsumowanie

Rozdział 7. Monitorowanie sieci przy użyciu Pythona - część 1.

  • Konfiguracja laboratorium
  • SNMP
    • Konfiguracja
    • PySNMP
  • Stosowanie Pythona do wizualizacji danych
    • Matplotlib
    • Pygal
  • Stosowanie Cacti
    • Instalacja
    • Skrypt Pythona jako źródło danych wejściowych
  • Podsumowanie

Rozdział 8. Monitorowanie sieci przy użyciu Pythona - część 2.

  • Graphviz
    • Konfiguracja laboratorium
    • Instalacja
    • Przykłady Graphviz
    • Przykłady użycia Graphviza w Pythonie
    • Użycie LLDP do prezentowania sąsiadujących węzłów sieci
  • Monitorowanie oparte na przepływach
    • Parsowanie danych NetFlow z użyciem Pythona
  • Monitorowanie ruchu sieciowego przy użyciu ntop
    • Rozszerzanie ntop przy użyciu Pythona
    • sFlow
  • Podsumowanie

Rozdział 9. Tworzenie sieciowych usług webowych przy użyciu Pythona

  • Porównanie frameworków webowych Pythona
  • Konfiguracja Flaska i laboratorium sieciowego
  • Wprowadzenie do Flaska
    • Wersje Flaska
    • Przykłady stosowania Flaska
    • Klient HTTPie
    • Obsługa adresów URL
    • Zmienne URL
    • Generowanie adresów URL
    • Zwracanie wyników w formacie JSON
  • API zasobu sieciowego
    • Flask-SQLAlchemy
    • API zawartości sieci
    • API urządzeń
    • API konkretnego urządzenia
  • Dynamiczne operacje sieciowe
    • Operacje asynchroniczne
  • Uwierzytelnianie i autoryzacja
  • Uruchamianie Flaska w kontenerach
  • Podsumowanie

Rozdział 10. Wprowadzenie do asynchronicznych operacji wejścia-wyjścia

  • Przegląd operacji asynchronicznych
    • Wieloprocesowość w Pythonie
    • Wielowątkowość w Pythonie
  • Moduł asyncio Pythona
  • Projekt Scrapli
    • Przykład zastosowania Scrapli
    • Asynchroniczny przykład korzystający ze Scrapli
  • Podsumowanie

Rozdział 11. Sieci w chmurze AWS

  • Konfiguracja AWS
    • AWS CLI i Python SDK
  • Przegląd zagadnień sieciowych w chmurze AWS
  • Wirtualna chmura prywatna
    • Tabele tras i cele tras
    • Automatyzacja przy użyciu CloudFormation
    • Grupy bezpieczeństwa i sieciowe listy ACL
    • Elastic IP
    • Bramy NAT
  • Direct Connect i VPN
    • Bramy VPN
    • Direct Connect
  • Usługi skalowania sieci
    • Elastic Load Balancing
    • Usługa DNS Route 53
    • Usługi CDN CloudFront
  • Inne sieciowe usługi AWS
  • Podsumowanie

Rozdział 12. Sieci w chmurze Azure

  • Porównanie usług sieciowych Azure i AWS
  • Konfiguracja Azure
  • Administracja i API Azure
    • Jednostki usług Azure
    • Python a PowerShell
  • Globalna infrastruktura Azure
  • Sieci wirtualne na platformie Azure
    • Dostęp do internetu
    • Tworzenie zasobów sieciowych
    • Punkty końcowe usługi VNet
    • Peering sieci VNet
  • Routing w sieciach wirtualnych
    • Grupy bezpieczeństwa sieci
  • Wirtualne sieci prywatne na platformie Azure
  • ExpressRoute
  • Równoważenie obciążenia w Azure
  • Inne usługi sieciowe Azure
  • Podsumowanie

Rozdział 13. Analiza danych sieciowych z użyciem Elastic Stack

  • Czym jest Elastic Stack?
  • Topologia laboratorium
  • Elastic Stack jako usługa
  • Pierwszy kompleksowy przykład
  • Obsługa Elasticsearch przy użyciu klienta napisanego w Pythonie
  • Pozyskiwanie danych za pomocą Logstasha
  • Pozyskiwanie danych za pomocą Beats
  • Wyszukiwanie przy użyciu Elasticsearch
  • Wizualizacja danych za pomocą Kibany
  • Podsumowanie

Rozdział 14. Korzystanie z systemu Git

  • Rozważania dotyczące zarządzania treścią i system Git
  • Wprowadzenie do systemu Git
    • Zalety Gita
    • Terminologia Gita
    • Git i GitHub
  • Konfiguracja Gita
    • Plik gitignore
  • Przykłady stosowania systemu Git
  • Gałęzie
    • Przykład GitHub
  • Stosowanie Gita z Pythonem
    • Pakiet GitPython
    • Biblioteka PyGithub
  • Automatyzacja tworzenia kopii zapasowych konfiguracji
  • Współdziałanie przy użyciu Gita
  • Podsumowanie

Rozdział 15. Ciągła integracja z użyciem GitLaba

  • Tradycyjny proces zarządzania zmianą
  • Wprowadzenie do ciągłej integracji
  • Instalowanie GitLaba
  • Runnery GitLaba
  • Pierwszy przykład stosowania GitLaba
  • Sieciowy przykład użycia GitLaba
  • Podsumowanie

Rozdział 16. Programowanie w oparciu o testy na potrzeby programowania sieciowego

  • Prezentacja programowania w oparciu o testy
    • Definicje testów
  • Topologia jako kod
    • Przykład parsowania kodu XML
    • Moduł unittest Pythona
    • Więcej o testowaniu w Pythonie
    • Przykłady stosowania modułu pytest
  • Pisanie testów na potrzeby sieci
    • Testowanie dostępności
    • Testowanie opóźnień sieci
    • Testowanie bezpieczeństwa
    • Testowanie transakcji
    • Testowanie konfiguracji sieciowych
    • Testowanie Ansible
  • pyATS i Genie
  • Podsumowanie

Skorowidz

  • Tytuł: Zaawansowana inżynieria sieci w Pythonie. Automatyzacja, monitorowanie i zarządzanie chmurą. Wydanie IV
  • Autor: Eric Chou
  • Tytuł oryginału: Mastering Python Networking: Utilize Python packages and frameworks for network automation, monitoring, cloud, and management, 4th Edition
  • Tłumaczenie: Piotr Rajca
  • ISBN: 978-83-289-0281-7, 9788328902817
  • Data wydania: 2024-01-23
  • Format: Ebook
  • Identyfikator pozycji: zains4
  • Wydawca: Helion