W tym roku prowadzę sporo różnego rodzaju webinarów, elementem większości z nich jest demo rozwiązania, a niektóre całe moje wystąpienia były jednym kompletnym demo, bez żadnych slajdów. Do demonstracji rozwiązań sieciowych opartych o urządzenia Cisco używam Cisco Modeling Labs, wcześniej Cisco VIRL. Jak wiecie CML 2.0 nie przypadł mi do gustu, obecnie lista moich zarzutów co do wykonania i użyteczności GUI CML 2.0 jest jeszcze bardziej negatywna. Dlatego postanowiłem sam rozwiązać przynajmniej część z tych problemów. Wy będziecie obserwatorami, a może i uczestnikami procesu tworzenia tego narzędzia. Zanim jednak zaczniemy poznajmy zasady budowy i projektowania różnego typu narzędzi.
Podstawowe zasady budowy narzędzi automatyzacji (i nie tylko)
Zanim w kolejnym artykule przejdę do opisu tego, co moja aplikacja będzie robić, zacznijmy od kilku zasad. Powinniśmy się nimi kierować, gdy zaczynamy swoją przygodę z automatyzacją, lub rozpoczynając nowy projekt. Są to uniwersalne zasady odnoszące się do każdego projektu. W skrócie zapiszemy je jako poniższe reguły:
- Start small, grow big – nigdy nie porywajmy się na pisanie wielkiego narzędzia od razu. Zacznijmy od czegoś małego, rozwiązującego mały problem i rozbudowujmy dalej stworzone narzędzie.
- Sprecyzujmy jasno, jaki problem chcemy rozwiązać.
- Ustalmy jakie metryki będziemy używać, aby ocenić, czy problem został rozwiązany oraz skuteczność rozwiązania. Taką metryką może być na przykład porównanie czasu potrzebnego na wykonanie tej samej czynności w sposób manualny i automatyczny.
- Używajmy dostępnych narzędzi czy bibliotek. Starajmy się nie tworzyć mechanizmów, które są publicznie dostępne, często darmowe, a co najważniejsze wszechstronnie przetestowane i wykorzystywane w innych projektach nie tylko przez nas.
- Na każdym kroku weryfikujmy swoje koncepcje. Poddawajmy w wątpliwość przyjęte rozwiązania, sprawdzajmy, czy są one bezpieczne i funkcjonalne. Może jakieś zadanie można zaprogramować lepiej?
- Dokumentujmy, standaryzujmy i testujmy każdą małą zmianę.
- Pamiętajmy o bezpieczeństwie na każdym kroku, zarówno kodu aplikacji, jak i bezpiecznym jej uruchamianiu.
Na konferencji PLNOG22 opowiadałem o tym, w jaki sposób podejść do procesu projektowania i budowania własnych narzędzi automatyzacji. Tam też wymieniałem między innymi powyższe zasady budowy tego typu własnych narzędzi. Nagranie tego wystąpienia możesz obejrzeć poniżej.