Przybornik do cerowania

Dla innych ważne są inwentaryzacja zasobów i zarządzanie konfiguracją. Nie bez powodu - z punktu widzenia celu aktualizacji oprogramowania wiedza o tym, ile i jakiej klasy systemów wymaga jakiej aktualizacji jest nie do przecenienia. Ponieważ dystrybucja poprawek i ich instalacja nie są nigdy procesem natychmiastowym, wiedza płynąca z systemów inwentaryzacyjnych pozwala zdecydować, którymi systemami zająć się w pierwszej kolejności, a które - w świetle wiedzy o realnych zagrożeniach - mogą jeszcze poczekać.

W dużych organizacjach - takich, które wykorzystują tysiące różnych urządzeń i systemów - proste metody ułatwiające aktualizację oprogramowania mogą nie spełniać oczekiwań. W takich środowiskach automatyczna dystrybucja aktualizacji to konieczność, zaś wiedza o tym, które systemy trzeba zaktualizować, to dopiero połowa sukcesu. Tam gdzie pojawia się skala, potrzebne są standaryzacja środowisk i daleko posunięta automatyzacja - lub co najmniej to, że w dowolnym czasie, pomimo wysiłków informatyków, część systemów nie będzie właściwie zaktualizowana.

W tych najbardziej skomplikowanych środowiskach narzędzia służące wyłącznie aktualizacji muszą zostać wzbogacone o rozwiązania inwentaryzacyjne (to nieodzowne), ale także o narzędzia do stałego monitorowania konfiguracji i raportowania wszelkich odstępstw od założonych ustawień. Alternatywą jest chaos. Wiadomo przecież, że oprogramowanie "żyje" - ulega awariom, jest przywracane z kopii zapasowych, zmienia się jego konfiguracja, przynależność do klas/grup itp. Administratorzy aplikacji - zwłaszcza w przypadku aplikacji działających w oddziałach terenowych - na bieżąco zmieniają ich konfiguracje, pobierają z Internetu i instalują aktualizacje itp. Administrator bezpieczeństwa musi w takich warunkach mieć dostęp do aktualnej informacji.

Pod okiem architekta

Czynnikiem silnie warunkującym wybory w dziedzinie aktualizacji oprogramowania jest istniejąca i przewidywana architektura środowiska informatycznego firmy. Najważniejsza jest topologia sieci, od niej zależy bowiem architektura rozwiązania do dystrybucji poprawek. W firmach wykorzystujących jedynie sieci lokalne sprawa jest stosunkowo prosta - wyzwania pojawiają się, gdy inwentaryzację, monitorowanie konfiguracji i w końcu aktualizację trzeba wykonywać poprzez sieć rozległą.

Ważna jest architektura wewnętrzna narzędzi wykorzystywanych w procesie aktualizacji. W sieci lokalnej monitorowanie konfiguracji można wykonywać za pomocą nowoczesnych narzędzi niewymagających instalowania programów klienckich. Wdrożenie i późniejsze utrzymanie takiego rozwiązania jest znacznie łatwiejsze i tańsze niż rozwiązania opartego na programach-agentach. Ich zaletą jest także to, że działają w sposób "nieinwazyjny", minimalizując ryzyko destabilizacji pracy systemu. Dla wielu administratorów będzie to jeden z poważniejszych powodów do zastosowania takiej architektury.

Monitorowanie konfiguracji bez użycia agentów w przypadku aplikacji działających w zdalnych lokalizacjach nie wydaje się rozsądne, zwłaszcza gdy lokalizacji jest więcej. Ruch generowany między serwerem rozwiązania monitorującego a systemami monitorowanymi może okazać się zbyt intensywny w stosunku do możliwości łączy WAN. W takich topologiach znacznie lepiej sprawdzą się rozwiązania oparte na agentach - chyba, że poszczególne lokalizacje są na tyle duże, że usprawiedliwione byłoby umieszczenie oddzielnych serwerów monitorujących w każdej z nich. W takim scenariuszu informacje inwentaryzacyjne i informacje o konfiguracji byłyby różnicowo przesyłane do centralnej konsoli - czy to cyklicznie, czy też na żądanie administratora.

Zastosowanie rozwiązań opartych na agentach, jakkolwiek wywołuje obawy administratorów aplikacji, ma dobre strony. Nie ulega wątpliwości, że agent rezydujący w systemie ma o jego rzeczywistej konfiguracji pewniejszą i bardziej szczegółową wiedzę, niż rozwiązanie badające jego stan z zewnątrz. Poza tym pojedynczy agent może spełniać wiele ról jednocześnie: monitorować i raportować informacje o zasobach, stanie i konfiguracji, pośredniczyć w pobieraniu aktualizacji, nadzorować ich instalację oraz informować o jej sukcesie lub ewentualnych problemach. Nie można tu nie wspomnieć, że systemy dystrybucji aktualizacji działające w architekturze klient-serwer skalują się lepiej niż systemy "bezagentowe".

Człowiek wciąż niezbędny

Wybierając narzędzia wspomagające aktualizację oprogramowania, nie sposób pominąć roli człowieka. Automatyzacja jest potrzebna, jednak równie ważna jest elastyczność. Można ją rozumieć jako możliwość wykonania każdej - standardowo zautomatyzowanej - czynności "ręcznie", możliwość monitorowania i/lub decyzji podejmowanych przez oprogramowanie lub przez pracę wspólną, polegającą na akceptowaniu przez człowieka działań automatycznych krok po kroku. Zawierzenie procedurom automatycznym i skryptom jest koniecznością, nie wolno jednak zapominać, że ich autorzy są omylnymi ludźmi, a nikt tak dobrze nie poprawi pomyłki człowieka, jak właśnie człowiek.


TOP 200