Przewodnik po dryfie konfiguracji i sposobach zapobiegania mu

Dryf konfiguracji jest ważnym problemem dla wszystkich programistów IAAC. W tym poście dowiesz się o zarządzaniu dryfem konfiguracji, jego znaczeniu, przyczynach i potencjalnych rozwiązaniach.

Co to jest dryf konfiguracji?

Właściciele aplikacji muszą z czasem zmieniać swoje aplikacje i podstawową infrastrukturę, aby stale poprawiać jakość obsługi klienta. Klienci ci mogą znajdować się wewnątrz lub na zewnątrz firmy.

Konfiguracja aplikacji i infrastruktury zmienia się w wyniku tych aktualizacji i zmian. Te modyfikacje mogą być korzystne lub pogorszyć stan zahartowania systemów. Terminem jest dryf konfiguracji.

Jak działa dryf konfiguracji

Potencjał dryfu konfiguracji wzrasta wraz ze złożonością systemów produkcji i dostarczania oprogramowania. Kod jest zazwyczaj przenoszony ze stacji roboczej programisty do współdzielonego środowiska programistycznego, do środowisk testowych i QA, a ostatecznie do środowisk pomostowych i produkcyjnych.

Potencjalne oddziaływanie wzrasta wraz z odległością wzdłuż rurociągu, w którym występuje przenoszenie. Nawet niewielkie różnice między wersją pakietu zainstalowaną na laptopie programisty a wersją zainstalowaną na serwerze testowym mogą opóźnić debugowanie problemu. Zazwyczaj tylko inscenizacja i produkcja mają być wzajemnymi replikami. Obciążenie jest intensywne, ponieważ wiele firm wdraża nowy kod wiele razy dziennie.

Najczęstsze przyczyny dryftu konfiguracji

Brak komunikacji

Czasami zespoły upstream nie komunikują się z partnerami downstream o wprowadzonych przez nich zmianach, co w rezultacie psuje cały system downstream.

Poprawki

Poprawki to zmiany w kodzie wprowadzone w celu rozwiązania krytycznego problemu, który nie może czekać do następnej planowanej aktualizacji aplikacji. Czasami inżynierowie pracujący nad rozwiązaniem problemu nie wprowadzają zmian lub nie dokumentują tej samej poprawki w innych środowiskach w potoku, co w rezultacie prowadzi do dryfu. Często ponowne wprowadzenie pierwotnego problemu rozwiąże ten dryf.

Aktualizacje pakietów krytycznych

Aktualizacje pakietów krytycznych są nieco podobne do poprawek. Oba są wykonywane w szybkim tempie. Główna różnica polega na tym, że krytyczne aktualizacje pakietów są stosowane w nadziei na uniknięcie przyszłych incydentów. Tak więc takie aktualizacje mogą powodować dryf w taki sam sposób, jak poprawki.

Brak automatyzacji

Automatyzacja nie wyeliminuje całkowicie szans na dryf konfiguracji. To tylko zmniejszy jego szanse.

Zmiany dotyczące wygody

Czasami zmiany wprowadzane przez programistów są tymczasowe. Na przykład dryf występuje, gdy programista instaluje nowy pakiet na serwerze testowym w celu przetestowania niektórych funkcji i zapomina przywrócić go do pierwotnego stanu.

Dlaczego zarządzanie konfiguracją jest ważne?

Jednym z powodów, dla których dryf konfiguracji może być tak szkodliwy, jest to, że jeśli nikt go nie szuka, dryf może pozostać nieodkryty, ponieważ stopniowo podkopuje podstawę infrastruktury, podobnie jak mały przeciek w domu za ścianą.

Po wykryciu dryftu konfiguracji znalezienie przyczyny dryfu konfiguracji, która spowodowała to wszystko, wymaga czasu, co jest cennym zasobem w sytuacji awaryjnej.

W rozwoju oprogramowania dryf jest istotną przyczyną powolnych cykli wydawniczych. Może to powodować niepotrzebny trud i ograniczać produktywność programistów.

Niższe koszty

Możesz obniżyć całkowitą potrzebną ilość, identyfikując duplikaty lub nadmiarową alokację, gdy masz szczegółowy obraz swojej infrastruktury IT.

Wyższa produktywność

Klastry o stabilnych i dobrze znanych konfiguracjach umożliwiają zarządzanie partiami i budowę infrastruktury. Ponadto wymóg ręcznego zarządzania poszczególnymi ustawieniami został zmniejszony przez ograniczenie unikalnych (lub płatków śniegu) serwerów.

Szybsze debugowanie

Spójne konfiguracje pozwalają zespołom debugującym wykluczyć błędy konfiguracyjne. Zespoły mogą skoncentrować się na innych potencjalnych przyczynach, szybciej rozwiązując zgłoszenia, ponieważ nie będą musiały szukać rozbieżności w konfiguracji między serwerami, klastrami serwerów lub środowiskami.

Problemy spowodowane dryfem konfiguracji

Problemy z bezpieczeństwem

Niebezpieczne konfiguracje są jedną z najczęstszych przyczyn naruszeń bezpieczeństwa. Dryf konfiguracji może zwiększyć prawdopodobieństwo innych ataków i naruszeń sieci, nawet jeśli zaczynasz od chronionej konfiguracji.

Przestój

Znaczący przestój może wynikać z błędu konfiguracji, który umożliwia atakującemu wykorzystanie luki DoS lub złamanie zabezpieczeń kluczowego serwera. To jednak nie wszystko. Załóżmy, że modyfikujesz konfigurację urządzenia sieciowego, wpływając na wydajność. Zawsze możesz wrócić do swojej „złotej konfiguracji”, prawda? Przywrócenie usługi zajmie znacznie więcej czasu, jeśli ta konfiguracja jest błędna.

Brak zgodności

Ścisłe kontrole bezpieczeństwa są niezbędne do zapewnienia zgodności z przepisami takimi jak ISO 27001, PCI-DSS i HIPAA. Dryf konfiguracji może spowodować naruszenie zgodności, jeśli nie zostanie zatrzymany.

Pogorszona wydajność

Konfiguracja jest zwykle w najbardziej optymalnym stanie, gdy jest w zamierzonym stanie. Modyfikacje ad hoc mogą utrudniać próby optymalizacji sieci, powodując wąskie gardła i konflikty.

Zmarnowany czas

Rozwiązywanie problemów z siecią, której nie rozumiesz lub która nie jest zgodna z dokumentacją sieci, może zająć dużo czasu. Oznacza to, że dryf konfiguracji może skutkować rozwiązywaniem problemów IT, które mogłyby nie istnieć lub byłyby łatwiejsze do rozwiązania, gdyby sieć była w zamierzonym stanie, oprócz generowania przestojów dla użytkowników.

Typowe błędy, na które należy uważać podczas monitorowania dryftu konfiguracji

W idealnym świecie wszystkie serwery środowiska dla programistów (Dev/QA/Staging/Prod) miałyby taką samą konfigurację. Niestety tak nie dzieje się w „prawdziwym” świecie. W warunkach komercyjnych właściciele aplikacji często modyfikują infrastrukturę, gdy do oprogramowania wprowadzane są nowe możliwości.

Monitorowanie dryftu konfiguracji ma kluczowe znaczenie dla zapewnienia, że ​​środowiska oprogramowania są tak jednorodne, jak to możliwe. Konfiguracja zarządzania zmniejsza wydatki, zwiększa produktywność i czas debugowania oraz poprawia wrażenia użytkownika.

Aby odnieść jak największy sukces w monitorowaniu, organizacje muszą unikać błędów, nawet jeśli korzystają z zarządzania konfiguracją i monitorują dryf konfiguracji.

Typowe błędy są wymienione poniżej:

Nieutrzymywanie CMDB

Utrzymywanie aktualnej bazy danych zarządzania konfiguracją (CMDB) jest istotnym elementem zarządzania konfiguracją. Informacje na temat instalacji sprzętu i oprogramowania w sieci można przeglądać w jednym miejscu, dostarczanym przez bazę danych zarządzania konfiguracją. Dane są zbierane dla każdego zasobu lub elementu konfiguracji, zapewniając widoczność i przejrzystość w miejscu pracy.

Brak obsługi CMDB naraża firmy na niebezpieczeństwo niepełnego zrozumienia, w jaki sposób konfiguracja jednego elementu wpływa na inny element. Organizacje ryzykują uszkodzenie swojej infrastruktury i bezpieczeństwa bez zrozumienia konsekwencji.

Administrowanie bazami CMDB może być trudne, szczególnie w przypadku wzrostu liczby zasobów, ale skuteczna organizacja i zarządzanie bazami danych ma kluczowe znaczenie dla skutecznego śledzenia zmian konfiguracji i zrozumienia infrastruktury.

Brak planu monitorowania dryftu konfiguracji

Organizacje często dysponują ogromną, skomplikowaną infrastrukturą, którą należy pilnować. Kluczowe znaczenie ma określenie, które komponenty wymagają największego monitorowania. W przeciwnym razie zarządzanie konfiguracją może szybko stać się niemożliwe do zarządzania i chaotyczne.

Organizacje muszą określić, które zasoby są niezbędne do monitorowania firmy i określonych jednostek biznesowych. Obserwowane będą najważniejsze systemy, które będą się różnić w zależności od jednostki i przemysłu.

Brak monitorowania automatycznie

Organizacje mogą monitorować rozbieżności w konfiguracji na kilka sposobów. Jednak niektóre podejścia są bardziej wyrafinowane i skuteczne niż inne.

Ręczne monitorowanie dryfu konfiguracji jest kosztowne i czasochłonne. Ręczny monitoring naraża również na możliwość popełnienia błędu ludzkiego. Nie jest to najlepsza technika monitorowania zmian konfiguracji, chyba że Twoja firma ma bardzo mały ślad w infrastrukturze.

Automatyczne monitorowanie to najbardziej rozwinięty i skuteczny sposób na utrzymanie konfiguracji w pożądanym stanie. Dedykowane systemy monitorowania konfiguracji mogą natychmiast wykryć dryf i często oferują rozwiązania, w tym szybką korektę. Gwarantuje to powrót infrastruktury biznesowej do pożądanego stanu tak szybko, jak to możliwe i przy minimalnych efektach.

Jak monitorować dryf konfiguracji:

Staje się oczywiste, dlaczego wykrywanie dryftu konfiguracji powinno być głównym problemem, gdy zdasz sobie sprawę, jakie szkody może spowodować. Wiedza o tym, co zachować i dlaczego została przedstawiona jako zmiana, która stworzyła dryf, jest pierwszym krokiem w tym procesie.

Dowiedz się, czego szukasz

Możesz przeprowadzić triage swojej organizacji, identyfikując komponenty kluczowe dla organizacji jako całości oraz te kluczowe dla każdej jednostki biznesowej.

Różni się to w zależności od jednostki i może być ekspansywne w branżach o wysokim stopniu regulacji lub skupiać się wyłącznie na węższych plikach/aplikacjach krytycznych dla systemu. Znaczenie systemu określi częstotliwość i wagę systemów monitorowania.

Ustaw linię bazową

Zawsze będą występować różnice między środowiskiem produkcyjnym a etapami testowania ze względu na różne ustawienia. Linia bazowa do sprawdzania dryftu jest tworzona przez zdefiniowanie, jaki powinien być każdy krok i rodzaje dopuszczalnych odchyleń.

Wczesne etapy testowania mogą być bardziej odpowiednie dla wyższego limitu dryftu niż ustawienie testu akceptacji użytkownika lub etap produkcji z zerowym dryftem.

Monitoruj swój system

Wymagany poziom monitorowania będzie się różnić w zależności od dojrzałości organizacji, jej obecnych systemów, oprzyrządowania, całkowitej liczby konfiguracji, które należy sprawdzić, oraz wymaganego poziomu kontroli. W zależności od wymagań i zgodności, monitorowanie może się różnić dla każdej jednostki w organizacji.

Jak zapobiegać przesunięciom konfiguracji?

Monitorowanie musi zapewnić, że infrastruktura jest utrzymywana w odpowiedniej konfiguracji po określeniu linii bazowej konfiguracji i dopuszczalnych luk. Bez strategii monitorowania budowanie planów konfiguracyjnych i dokumentacji jest stratą czasu.

Do monitorowania rozbieżności w konfiguracji można zastosować różne podejścia, a wiele firm połączy metodologie i narzędzia w oparciu o ich wymagania dotyczące dojrzałości i zgodności.

Stałe ręczne monitorowanie

Poszczególne konfiguracje maszyn można ręcznie przeglądać i porównywać ze znanym plikiem konfiguracyjnym. Ze względu na aspekt ludzki proces ten jest nadal podatny na błędy i kosztowny pod względem godzin pracy. Powinienem być używany tylko na małą skalę dla kilku konkretnych klastrów serwerów lub firmy o skromnej infrastrukturze.

Audyty

Zespół ręcznie bada konfiguracje serwerów w ramach audytów konfiguracji, porównując je z określonym modelem. Audyty te mogą być kosztowne, ponieważ wymagają specjalistycznej wiedzy, aby określić, w jaki sposób system powinien być zbudowany, a następnie dokładnego zbadania wszelkich nieudokumentowanych możliwości podjęcia decyzji, czy należy go zachować.

Zespół audytowy dokonuje również niezbędnych korekt w dokumentach konfiguracyjnych, które zostaną zastosowane podczas następnego audytu. Audyty są zazwyczaj zachowywane w przypadku klastrów o wysokiej wartości lub dużej zgodności z przepisami i przeprowadzane regularnie, zazwyczaj kilka razy w roku, ze względu na czas i koszty.

Inspekcja gwarantuje spójną i powtarzalną konfigurację serwera zgodnie z ustalonym harmonogramem.

Jednak do następnego audytu ustawienia będą dryfować i pozostawać coraz bardziej.

Zautomatyzowane monitorowanie w czasie rzeczywistym

Zautomatyzowane monitorowanie w czasie rzeczywistym to najbardziej wyrafinowany sposób na utrzymanie konfiguracji w pożądanym stanie. W tym celu należy utworzyć serwery lub grupy serwerów wraz z opisem, jak należy je skonfigurować za pomocą dedykowanych narzędzi konfiguracji serwera.

Programy te będą używać lekkiego agenta do monitorowania konfiguracji serwera w tej grupie i porównywania jej z definicją.

Ten zautomatyzowany proces natychmiast ostrzega o dryfowaniu i zazwyczaj zapewnia kilka opcji korekcji dryftu serwera.

Ostatnie słowa:

Niespójne elementy konfiguracji (CI) między komputerami lub urządzeniami są główną przyczyną rozbieżności konfiguracji. Dryf konfiguracji występuje naturalnie w środowiskach centrów danych, gdy modyfikacje oprogramowania i sprzętu są dokonywane w locie bez dokładnej dokumentacji lub śledzenia.

Wiele awarii systemu wysokiej dostępności i odzyskiwania po awarii jest przypisywanych dryfowi konfiguracji. Administratorzy powinni prowadzić skrupulatne rejestry adresów sieciowych urządzeń sprzętowych, wraz z zainstalowanymi na nich wersjami oprogramowania i dokonanymi aktualizacjami, aby zminimalizować rozbieżności w konfiguracji.