Kolejna pozycja książkowa związana z automatyzacją, która wpadła mi w ręce, to publikacja “Network Programmability and Automation Fundamentals” autorstwa czterech CCIE wydana przez CiscoPress. Jest to już kolejna publikacja CiscoPress poświęcona automatyzacji. Dla kogo książka może być przydatna? Zapraszam do lektury mojej recenzji.
Pierwsze wrażenie
To kolejna książka od CiscoPress poświęcona zagadnieniom automatyzacji. Pierwszą z nich, “DEVCOR Study Guide”, recenzowałem tutaj. Książka “Network Programmability and Automation Fundamentals” jest gruba. I mówiąc gruba mam na myśli ponad 1200 stron wypełnionych treścią. Całość została podzielona na dziewięć sekcji, z których główne i najważniejsze to w kolejności: Linux, Python, Transport, Encoding, Modeling, Protocols i Programmability Applications. Już po spisie treści widać, że książka ta przeznaczona jest dla początkujących osób wchodzących w świat automatyzacji. Pokazuje ścieżkę, jaką trzeba przejść od inżyniera pracującego z CLI urządzeń do osoby, której zadanie to projektowanie i pisanie zautomatyzowanych skryptów. Bo umówmy się, do wykonania zautomatyzowanego zadania nie jest potrzebna wiedza o automatyzacji a jedynie o tym jak działa sieć, by rozumieć jaką czynność się wykonuje, nieważne czy ręcznie czy automatycznie. Sami autorzy słusznie wskazują, że odbiorcami tej publikacji powinni być pracownicy NOC myślący o rozwoju swojej kariery, inżynierowie działów wdrożenia na co dzień wdrażający nowe usługi i urządzenia w sieci. Wymienieni są też architekci rozwiązań sieciowych oraz programiści aplikacji – co do tej grupy miałbym wątpliwość, ale o tym za chwile.
Jeżeli chcecie przejrzeć cały spis treści to dostępny jest on wraz z całym trzecim rozdziałem poświęconym systemowi Linux za darmo.
Droga do automatyzacji
Spis treści “Network Programmability and Automation Fundamentals” pokazuje drogę jaką autorzy obrali, by zapoznać czytelnika z podstawami automatyzacji. Bez wątpienia jest to dobra droga dla kogoś kto miał z tym zerową lub bardzo małą styczność. Od podstaw pracy z systemem Linux, bez którego znajomości się w automatyzacji nie obejdzie. Nie ukrywajmy – większość narzędzi bazuje lub pochodzi z systemów z rodziny Unix, i co najwyżej zostały one dostosowane do pracy w środowisku Windows. Rozdział nie skupia się jedynie na podstawach używania Linuksa, ale też wprowadza w usługi sieciowe takie jak choćby DNS.
Kolejny rozdział to wprowadzenie do programowania w języku Python. Nie ma wątpliwości, że jest to powszechnie wykorzystywany język programowania w skryptach a jego podstawowa znajomość jest wymagana nie tylko na stanowiskach programistycznych. Rozdziały poświęcone Pythonowi są opatrzone wieloma przykładami kodu a także przykładami wykorzystania narzędzi systemowych, na przykład takich jak curl, aby przetestować “na sucho” wywołania API przed ich implementacją. Autorzy nie stronią też od zaprezentowania bardziej zaawansowanych narzędzi jak Postman. Ich opis znajdziemy jednak dopiero w kolejnych rozdziałach, gdy czytelnik wyposażony w fundamentalną wiedzę o automatyzacji będzie się skupiał na zrozumieniu działania API czy pracy z danymi.
Warto też wspomnieć, że autorzy skupili się na tym, aby czytelnik zadania prezentowane w książce mógł wykonać bez konieczności inwestowania w drogi sprzęt. Czytelnicy w tym celu mogą wykorzystać DevNet Sandbox. I mimo, że przykłady opierają się o platformę Cisco cieszy fakt, ze autorzy nie zapominają, i wspominają w tekście, że wiele funkcjonalności i standardów jest uniwersalnych i spotkamy jest w systemach Juniper Junos OS, Arista EOS czy Nokia SR OS.
Dla kogo jest ta książka "Network Programmability and Automation Fundamentals"?
Jak wspomniałem już wcześniej autorzy nakreślili dość szerokie grono odbiorców książki. Moim zdaniem nieco za szerokie. “Network Programmability and Automation Fundamentals” na pewno przyda się inżynierom, którzy chcą rozpocząć swoją przygodę z automatyzacją niezależnie od tego czy zajmują się utrzymaniem infrastruktury IT czy wdrożeniami. Książka przyda się też wszystkim osobom przygotowującym się do egzaminów ze ścieżki DevNet. Pamiętajmy jednak, że nie jest to pozycja z serii Exam Certification Guide. Natomiast nie jestem pewien czy architekci rozwiązań, szczególnie Ci którzy więcej czasu spędzają nad dokumentacją niż praktyką, dużo skorzystają z lektury. Autorzy stawiają na praktykę a nie teorię, a tą jak wiemy uda się zdobyć dzięki praktycznym ćwiczeniom. Zawodowi programiści znajdą na pewno w książce wiele ciekawych informacji związanych ze sposobem pisania skryptów. Jednocześnie ominą spore jej fragmenty, które opisują podstawy programowania, API czy operowanie na modelach danych.
Uważam, że książka stanowi bardzo ciekawą pozycję dla osób, które zaczynają swoją przygodę z programowaniem i automatyzacją. Dla osób mających już praktykę może stanowić kompendium do szybkiego odświeżenia wiedzy.