W sobotę o szóstej rano dzwoni telefon. Strona firmy nie ładuje się przez HTTPS, przeglądarka pokazuje ostrzeżenie o certyfikacie, a klienci zgłaszają, że nie mogą złożyć zamówienia. Administrator, który stawiał to środowisko, jest na urlopie poza zasięgiem. Druga osoba loguje się na serwer i odkrywa, że certyfikat wygasł cztery godziny wcześniej.
Odnowienie miało działać z crona, ale zadanie zostało wyłączone pół roku temu przy okazji innej zmiany i nikt tego nie zapisał. Nie wiadomo, czy certyfikat obsługuje tylko ten host, czy jeszcze trzy inne usługi za tym samym reverse proxy. Nie wiadomo, gdzie leży klucz prywatny i czy odnowienie nie wymaga ręcznego przeładowania nginx oraz haproxy w określonej kolejności.
Sama naprawa zajmie piętnaście minut. Ustalenie, co właściwie naprawić i czego przy okazji nie uszkodzić, zajmie dwie godziny.
To nie jest wyjątkowa historia. To typowy obraz środowiska, które rozwijało się latami i którego nikt nie widzi już w całości. Zależności między usługami, właściciele systemów, sposób wykonywania backupów, adresacja, wpisy DNS, certyfikaty, dostępy administracyjne, konta techniczne integracji z systemem księgowym. Każdy z tych elementów istnieje, działa i przez większość czasu nie wymaga uwagi.
Problem polega na tym, że pełna wiedza o nich nie istnieje w żadnym miejscu, do którego można sięgnąć pod presją. Jest rozproszona po pamięci kilku osób, historii poleceń w terminalu, prywatnych notatkach i wątkach na komunikatorze. Dopóki środowisko działa, brak obrazu całości zwykle nie przeszkadza. Ujawnia się dopiero podczas awarii, migracji albo wtedy, gdy odchodzi osoba, która jako jedyna wiedziała, jak środowisko jest poskładane.
Dlaczego firmy tracą wiedzę o własnej infrastrukturze
Środowiska IT rzadko powstają w jednym projekcie z pełną dokumentacją. Najczęściej rosną etapami. Najpierw jeden serwer pod stronę i pocztę. Potem osobna maszyna na aplikację księgową, bo lepiej ją oddzielić. Później VPS u zewnętrznego dostawcy pod system, który miał być tymczasowy. Migracja części usług na VMware, gdy firma kupiła własny sprzęt. Kilka kontenerów dorzuconych przy okazji nowej aplikacji. Każda z tych decyzji mogła być uzasadniona w swoim czasie. Razem tworzą środowisko, którego nikt nie zaprojektował jako całości i którego nikt później nie opisał.
Wiedza zostaje w głowach administratorów, bo na bieżąco to wystarcza. Osoba, która stawiała serwer, pamięta, że aplikacja działa pod niestandardowym portem, że baza wymaga restartu w określonej kolejności, że jeden ze skryptów raportowych chodzi z crona o trzeciej w nocy i czyta dane z katalogu na innym hoście. Dopóki ta sama osoba utrzymuje środowisko, wszystko wydaje się oczywiste. Dokumentacja wygląda wtedy jak dodatkowa praca, bo „przecież wiadomo, jak to działa”.
Zmiany wykonywane pod presją pogłębiają problem. Pilna poprawka w produkcji rzadko kończy się aktualizacją opisu, bo opisu zwykle nie ma. Ktoś dodaje wpis DNS, otwiera port na firewallu, zakłada konto techniczne dla nowej integracji, modyfikuje regułę w crontabie. Środowisko zmienia kształt, a jedynym śladem tych zmian bywa historia w ~/.bash_history.
Na współdzielonym koncie taka historia jest jednak słabym źródłem prawdy. Zapis jest zależny od użytkownika, równoległe sesje potrafią nadpisywać wpisy, a HISTSIZE i rotacja powodują, że starsze polecenia znikają. Po kilku miesiącach nie ma już czego analizować.
Osobna kategoria to przejmowanie środowisk po innych firmach lub po poprzednich administratorach. Dostajesz dostęp do kilkunastu serwerów, listę adresów IP i zdanie, że „reszta jest w mailach”. Nie ma mapy zależności, nie ma opisu, co od czego zależy, nie wiadomo nawet, które maszyny są jeszcze używane. Zaczyna się archeologia: czytanie konfiguracji, zaglądanie w crontaby, sprawdzanie procesów, portów i logów, ostrożne wyłączanie usług, żeby zobaczyć, czy ktoś zauważy.
Dobrze prowadzona administracja serwerami Linux przed awarią zaczyna się właśnie od tego: od odtworzenia i zapisania stanu rzeczywistego, zanim trzeba będzie pracować pod presją.
Czym naprawdę jest CMDB
CMDB, czyli baza zasobów i konfiguracji środowiska, w wielu firmach kojarzy się z rozbudowanym systemem ITIL, formularzami i procesami, których nikt nie chce wypełniać. W praktyce operacyjnej chodzi o coś znacznie prostszego: o jedno miejsce, w którym wiadomo, co istnieje w środowisku, jak jest połączone i kto za to odpowiada.
CMDB w realnym wydaniu obejmuje serwery fizyczne, maszyny wirtualne, hosty ESXi i poszczególne VM, instancje VPS u zewnętrznych dostawców, kontenery oraz usługi działające na tych maszynach. Obejmuje adresację sieciową, wpisy DNS, domeny wraz z datami wygaśnięcia i informacją, gdzie są delegowane. Obejmuje certyfikaty TLS, sposób ich odnawiania i terminy ważności. Obejmuje backup: co jest kopiowane, dokąd trafiają kopie, jak długo są przechowywane i kiedy ostatnio sprawdzano odtwarzanie.
W praktycznym CMDB powinien być też monitoring: co jest obserwowane, jakie alerty są skonfigurowane i kto je odbiera. Powinny być zależności między usługami, osoby odpowiedzialne za poszczególne systemy, konta techniczne i integracje z systemami zewnętrznymi. Łatwo tu zapomnieć o VPS-ach rozproszonych po kilku panelach różnych dostawców, bo nie stoją w serwerowni i nie widać ich na żadnej liście sprzętu, a często trzymają realne usługi produkcyjne.
Lista jest długa, ale celem nie jest skatalogowanie każdego pliku konfiguracyjnego. Celem jest możliwość szybkiego działania, gdy coś przestaje działać. Kiedy o drugiej w nocy ulega awarii jedna maszyna wirtualna, liczą się odpowiedzi na konkretne pytania. Co na niej działało? Kto z tego korzysta? Co przestanie działać razem z nią? Czy jest backup i z którego punktu? Czy można ją odtworzyć ze snapshotu, czy trzeba stawiać usługę od nowa?
CMDB to miejsce, w którym te odpowiedzi są zapisane, zamiast być rekonstruowane w trakcie incydentu.
Warto też jasno oddzielić CMDB od runbooków. CMDB odpowiada przede wszystkim na pytania: co istnieje w środowisku, kto za to odpowiada i od czego dana usługa zależy. Runbook odpowiada na inne pytanie: co dokładnie zrobić, gdy konkretny alert, awaria albo procedura odtworzeniowa już trwa. Ten drugi obszar rozwija osobny materiał o runbookach IT i dokumentacji operacyjnej podczas awarii.
Nie chodzi więc o biurokrację ani o spełnienie wymogu audytu. Dobra dokumentacja zasobów skraca czas reakcji, bo zamiast szukać podstawowych faktów w trakcie awarii, można od razu przejść do diagnozy i działania.
Jak wygląda środowisko bez dokumentacji
Środowisko bez dokumentacji ma kilka charakterystycznych objawów i większość administratorów rozpozna je natychmiast.
Pierwszy objaw to nieznane zależności. Restart jednej usługi pociąga za sobą awarię trzech innych, o których nikt nie pomyślał. Klasyczny przykład: aplikacja korzysta z wewnętrznego DNS do rozwiązania nazwy serwera bazy danych. Ktoś przenosi DNS na nową maszynę, stary serwer wyłącza po tygodniu, bo „już nic na nim nie ma”, i nagle część aplikacji traci dostęp do bazy, bo ich nazwy nie da się rozwiązać.
Zdarza się też, że stary serwer wygląda na nieużywany, ale raz w miesiącu obsługuje raport dla księgowości albo integrację z systemem fakturowania. W logach prawie nic się nie dzieje, monitoring milczy, nikt nie zgłasza problemu. Dopiero wyłączenie maszyny pokazuje, że pozornie martwy element nadal miał znaczenie biznesowe.
Stąd bierze się drugi objaw: strach przed aktualizacjami. Skoro nie wiadomo dokładnie, co zależy od czego, każda zmiana jest ryzykiem. Serwery zostają na starych wersjach systemu i pakietów, bo nikt nie chce ich dotykać. Pojawiają się maszyny z dystrybucją po końcu wsparcia, bez łatek bezpieczeństwa, działające tylko dlatego, że na razie nic złego się nie wydarzyło.
Ten paraliż to bezpośredni koszt braku wiedzy. Uporządkowane podejście do aktualizacji Linux w produkcji wymaga najpierw wiedzy o tym, co na danym hoście działa i co może ucierpieć po zmianie.
Z tego samego źródła wynikają nieużywane serwery, których nikt nie wyłącza, bo nikt nie ma pewności, czy są zbędne. Maszyna działa latami, zużywa zasoby, ma otwarte porty i dawno nieaktualizowany system, a jej rola pozostaje niejasna. Czasem okazuje się, że obsługuje jeden proces pomocniczy, o którym nikt nie pamiętał aż do momentu, gdy został zatrzymany.
Osobny zestaw problemów dotyczy nazw i certyfikatów. Stare wpisy DNS wskazują na nieistniejące hosty, adresy IP przejęte przez inne usługi albo zewnętrzne serwisy, z których firma już nie korzysta. Taki rekord zostaje w strefie przez lata i może stać się realnym ryzykiem, szczególnie gdy wskazuje na zasób poza kontrolą firmy.
Do tego dochodzą certyfikaty bez ewidencji terminów ważności. Taki certyfikat zwykle wygasa w najgorszym możliwym momencie: w weekend, w święto albo wtedy, gdy nie ma pod ręką osoby, która wie, jak działa proces odnawiania.
Najbardziej dotkliwa kategoria to dostęp i odpowiedzialność. Konta po byłych pracownikach potrafią żyć latami: klucz SSH w ~/.ssh/authorized_keys należący do administratora, który odszedł rok temu, albo aktywne konto z uprawnieniami sudo, którego nikt nie odebrał, bo nikt nie prowadził listy. To temat bezpośrednio związany z zarządzaniem dostępami uprzywilejowanymi w Linux i IT: bez ewidencji dostępów nie da się ich kontrolować ani odbierać.
Dochodzi do tego backup, którego nikt nie testował. Raport kończy się statusem sukcesu, archiwa rosną na repozytorium, a przy odtwarzaniu okazuje się, że kopia obejmuje pliki aplikacji, ale nie obejmuje zrzutu bazy. Albo zawiera dane niespójne, bo była robiona na działającej bazie bez mechanizmu spójnego snapshotu. W przypadku MySQL może to oznaczać brak --single-transaction, brak kontrolowanego zatrzymania zapisu albo brak świadomie użytego FLUSH TABLES WITH READ LOCK.
Na końcu pojawia się niejasna odpowiedzialność. Awaria trwa, a pierwsze minuty schodzą na ustalanie, kto w ogóle powinien się nią zająć i czy to jest system firmy, działu IT, dostawcy aplikacji, czy jeszcze zewnętrznego hostingu. Często ostatnim śladem prawdziwego stanu środowiska jest Shadow IT w firmie: usługi, konta i integracje uruchamiane poza formalnym utrzymaniem, które podczas awarii zachowują się jak niewidzialne zależności.
Co powinno znaleźć się w dokumentacji infrastruktury
Dokumentacja środowiska nie musi opisywać każdego szczegółu. Powinna opisywać to, co jest potrzebne do utrzymania, diagnozy, zmiany i odtworzenia usług. W praktyce minimalny, ale realnie użyteczny zestaw obejmuje kilka obszarów.
Hosty i usługi. Serwery fizyczne, maszyny wirtualne, hosty ESXi, instancje VPS i kontenery, wraz z rolą każdego z nich, systemem operacyjnym i wersją dystrybucji, listą usług biznesowych i technicznych, lokalizacją logów i konfiguracji oraz powiązanymi zadaniami cron i timerami systemd.
Adresacja sieciowa. Adresy IP, sieci wewnętrzne, VLAN-y, reguły firewalla, tunele VPN, mapowanie portów na reverse proxy oraz informacja, które adresy są krytyczne dla działania usług.
DNS i domeny. Strefy i dostawca DNS, osoby mające dostęp do stref, delegacje, rejestrator domen, daty wygaśnięcia rejestracji, kluczowe rekordy oraz informacja, które aplikacje korzystają z nazw, a które z twardo wpisanych adresów IP.
Certyfikaty. Wszystkie certyfikaty TLS, daty ważności, sposób odnawiania, lokalizacja kluczy prywatnych, lista usług korzystających z danego certyfikatu oraz osoba odpowiedzialna za reakcję na alert o zbliżającym się końcu ważności.
Backup. Co jest objęte kopią, jak często, dokąd trafia, jak długo jest przechowywane, kto ma dostęp i kiedy ostatnio testowano odtwarzanie.
Monitoring. Co jest obserwowane, jakie alerty są skonfigurowane, dokąd trafiają, kto je odbiera i co oznaczają. Monitoring bez powiązania z dokumentacją często pokazuje objaw, ale nie pomaga szybko dojść do właściciela usługi i jej zależności.
Zależności aplikacji. Które usługi zależą od których, co przestanie działać po wyłączeniu danego elementu, gdzie są bazy danych, kolejki, zewnętrzne API, serwery DNS, mechanizmy uwierzytelniania i systemy pomocnicze.
Dostęp SSH i konta uprzywilejowane. Model dostępu, lista kont osobistych i technicznych, lokalizacja kluczy, procedura odbierania dostępu, dostęp awaryjny oraz zasady użycia kont z podwyższonymi uprawnieniami.
Procedury odtworzeniowe. Krok po kroku, jak przywrócić każdą krytyczną usługę, z którego punktu, na jaki host i jak potwierdzić poprawność działania.
Dostawcy usług. Rejestrator domen, dostawcy VPS, hostingu, łącza, DNS, usług pocztowych i wsparcia aplikacyjnego, wraz z kanałami zgłoszeń awarii i informacją, kto ma dostęp do paneli.
To, co wyróżnia dobrą dokumentację, to nie objętość, lecz aktualność i opis wyjątków: niestandardowych portów, ręcznych obejść, zależności ukrytych w konfiguracji, procesów uruchamianych cyklicznie oraz elementów, które faktycznie decydują o ciągłości działania.
Dlaczego problemy wychodzą podczas migracji i awarii
Brak dokumentacji nie przeszkadza na co dzień. Daje o sobie znać w momentach przejściowych, gdy środowisko trzeba zmienić, przenieść albo przywrócić.
Migracja środowiska VMware jest dobrym przykładem. Przenosisz maszyny wirtualne na nowy klaster ESXi albo do innej serwerowni. Wszystko wygląda dobrze, dopóki nie okaże się, że jedna z VM miała przypisany konkretny adres MAC, od którego zależała licencja aplikacji. Albo że dwie maszyny komunikowały się przez wewnętrzną sieć, która na nowym środowisku ma inną adresację. Albo że maszyna trzymała część danych na współdzielonym datastore montowanym po NFS, którego na nowym klastrze nikt nie podłączył, więc po migracji system wstaje, ale z pustym katalogiem danych.
Zdarza się też, że snapshot użyty jako punkt migracji był wykonany w trakcie zapisu do bazy i dane są niespójne. Każdy z tych problemów wynika z zależności, której nikt nie zapisał albo nie zweryfikował przed zmianą. Solidne przygotowanie migracji dużego środowiska IT polega w dużej mierze właśnie na odtworzeniu i sprawdzeniu tych zależności, zanim cokolwiek zostanie ruszone.
Przenoszenie pojedynczych usług ma ten sam problem w mniejszej skali. Aplikacja trafia na nowy serwer, wpis DNS zostaje zmieniony, ale część integracji nadal łączy się ze starym adresem, bo miała go wpisanego na sztywno w konfiguracji. Bez dokumentacji takie miejsce znajduje się dopiero wtedy, gdy integracja przestaje działać.
Awaria sprzętowa pokazuje problem jeszcze wyraźniej. Pada dysk w serwerze fizycznym albo cały host ESXi. Trzeba odtworzyć usługi na innym sprzęcie. Bez dokumentacji nie wiadomo, co dokładnie tam działało, w jakiej kolejności to uruchamiać i czego potrzebuje do startu. Czas przywracania rozciąga się z godzin na dni, bo zamiast odtwarzać usługę, najpierw trzeba rekonstruować wiedzę.
Najtrudniejszy scenariusz to ransomware. Zaszyfrowane maszyny, niedostępne usługi, presja czasu i często uszkodzone lub zaszyfrowane backupy, jeśli były trzymane w tej samej sieci. W takiej sytuacji dokumentacja środowiska decyduje o tym, czy odtwarzanie przebiega według planu, czy jest serią decyzji podejmowanych bez pełnego obrazu sytuacji.
Pierwsze decyzje mają wtedy ogromne znaczenie. Dlatego wcześniej trzeba przygotować się do tego, co opisuje incydent bezpieczeństwa Linux: pierwsze 60 minut. To, co zostanie zrobione w pierwszej godzinie, często przesądza o możliwości odzyskania danych, zachowania śladów i późniejszego wyjaśnienia zdarzenia.
Wspólny mianownik wielu takich sytuacji to zmiana kadrowa. Odchodzi jedyny administrator znający środowisko i razem z nim znika praktyczna wiedza, której nie zapisano. Następca dostaje hasła i listę serwerów, ale nie dostaje obrazu, jak to wszystko współpracuje. Brak dokumentacji w każdym z tych przypadków robi to samo: wydłuża czas przywracania usług, czasem wielokrotnie.
Dokumentacja nie musi być rozbudowanym systemem
Częsta wymówka brzmi: nie mamy dużego systemu CMDB, więc nie ma sensu zaczynać. To błędne założenie. Dla wielu małych i średnich firm rozbudowany system zarządzania zasobami jest przerostem formy nad treścią. Wystarczą narzędzia, które zespół już zna i których będzie realnie używał.
Jest tylko jeden warunek: dokumentacja krytyczna nie może zależeć wyłącznie od systemu, który sama opisuje. Procedura odtworzenia środowiska zapisana tylko na serwerze, który właśnie zawiódł, jest bezużyteczna dokładnie w chwili, gdy jest najbardziej potrzebna. Kopia musi być dostępna z zewnątrz: w repozytorium poza tą infrastrukturą, w wydruku w szafie, na dysku poza siecią produkcyjną albo w innym kontrolowanym miejscu. To samo dotyczy haseł awaryjnych i dostępu do paneli dostawców.
Po spełnieniu tego warunku wiki firmowe albo repozytorium plików Markdown w Git pokrywa dużą część potrzeb. Pliki tekstowe są przeszukiwalne, wersjonowane, mają historię zmian i działają nawet wtedy, gdy część infrastruktury nie odpowiada. Git pokazuje, kto i kiedy zmienił opis, co pomaga ustalić, czy procedura została zaktualizowana razem z konfiguracją. Prosty arkusz z listą hostów, adresów, certyfikatów i terminów też jest lepszy niż brak czegokolwiek, o ile jest aktualizowany.
Jeżeli środowisko jest większe, można sięgnąć po lekki system ewidencji zasobów albo narzędzie typu NetBox do dokumentowania sieci i hostów. To dobry kierunek, gdy liczba elementów przekracza możliwości ręcznego utrzymania w plikach. Samo narzędzie nie rozwiąże jednak problemu, jeśli nikt nie będzie pilnował jakości danych.
Najważniejsza nie jest forma, lecz aktualność. Dokumentacja opisująca stan sprzed dwóch lat jest gorsza od jej braku, bo daje fałszywe poczucie bezpieczeństwa. Ktoś podejmie decyzję na podstawie nieaktualnego opisu i właśnie wtedy popełni błąd.
Część danych warto generować automatycznie: listę maszyn z VMware, terminy certyfikatów z prostego skryptu, daty wygaśnięcia domen z whois, informacje o otwartych portach z kontrolowanego skanu, listę usług z systemd. Reguła jest prosta: to, co da się wiarygodnie odpytać automatycznie, nie powinno być przepisywane ręcznie.
Jak zacząć porządkowanie środowiska
Porządkowanie nie musi być dużym projektem. Lepiej zacząć od usług krytycznych i rozszerzać zakres etapami.
-
Zidentyfikuj usługi krytyczne. Najpierw wypisz, co musi działać, żeby firma funkcjonowała: sprzedaż, faktury, poczta, główna aplikacja, dostęp do danych, system zgłoszeń, dostęp VPN. To te systemy, których awaria zatrzymuje pracę albo bezpośrednio wpływa na klientów.
-
Określ właścicieli. Do każdej krytycznej usługi przypisz osobę, zespół albo dostawcę odpowiedzialnego za utrzymanie. Jeśli nie da się jednoznacznie wskazać właściciela, to już jest problem do rozwiązania. Podczas awarii taka usługa będzie krążyć między osobami, zanim ktoś podejmie decyzję.
-
Zbuduj mapę zależności. Dla każdej krytycznej usługi zapisz, od czego zależy i co zależy od niej. Baza danych, DNS, kolejka, system uwierzytelniania, zewnętrzne API, łącze, reverse proxy, certyfikat, konto techniczne. Nie musi to być rozbudowany diagram. Wystarczy lista, z której jasno wynika, co stanie się po awarii danego elementu.
-
Zweryfikuj backupy. Sprawdź nie tylko, czy backup się wykonuje, lecz czy da się go odtworzyć. Weź ostatnią kopię krytycznej usługi i odtwórz ją w środowisku testowym albo na osobnej maszynie. Jeśli się uda, masz dowód. Jeśli nie, lepiej dowiedzieć się teraz. Szerzej rozwija ten temat materiał o backupie i odtwarzaniu po awarii: kopia, której odtworzenia nikt nie przećwiczył, jest tylko założeniem, że dane da się przywrócić.
-
Przejrzyj dostępy. Sprawdź konta i klucze SSH na krytycznych hostach. Usuń konta byłych pracowników, zidentyfikuj klucze nieznanego pochodzenia, sprawdź, kto ma
sudo, kto ma dostęp do paneli dostawców i kto może zmieniać DNS. Zapisz, kto powinien mieć dostęp i przez jaki mechanizm. -
Sprawdź monitoring. Upewnij się, że krytyczne usługi są monitorowane i że alerty trafiają do osoby, która może zareagować. Monitoring powinien pilnować nie tylko obciążenia hosta, ale też rzeczy, które często zaskakują: końca ważności certyfikatu TLS, braku miejsca na dysku, zatrzymanego backupu, niedostępności endpointu aplikacji, problemu z DNS albo niedziałającej kolejki. Dobrze prowadzony monitoring infrastruktury IT bez szumu powinien być powiązany z dokumentacją: alert ma prowadzić do opisu, co sprawdzić w pierwszej kolejności.
-
Aktualizuj dokumentację przy zmianach. To krok, który decyduje o całej reszcie. Każda zmiana produkcyjna powinna kończyć się pytaniem, czy trzeba zaktualizować opis hostów, mapę zależności, listę dostępów, certyfikaty, DNS albo procedurę odtwarzania. Bez tego nawet dobra dokumentacja zestarzeje się w kilka miesięcy.
Dobrym kryterium na start jest prosta zasada: opisuj to, co ktoś inny musiałby wiedzieć, gdyby dziś w nocy miał przejąć reakcję na awarię zamiast ciebie.
Najczęstsze błędy
Pierwszy błąd to dokumentacja tworzona dopiero po awarii. Powstaje opis jednego incydentu, często oderwany od reszty środowiska, i po kilku miesiącach nikt nie wie, czy nadal jest aktualny. Dokumentacja powinna powstawać blisko codziennej pracy, a nie wyłącznie jako reakcja na kryzys.
Drugi błąd to wiedza skupiona w jednej osobie. Nawet bardzo dobry administrator bywa na urlopie, jest chory albo zajęty inną awarią. Jeśli tylko on wie, jak działa środowisko, firma ma pojedynczy punkt awarii nie na poziomie sprzętu, lecz na poziomie wiedzy. Ten punkt bywa trudniejszy do odtworzenia niż serwer.
Trzeci błąd to brak aktualizacji. Dokumentacja, której nikt nie poprawia po zmianach, szybko przestaje odzwierciedlać rzeczywistość. Najtrudniejsza jest sytuacja, w której opis wygląda wiarygodnie, ale jest już nieaktualny. Wtedy ktoś podejmuje decyzję na podstawie danych, które prowadzą w złym kierunku.
Czwarty błąd to nadmierne komplikowanie ewidencji zasobów. Wdrożenie ciężkiego systemu z dziesiątkami pól do wypełnienia często kończy się tym, że nikt go nie utrzymuje. Lepiej zacząć od prostego rozwiązania, które jest używane, niż od rozbudowanego systemu porzuconego po kilku miesiącach.
Piąty błąd to brak powiązania dokumentacji z procesem utrzymania. Dokumentacja traktowana jako osobny obowiązek nigdy nie nadąża za środowiskiem. Działa dopiero wtedy, gdy jest częścią pracy: gdy aktualizacja opisu jest naturalnym końcem każdej zmiany, a nie dodatkowym zadaniem zostawianym na później.
Szósty błąd to dokumentowanie tylko stanu idealnego. Wiele środowisk ma wyjątki, obejścia, historyczne zależności i nietypowe konfiguracje. To właśnie one najczęściej decydują o przebiegu awarii. Jeśli dokumentacja pokazuje tylko model docelowy, a pomija rzeczywistość, nie pomoże w najważniejszym momencie.
Podsumowanie
Firmy tracą kontrolę nad swoim środowiskiem nie dlatego, że brakuje im kolejnego narzędzia. Tracą ją dlatego, że wiedza o tym, co mają, jak to jest połączone i kto za to odpowiada, nigdy nie została zapisana w formie, z której da się skorzystać pod presją. Infrastruktura rośnie szybciej niż wiedza o niej, a różnica między tymi dwoma obszarami ujawnia się dokładnie wtedy, gdy nie ma czasu na jej nadrabianie: podczas awarii, migracji i zmian kadrowych.
Dla właściciela firmy ma to bardzo konkretny wymiar. Każda godzina przestoju to utracone zamówienia, niewystawione faktury, zatrzymana praca ludzi albo konieczność tłumaczenia się klientom. Brak dokumentacji oznacza dłuższy przestój, większe ryzyko przy zmianie dostawcy IT i uzależnienie od jednej osoby, której odejście może sparaliżować utrzymanie środowiska.
Uporządkowana wiedza działa odwrotnie. Przestoje są krótsze, bo podstawowe fakty są pod ręką. Zmiana wykonawcy przebiega bez zgadywania, bo nowa osoba dostaje opis, a nie zbiór domysłów. Rotacja ludzi przestaje być zagrożeniem dla ciągłości, bo doświadczenie zostaje w firmie, a nie odchodzi razem z człowiekiem.
CMDB i dokumentacja infrastruktury nie są celem samym w sobie. Są sposobem na to, by doświadczenie administratorów stało się trwałą własnością firmy. Nie trzeba do tego dużego systemu ani wielkiego projektu. Wystarczy zacząć od usług krytycznych, spisać właścicieli i zależności, sprawdzić backupy i dostępy, a potem konsekwentnie aktualizować opis przy każdej zmianie.
Jeżeli środowisko rozwijało się przez lata i nie ma aktualnej mapy hostów, zależności, backupów oraz dostępów, porządkowanie CMDB warto potraktować jako część stałej administracji serwerami Linux albo bezpieczeństwa środowiska IT, a nie jako jednorazowe spisywanie dokumentacji.
Największe ryzyko nie leży w technologii. Leży w tym, że o własnym środowisku wie się mniej, niż się wydaje, i odkrywa się to dopiero podczas awarii. Najlepiej utrzymane środowisko to takie, które jego właściciel realnie rozumie i potrafi opisać komuś z zewnątrz. Najlepszy moment, żeby to uporządkować, jest przed kolejnym sobotnim telefonem, a nie w jego trakcie.