с позиции разработчика, а не DevOps-инженера, поэтому biased.. но тем не менее.
не всегда нужен докер, кубернетес и ансибл..
- для закрытых систем достаточно иметь watchdog, который перезапустит приложение, если что-то идёт не так.
- настройки приложения могут быть те, которые не меняются после старта, и те, которые меняются.
- хорошая практика уметь подхватывать налету настройки приложения при изменении и писать историю изменений (либо диффы, либо снапшоты с датой изменения, период хранения истории зависит от требований бизнеса, иногда требуется 10 лет хранить историю).
- если речь о микросервисах, то хорошая практика иметь под рукой карту IT инфры.
- другая хорошая практика - трекать зависимости между компонентами и уметь делать проверку на консистентность настроек как на этапе сборки приложения, так и в рантайме.
- из этого вытекает другая практика - уметь нотифицировать во всякие телеграмы-слаки-почты-смсшлюзы в случае ошибок.
- некоторые делают билд-деплой-тулы, которые могут в идеале развернуть любое окружение (дев-стейджинг-куа-прод). такие штуки оркестраторы пайплайнов также могут быть написаны руками.
- докер и кубер накладывают поверх линукса минимум два слоя абстракций, это дополнительная когнитивная нагрузка.
и конечно, нужно понимать, если эти практики не внедрены и не поддерживаются, а команда >50 человек или 100500 систем, то тогда да.
всё зависит от конкретной ситуации, конечно же.
- для моих нерабочих задач k8s, docker, ansible - дополнительная когнитивная нагрузка, которая мешает бизнесу, отбивающему затраты на хостинг и дающий право попивать кофеёк лишний раз в течение дня.
- для моих рабочих задач docker и ansible - дополнительное время на отладку и траблшутинг при апгрейде версий данного ПО. и не всегда это 20-120 минут (зачастую выпадает >1 дня). но я признаю, что достаточно тупой разработчик, а аппеляция к личному опыту - моветон.