Search
Write a publication
Pull to refresh

Comments 5

разрешение "terraform apply" только из мейна (ну и в дев окружении)

это (почти) всегда не симптом проблем с технологией, а показатель несогласованных «человеческих процессов»

И это верно (почти) для любой технологии. Процессы еще можно настроить, хотя и требует времени, а вот стремление лезть руками куда не нужно и оставлять бардак - неистребимо.

>разрешение "terraform apply" только из мейна
и дополнительно:

- запрет эплаить с локальных машин на прод (тупо права/креды для людей только рид онли). Креды на запись - только у CI (ну, разумеется у ограниченного круга опытных и ответвенных лиц права на запись будут - но они все равно в обычном режиме должны катить через git/CI/IaС - и лишь в экстренных случаях что-то трогать на проде вручную, а потом устранить дрифт)

- чоткое разделение окружений и прав + аудит (в облаках с этим все шикарно)

- сначала в CI должен быть степ plan в файл, и следующий степ apply из этого файла (после апрува)

- настройте конфиг - чтобы стейт хранился в облаке (S3) + сделайте автобэкап этого S3 в другой регион (можно даже в рид онли контейнер)

- периодический автоматический процесс поиска дрифта (запуск плана - и если что-то уехало - нотификация)

- изменение архитектуры, обновление терраформа или провайдеров - сначало через тестовые окружения

- и старайтесь сразу заюзать терраформ - ибо импорт потом делать больно, особенно когда у вас юзаются terraform модули, а скорее это иерархия модулей. (как бы не хотелось пока временно быстро потыкать все мышкой или CLI)

- В реальности невозможно покрыть всю инфру на 100% терраформом - 80% это уже хороший результат. Не стращно, что что-то делается руками, скриптами, джобами - но не терраформом - главное это документировать. Просто иногда проще в 10 раз что-то сделать руками (специфические сервисы или настройки), особенно если это делается редко или даже 1 раз при разворачивании нового окружения, ибо кое какие вещи будут вызвать боль, если их пытаться делать терраформ, а потом вносить изменения
Тот самый принцип парето))
Ну, всмысле - не стоит в падать в крайности и фанатизм некоторых догм типа IaC )))

- Юзайте всякие обертки над терраформом для layering и DRY (Dont Repeat Your Self (типа terragrunt, terraspace)

- Старайтесь не писать свои сложные модули без крайней необходимости - уже давно есть куча готовых и годами проверенных комьюнити - (KISS)
И ваши коллеги , особенно если вы потом сдрисните, поставят вам свечку за здравие скажут вам спасибо ))

Тот случай когда комментарий полезнее самой статьи. Подписываюсь под каждым пунктом. Разве, что terragrunt мне не зашёл, не получил от него особого профита, но уверен это скорее было связано с особенностями проекта. И зачастую скептически смотрю на модули от коммьюнити, они очень часто перегружены, как по мне иногда гораздо проще написать свой учитывая особенности проекта, но и это уверен тоже может меняться от проекта к проекту.

Сразу видно что беларусские ИТишники знают о чем говорят)

И да, статья поднимает интересную тему. Но много воды, повторы одногои того же тезиса разными словами. И примеры примитивные. Вот у меня были в опыте всякие хитрожопые нюансы, связанные с териком, с авс. И часто, по не опытности или тупости, иногда потому ,что меняются апишка авс, добавляются и удоляются фичи и опции. Обновляются модули и провайдеры, а у тебя эплай на прод ломается, и ни туда и ни сюда - приходится аккуратно разруливать руками... Более подробно нет магчымасцi написать)

Sign up to leave a comment.