Używamy unattended-upgrades
od 2015 do 2020 roku bez żadnych problemów. Mamy małą konfigurację (na DigitalOcean) z:
nginx
mysql-server
php5-fpm
php5-curl
php5-mysql
W oparciu o dobrą wydajność w przeszłości, przeprowadzanie aktualizacji w ten sposób jest bezpieczniejsze niż nie robienie tego. Ale to niekoniecznie gwarancja na przyszłość!
To może nie być tak dobry pomysł apache
, na podstawie raportów innych użytkowników i moich wcześniejszych doświadczeń z apache
aktualizacjami. [Patrz wyżej i tutaj ]
Dzięki unattended-upgrades
ręczna interwencja będzie nadal wymagana, gdy wersja zbliży się do EOL .
(Poza pytaniem: z mojego doświadczenia z TWiki, WordPress i Jenkinsem, aktualizowanie tych aplikacji jest w rzeczywistości większym problemem niż sam system operacyjny, chociaż oczywiście powinniśmy naprawdę zrobić jedno i drugie. Dla spokoju ducha, można piaskownicować aplikacje internetowe jako procesy inne niż root działające w kontenerze Docker).
Ale ponieważ pytałeś o najlepsze praktyki , podstawowe podejście zalecane w dokumentacji AWS to:
Utwórz i uruchom nowe wystąpienia, aby zastąpić obecne wystąpienia online. Następnie usuń bieżące instancje.
Nowe instancje będą miały najnowszy zestaw poprawek bezpieczeństwa zainstalowany podczas instalacji.
(Luty 2020)
Można tego dokonać w ramach niebiesko-zielonej strategii wdrażania . Zaletą jest to, że możesz uruchomić testy na nowym serwerze przed przełączeniem ruchu. Jeśli Twoje testy są dokładne, teoretycznie Twoje aktualizacje mogą być w pełni zautomatyzowane, zweryfikowane przed uruchomieniem i bez przestojów.
Inne zalety:
Testy mogą dać ci zaawansowane ostrzeżenie, jeśli wymagana jest ludzka uwaga (w przeciwieństwie do sytuacji unattended-upgrades
, gdy ostrzeżenia przychodzą od użytkowników dopiero po wystąpieniu problemu!)
Jeśli Twój system zostanie narażony na szwank lub zdecydujesz się zmienić dostawcę, takie podejście powinno ułatwić wdrożenie nowego wdrożenia. Twoja strategia wdrażania jest oparta na skryptach, a nie na starożytnej pamięci.
Ale oczywiście to podejście wymaga więcej konfiguracji niż zwykła instalacja unattended-upgrades
i jest bardziej złożone, więc wciąż jest miejsce na błędy.
AWS wspomina również o wykonaniu polecenia „Aktualizacja stosu zależności zależności”, co wydaje się być ich oficjalnym sposobem wykonywania czegoś podobnego unattended-upgrades
. Wygląda na to, że można je uruchomić z interfejsu instancji, ale nie jestem pewien, czy można to zautomatyzować.