Ostatnio skończyłem czytać “Network Programmability & Automation” - książkę, której autorami są specjaliści od automatyzacji sieci: Matt Oswalt, Christian Adell, Scott S. Lowe i Jason Edelman. W tej zajawce spróbuję określić, o czym jest ta 800-stronicowa cegła oraz dlaczego nie byłem jej docelowym czytelnikiem.

Aby wpis miał sens, muszę przedstawić odrobinę kontekstu osobistego. Swoją karierę zawodową wiążę głównie z językiem programowania Python. Tak się złożyło, że pracuję głównie dla firm związanych z szeroko pojętą telekomunikacją. Stąd siłą rzeczy muszę choć trochę rozumieć domenę, w której działam. Dlatego z polecenia kolegi z pracy, specjalisty od sieci, sięgnąłem po omawianą tu książkę.

Ta niszowa publikacja omawia szerokie spektrum zagadnień, zaczynając od opisu trendów w automatyzacji konfiguracji urządzeń sieciowych. Idąc dalej, jest tu mowa o modelowaniu struktur danych (YANG, JSON, YAML), tworzeniu szablonów (Jinja2), komunikacji z API (Netconf, REST, RESTCONF) oraz podstawach programowania (Python, Go). Uzupełnieniem są opisy konkretnych narzędzi i ich użycia w praktyce (Git, Docker, Ansible, Nornir, Terraform). Zwieńczeniem lektury jest przykład architektury oprogramowania, które korzysta z omówionych technik i technologii.

Jak można wywnioskować z opisu, książka jest przekrojowa. Jej celem jest wprowadzenie “tradycyjnego” inżyniera sieci w tematy związane z programowaniem i automatyzacją procesów. Jeżeli ktoś przez większość kariery konfigurował routery przez logowanie się do nich i wklepywanie komend “z palca” - powinien się nią zainteresować.

Ja jednak mam tło programistyczne - dlatego uważam, że nie była to książka dla mnie. Inżynier sieci wyciągnie z niej sporo wiedzy programistycznej, jednak programista nie wyniesie z niej zbyt wiele wiedzy o sieciach.

Nie uważam jednak, że ta lektura była stratą czasu. Gdyby była, nie przeczytałbym jej. Nauczyłem się stąd wielu nowych rzeczy. Tyle tylko, że nie nadrobiłem braków w wiedzy o sieciach. Wygląda więc na to, że będę musiał poszukać czegoś bardziej specyficznego dla tej domeny…

Warto przeczytać również

  1. David M. Beazley - “Python Distilled: dużo szersze wprowadzenie do Pythona.
  2. Luciano Ramalho - “Fluent Python: wgłębne omówienie Pythona i tego, jak działa, co umożliwia i co warto wiedzieć.
  3. Sean P. Kane, Karl Matthias - “Docker: przekrojowe wprowadzenie do Dockera i konteneryzacji, z praktycznymi przykładami i poruszeniem również bardziej skomplikowanych zagadnień.
  4. Prem Kumar Ponuthorai, Jon Loeliger - “Kontrola wersji z systemem Git: dogłębne omówienie Gita i jego zasady działania.

Dodatkowe linki