Stworzenie autorskiego narzędzia wspierającego pracę inżynierów sieciowych
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
Technologie
Nasze zaangżowanie
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.
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:
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.
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:
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:
Od strony architektury projekt składa się z trzech warstw:
Poniżej przedstawiamy zrzuty kilku przykładowych ekranów z powstałej 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.
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.
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.
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.
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.
„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