всем привет!
А поделитесь практиками, кто как описывает админам/девопсам требования к разворачиваемому ПО? У нас сейчас проблема (в отсутствие девопса как такового), что приходится админам описывать требования прям подробно, вплоть до конкретных команд в шелле (юзают ansible). При этом один хрен хромает мониторинг, сбор логов и тд, так как стандарта нет, а админы сами его придумывать не будут. В лучшем случае прикрутят стандартные метрики в заббикс/нагиос и ротацию текстовых логов.
Как я себе это вижу: мы прописываем прям стандарт (рецептом можно назвать) для каждого вида софта. Например, для nginx нужно брать конфиги проекта там-то в репозитории, логи писать в текст туда-то и еще отправлять в ELK, мониторинг через готовый шаблон заббикса, обновлять по таким-то правилам. И тд.
Это довольно долго и тоскливо собирать и вылизывать, но на выходе по идее должно сильно добавить прозрачности со всех сторон. В итоге проект будет как набор кубиков для админов - тупо собрать из готовых решений по стандарту. Начнем наверное с простых google docs, разбитых по приложениям, но может есть решения получше? В том числе интересует и дальнейшее сопровождение, так как эти стандарты, очевидно, не статические и должны меняться.
У нас для каждого компонента есть свой компос, с выделенными переменными и всякими правилами, и механизм формирования компоса из набора компосов, типа разные комбинации компонентов. Когда админы выкатывают релиз, то просто собирает нужный им набор компонентов и в ансимбле указывают переменные среды. То есть компонент работает одинаковым способом в разных окружениях, от машины разработчика до прода