Gitlab і terraform

Друзі дуже часто люди користуються terraform не думаючи про наслідки та ситуації що призводить до повністю розваленої інфраструктури … чому так відбувається тому що не розуміють як правильно будувати IaaC підхід… по факту при хорошому підході усіх цих проблем можна уникнути і запобігти їх появі.

Уявимо ситуацію де команда користується терраформ кодом напряму тобто вносить будь які правки в код при цьому інша людина чи команда у цей ж момент використовує той же модуль чи той же стейт файл по результатах наслідки будуть не прогнозовані так як все залежить від типу змін які були внесені, але існує величезна ймовірність розваленої інфраструктури.

Для запобіганню проблем найкраще скористатись CI/CD підходом для terraform і тим самим запобігти появі таких проблем по максимуму так як на рівні пайплайну дуже просто можна перевірити практично усе та й сам терраформ код у окремому репозиторії і білдиться і релізиться окремо впевнений що не вікриваю Америку, але досить багато людей цей підхід ігнорує і у результаті отримують розвалений прод чи будь яке інше оточення.

Реалізація підготована ось тут :

https://docs.gitlab.com/ee/user/infrastructure/iac/

Звісно вона не є ідеальною з точки зору процесів і потребує модифікації, але основне це те що релізи завжди контрольовані і те що відбувається з інфраструктую просто відслідкувати за допомогою того ж git і ще одне по хорошому потрібно мати окремий репозиторій для модулів терраформа і окремий для коду інфраструктури так як у цьому випадку простіше відслідковувати зміни і сам процес виглядає набагато краще.