Rozpoznanie
Pierwszym etapem wdrożenia automatyzacji jest wybranie procesów, które będzie można zautomatyzować. Warunkiem jest, by były to procesy powtarzalne. Oczywiście największe korzyści uzyskamy, gdy wybierzemy także procesy czasochłonne.
Główne procesy wykonywane przez naszych konsultantów na systemach klientów przez nas administrowanych wytypowane do automatyzacji to aktualizacja systemów operacyjnych, aktualizacja SAP Host Agentów oraz SAP Diagnostic Agent – choć nie poprzestajemy na tym i cały czas szukamy kolejnych procesów do optymalizacji.
Już widzimy potencjał w automatyzacji procesów audytowych. Regularne zbieranie danych o wybranych parametrach systemów operacyjnych, baz danych czy systemów SAP znacznie skraca czas przygotowywania i analizowania danych audytowych.
Klasyczne podejście
Zanim opiszemy, w jaki sposób optymalizujemy procesy administracyjne, spróbujmy oszacować, jak bardzo czasochłonne są wspomniane wyżej zadania. W celu łatwego przeliczania zakładamy, że nasze środowisko składa się z pięciu klasycznych pejzaży, każdy zawierający trzy hosty z systemami SAP, po jednym systemie rozwojowym, testowym i produkcyjnym. Bazy danych znajdują się na tych samych hostach. Mamy zatem w sumie pięć systemów rozwojowych, pięć testowych oraz pięć produkcyjnych. Dla zachowania czytelności skupimy się na jednym zadaniu, którym jest najprostsza aktualizacja systemu operacyjnego.
Proces aktualizacji OS w kontekście systemów SAP należy podzielić na co najmniej dwie iteracje: prace na systemach dev/tst oraz prace na systemach prd. Okres pomiędzy tymi zadaniami służy oczywiście obserwacji zachowania systemów po aktualizacji systemów operacyjnych oraz wykonaniu testów działania baz danych i systemów SAP. W razie jakiejkolwiek nieprawidłowości konieczna jest poszerzona analiza i odnalezienie źródła problemu oraz jego rozwiązanie.
Aktualizacja konkretnego hosta wymaga wykonania szeregu zadań w określonej kolejności. Poniżej przedstawiamy niezbędne, naszym zdaniem, minimum, jakie musi zostać wykonane:
- Powiadomienie użytkowników o pracach i niedostępności;
- Weryfikacja poprawności kopii zapasowej systemu;
- Weryfikacja działania systemu SAP, bazy danych oraz OS przed pracami;
- Zaplanowanie okna serwisowego w narzędziach monitorujących;
- Wyłączenie systemu SAP;
- Wyłączenie bazy danych;
- Wykonanie migawki systemu – snapshot;
- Restart OS przed pracami;
- Aktualizacja systemu;
- Restart OS po aktualizacjach;
- Weryfikacja systemu operacyjnego po parach;
- Uruchomienie bazy danych;
- Uruchomienie systemu SAP;
- Weryfikacja systemu SAP;
- Jeśli nie stwierdzono nieprawidłowości, usunięcie migawki.
Całość prac wymaga poświęcenia czasu jednej osoby na poziomie około 150 minut dla każdego systemu. Oczywiście część zadań można wykonywać równolegle, zatem zakładamy, że czas potrzebny na zaktualizowanie jednego systemu to dwie godziny. Do aktualizacji systemów dev/tst potrzebujemy więc 20 godzin pracy, natomiast aktualizacja systemów prd to kolejne 10 godzin pracy. W sumie to 30 godzin pracy nad pełnym pejzażem systemów SAP. Zapamiętajmy tę wartość, przyda nam się w dalszej części.
Dostępne narzędzia
Liczba narzędzi i technologii, z których możemy korzystać, jest bardzo duża. Szukając optymalnych dla naszych potrzeb oraz licencyjnie zgodnych z naszym modelem działania, zdecydowaliśmy się na Ansible wspierany przez AWX, który korzysta z naszego repozytorium GIT.
Ansible pozwala na równoległe zarządzanie wieloma systemami oraz zadaniami w kontrolowany sposób, a dzięki rozszerzeniu w postaci usługi AWX otrzymujemy dodatkowe funkcjonalności, na przykład możliwość cyklicznego, automatycznego planowania zadań czy wykonywania wielu zadań jednocześnie z poziomu jednego narzędzia i jego centralnej konsoli. Istotą narzędzia Ansible są scenariusze, które mogą korzystać z własnych wbudowanych modułów oraz wtyczek, ale również z zewnętrznych skryptów. To daje konsultantom oraz administratorom narzędzia o praktycznie nieograniczonych możliwościach, które realizują powtarzalne czynności na nieograniczonej liczbie systemów równolegle.
Co ważne, aby można było w łatwy sposób zarządzać i realizować zadania przy użyciu Ansible, scenariusze oraz skrypty zewnętrzne powinny być współdzielone między konsultantami i administratorami. Tutaj z pomocą przychodzi nam narzędzie GIT do współdzielenia repozytorium. Dzięki niemu każdy z konsultantów i administratorów współpracujących nad zadaniami dla narzędzia Ansible ma na bieżąco podgląd do aktualnej wersji scenariuszy oraz skryptów, może wprowadzać w nich poprawki oraz rozbudowywać je o nowe funkcjonalności. Dodatkowo sam Ansible może być zsynchronizowany ze wskazanym repozytorium GIT, co daje mu automatyczny dostęp do aktualnych wersji scenariusza oraz skryptów.
Automatyzacja u klienta
Automatyzację aktualizacji OS z sukcesem wykorzystujemy we współpracy z jednym z naszych klientów. Wysokie standardy bezpieczeństwa, jakie utrzymywane są w firmie klienta, generowały duże obciążenie naszych zespołów, dlatego właśnie tam pilotażowo wdrożyliśmy rozwiązania automatyzujące. Po stronie klienta nie były wymagane żadne zmiany infrastrukturalne, ponieważ cała niezbędna infrastruktura do uruchomienia narzędzi automatyzujących znajduje się w Data Center All for One. Jedyna zmiana konfiguracyjna, jaka była wymagana na hostach klienta, to powołanie użytkownika z odpowiednimi uprawnieniami na poziomie systemu operacyjnego.
Po otrzymaniu danych logowania rozpoczęliśmy testy oraz zbudowaliśmy bazę parametrów wejściowych, które sterują procesem. Pierwsza iteracja odbyła się wyłącznie na kilku wybranych systemach rozwojowych, by w kolejnych pracach powiększać zakres hostów objętych automatycznym procesem aktualizacji OS.
Obecnie tą metodą realizujemy większość zadań aktualizacji OS i pracujemy nad dalszym rozwojem naszych narzędzi, by w drugim kwartale 2023 roku już wszystkie systemy aktualizować w ten sposób.
Automatyzacja sprzyja bezpieczeństwu
Jako odpowiedzialny za krytyczne systemy Grupy Amica popieram inicjatywy przyspieszające powtarzalne czynności administracyjne, które stały się krytyczne z racji coraz większych zagrożeń bezpieczeństwa. All for One Poland realizuje opisaną automatyzację w Grupie, wspierając nasze dążenia do zapewniania najlepszego możliwego zabezpieczenia wewnętrznych systemów. Jako IT wdrożyliśmy system zarządzenia poprawkami na systemach operacyjnych Linux, na których uruchomione są nasze główne systemy, umożliwiając nadzór nad dystrybuowanymi poprawkami i dając All for One możliwość lepszego zarządzania procesem w tym aspekcie. Dodatkowo również nasz centralny system monitoringu weryfikuje postępy prac i przekazuje do dedykowanego zespołu IT informację o problemach i brakach.
Grzegorz Smolański, Critical IT Infrastructure Manager, IT Department, Amica SA
Zyski
Aby wypracować docelowe rozwiązanie, poświęciliśmy wiele godzin pracy, spotkań i rozmów. Zaczynając prace, nie zakładaliśmy, że uda nam się przygotować proces całkowicie bezobsługowy – dziś już wiemy, że jest to w pełni osiągalne. Niemniej już teraz możemy pochwalić się zyskami z takiego podejścia.
Użytkownicy wiedzą o planowanych pracach z kilkudniowym wyprzedzeniem. Na przygotowanie prac dla 15 systemów poświęcamy w sumie 2 godziny. W zakres tych prac wchodzą weryfikacja backupu, systemów operacyjnych oraz pracy wybranych systemów SAP. Następnie planujemy aktualizację z wykorzystaniem AWX. Zaplanowanie prac nie zajmuje więcej niż 15 minut, ponieważ obecnie mamy już wypracowanie scenariusze, które wystarczy zaplanować. Prace te można wykonać wcześniej, a nie jak w podejściu klasycznym w czasie wyznaczonego okna. Następnie skrypty wykonują się równolegle i automatycznie bez udziału administratora w zadanym przez nas terminie. Oczywiście nie pozostawiamy prac przypadkowi. Nad ich przebiegiem czuwa konsultant, który reaguje dopiero na sygnał automatu. W razie nieprawidłowości automat natychmiast przerywa prace dla problematycznego hosta i wysyła powiadomienie.
Dzięki wykorzystaniu automatyzacji procesu aktualizację naszego hipotetycznego środowiska pięciu systemów rozwojowych oraz pięciu systemów testowych realizujemy w ciągu 30–60 minut. Przebieg procesu dla systemów produkcyjnych również nie przekracza 30 minut. Uwzględniając dodatkową weryfikację systemów po pracach, trwającą ok. 2 godziny, otrzymujemy wynik: pięć godzin prac dla całego pejzażu. To najlepsza miara optymalizacji kosztów, jaką niesie automatyzacja.
Zysków jest więcej: skracamy do granic możliwości okna serwisowe oraz niedostępności systemów dla klienta, gdyż skrypty nie czekają na ingerencję człowieka, ale samodzielnie analizują zastaną sytuację i działają.