Case Study

Stworzenie autorskiego narzędzia wspierającego pracę inżynierów sieciowych

Konfiguracja sieci i diagnostyki w oparciu o Ansible i autorskie narzędzie do automatyzacji

Ręczna kofiguracja sieci oraz realizacja prostych zgłoszeń zajmowała dwuosobowemu działowi IT wiele godzin dziennie. Stworzenie narzędzia do obsługi prostych zadań pozwoliło na automatyzację części pracy i przeniesienie jej na dział Help Desk. Teraz nie potrzeba specjalisty sieciowca, żeby podłączyć drukarkę na odpowiednim porcie switcha lub szybko odszukać w sieci pożądane urządzenie.  

Architektura oparta o Ansible w naturalny sposób wprowadza wyrazisty podział zawiłego zagadnienia automatyzacji na mniejsze i bardziej zrozumiale zadania. 

Różnorodność dostępnych opcji i modułów pozwala na intuicyjne rozwijanie funkcjonalności w sposób swobodny i klarowny.  

Prostota budowy kolejnych modułów automatyzacji umożliwi projektowi szybko adaptować się do zmieniających się wyzwań i pozwoli sprostać w przyszłości dodatkowym oczekiwaniom.”  

– Jacek Ozga, Senior Automation Engineer, Grandmetric

Klient

  • Producent cementu, betonu i kruszyw 
  • 1100+ pracowników, 60 lokalizacji 

Usługi

  • Grandmetric Software Development 
  • Consulting technologiczny 

Technologie

Nasze zaangżowanie

  • 2 inżynierów Advanced Services 
  • 2 inżynierów oprogramowania 
  • Project Manager 

Wyzwanie – niewielki zespół IT i ręczne przeszukiwanie urządzeń końcowych 

Producent cementu posiadający fabryki w całej Polsce miał problem z zarządzaniem siecią w skali całej firmy. Brak odpowiedniej widoczności wolnych portów na urządzeniach czy konieczność konfiguracji z poziomu linii komend sprawiały, że nawet proste i powtarzalne zadania jak włączenie/wyłączenie portu były przekazywane do działu IT. Ponadto po zgłoszeniu problemu z urządzeniem inżynier musiał ręcznie przeszukiwać bazę urządzeń sieciowych w poszukiwaniu problemu, co przy skali przedsiębiorstwa okazywało się nie lada wyzwaniem. 

Rozwiązanie – zautomatyzowana konfiguracja sieci i urządzeń dzięki nowemu narzędziu

Odpowiedzią na narastające niezadowolenie działu IT oraz potrzebę skalowania zarządzania siecią było narzędzie (aplikacja), które zautomatyzuje konfiguracje urządzeń i pozwoli wykonywać proste zlecenia osobom, które nie są inżynierami sieci

Podstawowe funkcjonalności budowanej aplikacji: 

  1. Prosty i przejrzysty interfejs, który pozwoli się odnaleźć nietechnicznym pracownikom. 
  1. Możliwość wgrania szablonów konfiguracyjnych przez pracowników działu IT. 
  1. Konfigurowanie poszczególnych portów urządzeń sieciowych na podstawie wgranego wcześniej szablonu. 
  1. Konfigurowanie globalne urządzeń w danej lokalizacji na podstawie wgranych szablonów. 
  1. Wyszukiwane urządzania o zadanym adresie MAC. 
  1. Sygnalizacja niedziałających portów. 
  1. Możliwość sprawdzenia zgodności konfiguracji na poszczególnych urządzeniach z wzorcem. 

Jak podeszliśmy do tematu?

Analiza potrzeb i koncepcja narzędzia 

Po spotkaniu z klientem zrozumieliśmy, że brak działania spowoduje nie tylko trudności w zarządzaniu siecią, ale nasili rosnące już niezadowolenie obciążonych pracowników działu IT. 

Dlatego nadrzędnym celem projektu było zaprojektowanie systemu tak, żeby dział IT mógł wgrać konfigurację raz, a dział HelpDesk mógł z niej korzystać dla wielu urządzeń. Takie podejście eliminowało konieczność korzystania z linii komend, znajomość komend konfiguracyjnych i zapewniało skalowanie. 

Na tym etapie powstała koncepcja aplikacji oraz jej wstępny szkic (makieta). Poniżej przedstawiamy kilka wybranych ekranów z makiety.  

Konfiguracja pojedynczego przełącznika - ustawienie portu jako portu drukarki 
Rys. 1 Konfiguracja pojedynczego przełącznika – ustawienie portu jako portu drukarki 
Konfiguracja globalna
Rys. 2 Konfiguracja globalna 
Wyszukiwanie urządzenia po adresie MAC
Rys. 3 Wyszukiwanie urządzenia po adresie MAC 

Planowanie z zespołem Advanced Services 

Po uzyskaniu zielonego światła od klienta i ustaleniu priorytetów, przeszliśmy do szczegółowego planowania aplikacji. Tu bardzo nam pomógł fakt, że projektowanie i automatyzacja sieci klasy enterprise to zagadnienia, którymi zajmujemy się na co dzień. Bez wahania włączyliśmy naszych inżynierów sieci w etap projektowania.  

Dzięki temu mieliśmy pewność, że mechanizmy działania aplikacji będą zgodne z dobrymi praktykami sieciowymi, a zespół programistów będzie rozumiał sposób, w jaki klient będzie korzystał ze stworzonego narzędzia.  

Na tym etapie powstały: 

  • flow aplikacji, czyli schemat działania aplikacji, 
  • inwentaryzacja sieci klienta, czyli zebranie informacji o wszystkich; urządzaniach w sieci oraz ich konfiguracjach, 
  • skrypty konfiguracyjne (playbooki) dla pojedynczych urządzeń w sieci klienta, 
  • skrypty konfiguracyjne (playbooki) dla konfiguracji globalnej, 
  • docelowy projekt graficzny pierwszych widoków. 

Development aplikacji 

Zależało nam, żeby klient mógł jak najszybciej korzystać z pierwszych funkcjonalności konfiguracji sieci, dlatego podeszliśmy do programowania w sposób iteracyjny. Rozpoczęliśmy od budowy funkcjonalności o najwyższym priorytecie, a następnie cyklicznie spotykaliśmy się z klientem, żeby zademonstrować mu działanie kolejnych modułów aplikacji

Nieodłącznym elementem naszej pracy było też testowanie narzędzia w laboratorium sieciowym Grandmetric oraz na naszej infrastrukturze. 

Na tym etapie powstały: 

  • Architektura informacji aplikacji 
  • Lista wybranych technologii 
  • Projekty graficzne kolejnych widoków 
  • Scenariusze testowania 
  • Dokumentacja techniczna aplikacji 

Od strony architektury projekt składa się z trzech warstw: 

  • strona graficzna, frontend, która pozwala na interakcję z użytkownikiem; 
  • backend, który odpowiada za logikę działania systemu, tzn. wykonywanie odpowiednich akcji, operacje na bazie danych, przetwarzanie danych; 
  • executor, który dokonuje zmian lub odczytuje stan urządzeń sieciowych. 

Poniżej przedstawiamy zrzuty kilku przykładowych ekranów z powstałej aplikacji.

 

Konfiguracja sieci VLAN
Rys. 4 Konfiguracja sieci VLAN  
Rys. 5 Konfiguracja portów na switchu wraz z oznaczeniem ich zajętości  

Przekazanie aplikacji 

Praca nad projektem nie kończy się dla nas po przekazaniu aplikacji. Na etapie uruchomienia świadczymy intensywny support, obserwujemy też, jak użytkownicy po stronie klienta korzystają ze stworzonego narzędzia.   

Aplikacja automatyzująca konfiguracje będzie dalej rozwijana przez nas zespół, co da klientowi dostęp do kolejnych funkcjonalności oraz regularnych aktualizacji systemu.

Budowanie własnych narzędzi informatycznych – dobre praktyki 

1. Automatyzuj mądrze

Automatyzacja konfiguracji sieci i infrastruktury IT jest często pierwszym krokiem do transformacji cyfrowej w działach sieciowych. Często spotykamy się z chęcią automatyzowania wszystkiego od razu. To kusząca, ale nieefektywna perspektywa.  

Nie ma sensu zarządzać w sposób zautomatyzowany pojedynczym przełącznikiem czy routerem, ale jest sens automatyzować zarządzanie kilkudziesięcioma. 

Wybór odpowiednich obszarów do automatyzacji wymaga dokładnej analizy możliwości, kosztów i opłacalności inwestycji. 

2. Zadbaj o wiedzę domenową 

W klienckich projektach automatyzacji sieci mamy do czynienia z interesariuszami zarówno po stronie klienta (biznes i inżynierowie sieci), jak i po naszej stronie (zespoły deweloperski i Advanced Services). Sporym wyzwaniem może być pogodzenie dobrych praktyk w dziedzinie projektowania sieci z dobrym praktykami deweloperów. Pogodzenie różnych perspektyw widzenia jest jednak niezbędne do wypracowania wysokiej jakości rozwiązania.  

3. Wybierz odpowiednie narzędzia 

Naszym podstawowym narzędziem automatyzacji były skrypty (playbooki) Ansible. Uruchamianie ich w środowiskach wirtualnych opartych na kontenerach Docker pozwoliło na izolację między kontenerami, łatwość skalowania i prostotę wdrożenia.  

Na tę ostatnią miało również wpływ zastosowanie pipeline’u CI/CD, dzięki któremu zautomatyzowaliśmy wgrywanie najnowszych wersji oprogramowania na nasze środowisko bezpośrednio po zatwierdzeniu zmian w repozytorium przez dewelopera.  

4. Sprawdzaj, testuj, weryfikuj 

Im bardziej złożony projekt, tym więcej testów potrzeba, żeby przekonać się, czy wszystko działa jak należy. Regularne spotkania zespołu deweloperskiego z inżynierami Advanced Services i przedstawicielami klienta pozwoliły na bieżąco weryfikować założenia projektowe i wprowadzać niezbędne usprawnienia. Ponadto mechanizmy automatycznego testowania pozwoliły na utrzymanie wysokiej jakości kodu, kontrolę konwencji nazewnictwa czy sprawne tworzenie dokumentacji. 

Rezultaty wdrożenia

  • 5-krotne skrócenie czasu rozwiązania pojedynczego zgłoszenia 
  • Przekazanie prostych zadań do Help Desku (np. podłączenie drukarki na wolnym porcie, sprawdzenie statusu portów na urządzeniu)  
  • Inwentaryzacja sieci oraz łatwe zarządzanie z jednego miejsca 
  • Możliwość rozbudowy narzędzia o kolejne funkcjonalności, np. automatyczne rysowanie diagramów sieciowych 

Akcje wykonywane za pomocą aplikacji są kilkukrotnie szybsze niż konfiguracja wielu urządzeń ręcznie, a dodatkowo pozwalają uniknąć błędów podczas ręcznej konfiguracji.

Mateusz Buczkowski, Lider zespołu Software Development, Grandmetric 

Zastanawiasz się, czy możesz osiągnąć podobne rezultaty w Twojej sieci? 

Umów się na rozmowę z naszym Konsultantem Technicznym! 

Mateusz Buczkowski

Lider zespołu Software Development, Grandmetric 

Zobacz więcej

Cisco SD-WAN Offer


Grandmetric delivers Cisco SD-WAN
and SD-WAN as a service.
We provide full portfolio
of Cisco sdwan routers from
C1000, ISR and industrial series.

Get a Quote
Grandmetric