Menu

Region US

Grandmetric LLC
Brookfield Place Office
200 Vesey Street
New York, NY 10281
EIN: 98-1615498
Phone: +1 302 691 9410
info@grandmetric.com

Region EMEA

GRANDMETRIC Sp. z o.o.
ul. Metalowa 5, 60-118 Poznań, Poland
NIP 7792433527
+48 61 271 04 43
info@grandmetric.com

Case Study

Automatyzacja konfiguracji urządzeń sieciowych na bazie playbooków Ansible

Automatyzacja Ansible skraca czas reakcji na zgłoszenie o 80%

Ręczna konfiguracja sieci oraz realizacja powtarzalnych zgłoszeń zajmowała dwuosobowemu działowi IT wiele godzin. Stworzenie narzędzia do obsługi tych 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. Wykwalifikowani inżynierowie zyskali czas na rozwiązywanie zaawansowanych problemów.

Architektura oparta o Ansible w naturalny sposób dzieli złożoną automatyzację na mniejsze i bardziej zrozumiale zadania. 

Budowa kolejnych modułów pozwoli klientowi szybko adaptować się do zmieniających się wyzwań i sprostać dodatkowym oczekiwaniom.

Jacek Ozga, Senior Automation Engineer, Grandmetric

Klient

  • Producent w branży budowlanej
  • 1100+ pracowników, 60 lokalizacji 

Usługi

Technologie

  • Ansible
  • Docker
  • Python
  • React
  • CI / CD

Rezultaty wdrożenia

5-krotny wzrost szybkości 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 z jednego miejsca i ułatwione zarządzania 

Możliwość rozbudowy narzędzia o kolejne funkcjonalności, np. automatyczne rysowanie diagramów sieciowych 

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

Producent kruszywa 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. Wyszukiwanie urządzenia 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ł ją uruchamiać na wielu urządzeniach. 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 konfiguracji globalnej oraz konfiguracji pojedynczych urządzeń w sieci klienta, 
  • 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 i pomagamy użytkownikom po stronie klienta korzystać 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. 

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

    Skontaktuj się z nami

    Wyrażasz zgodę na kontakt telefoniczny w celu obsługi niniejszego zgłoszenia. Wyrażasz zgodę na otrzymywanie treści marketingowych, w tym newslettera od Grandmetric. Więcej informacji na temat przetwarzania i ochrony danych osobowych znajdziesz w polityce prywatności.

    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

    See also

    Grandmetric