Bezpieczne praktyki wdrażania G DATA
W G DATA rozróżniamy dwa rodzaje aktualizacji naszych produktów konsumenckich: aktualizacje sygnatur oraz aktualizacje programów.
Aktualizacje sygnatur
Te pierwsze wiążą się z mniejszym ryzykiem i zazwyczaj są pobierane i stosowane automatycznie, kilka razy dziennie w regularnych odstępach czasu. Nadal jednak korzystamy z systemów automatycznego testowania i wycofywania zmian (rollback), aby zminimalizować potencjalny wpływ na klientów.
Aktualizacje programów
Z kolei aktualizacje programów muszą być wdrażane z jeszcze większą ostrożnością, ponieważ to za ich pośrednictwem dostarczane są aktualizacje komponentów oprogramowania i sterowników. Aktualizacje te wydawane są w dłuższych odstępach czasu – od co kilku miesięcy do raz w roku.
W procesie programowania wykorzystujemy testy ciągłe, które ściśle bazują na typowych środowiskach klientów, a także zautomatyzowane testy kompleksowe (end-to-end) i wydajnościowe, co pozwala na wczesne wykrywanie problemów na wczesnym etapie. Następnie nowe wersje wdrażane są wewnętrznie w różnych cyklach, dzięki czemu produkt można przetestować w rzeczywistych warunkach. Dopiero gdy kandydat do wydania (release candidate) nie wykazuje żadnych problemów, jest on udostępniany klientom etapami, począwszy od wdrożenia na małą skalę (canary deployment). Następnie dystrybucja jest stopniowo rozszerzana, przy jednoczesnym ścisłym monitorowaniu telemetrii i opinii klientów. W tej fazie kluczowi pracownicy pełnią dyżur, aby móc szybko zareagować zgodnie z wcześniej zdefiniowanymi procesami eskalacji. Idzie to w parze ze starannym planowaniem, pozwalającym unikać weekendów, świąt i innych krytycznych okresów.
Ponadto instalacja aktualizacji jest kontrolowana przez klienta i zaprojektowana tak, aby bezpiecznie obsługiwać błędy (fail gracefully): jeśli aktualizacji nie da się zainstalować na komputerze klienta, zachowywany jest jego ostatni prawidłowo działający stan.
Na koniec wszystkie wnioski płynące z tych etapów są uwzględniane w planowaniu kolejnej aktualizacji, co pozwala na ciągłe udoskonalanie procesu.