Ми використовуємо unattended-upgrades
з 2015 по 2020 роки без проблем. У нас є невелике налаштування (на DigitalOcean) з:
nginx
mysql-server
php5-fpm
php5-curl
php5-mysql
Спираючись на хороші минулі показники, робити оновлення таким чином почувається безпечнішим, ніж цього не робити. Але це не обов'язково є гарантією на майбутнє!
Це може бути не такою вдалою ідеєю на apache
основі звітів інших користувачів та мого минулого досвіду apache
оновлень. [Дивіться вище, і тут ]
З цим unattended-upgrades
, ручне втручання все ж буде потрібно, коли випуск наблизиться до EOL .
(Окрім питання: З мого досвіду роботи з TWiki, WordPress та Jenkins, оновлення цих додатків насправді викликає велике занепокоєння, ніж сама ОС, хоча, звичайно, ми повинні дійсно робити і те й інше. Для спокою, ви можете переглядати Інтернет-програми, що переглядають Інтернет, як некореневі процеси, що працюють у контейнері Docker.)
Але оскільки ви запитували про найкращу практику , основним підходом, який рекомендується в документації AWS, є:
Створюйте та запускайте нові екземпляри, щоб замінити поточні онлайн-екземпляри. Потім видаліть поточні екземпляри.
Нові екземпляри матимуть останній набір патчів безпеки, встановлених під час налаштування.
(Лютий 2020 р.)
Це можна зробити як частину синьо-зеленої стратегії розгортання . Перевага тут полягає в тому, що ви можете запускати тести на своєму новому сервері, перш ніж перемикати трафік. Якщо ваші тести ґрунтовні, то теоретично ваші оновлення можуть бути повністю автоматизовані, перевірені перед початком роботи та без простоїв.
Інші переваги:
Тести можуть надати вам розширене попередження, якщо потрібна увага людини (на відміну від тих випадків unattended-upgrades
, коли попередження надходять від ваших користувачів лише після появи проблеми!)
Якщо ваша система дійсно скомпрометована або ви вирішили переключитися на провайдерів, такий підхід повинен полегшити розгортання нового розгортання. Ваша стратегія розгортання - це сценарій, а не старовинна пам'ять.
Але, звичайно, для цього підходу потрібно більше налаштування, ніж просто встановлення unattended-upgrades
, і більш складна, тому помилки ще є.
AWS також згадує про виконання команди "Стек стеку оновлення залежностей", що, здається, є їх офіційним способом робити щось подібне unattended-upgrades
. Здається, що це може бути викликано їх інтерфейсом інстанцій, але я не впевнений, чи можна його автоматизувати.