Лучший способ использовать Gitlab, Terraform, Flux и GKE в принципе gitops
Я новичок в DevOps, и мне интересно, как лучше всего использовать GKE, Terraform и репозиторий Gitlab для CI/CD. Прямо сейчас есть наборы команд, используемых с flux, cert manager, но это не автоматизировано. Каковы лучшие практики, инструменты и вся схема? Спасибо за ответы.
1 ответ
В моем предыдущем проекте мы испробовали довольно много подходов и в конце концов поняли, что развертывание с помощью Octopus Deploy было лучше всего, хотя отчасти потому, что оно использовалось более широко в компании, но для развертывания с помощью terraform оно также было неплохим. Основным преимуществом было наличие концепции арендаторов, которые соответствуют каждому клиенту (в частности, проекту Google Cloud), и для арендатора вы можете установить множество переменных, которые в основном будут использоваться terraform. В зависимости от списка настроенных переменных каждый клиент может быть довольно утомительной задачей, но я предполагаю, что это только при первой настройке. Тогда гораздо быстрее его обновить и запустить фактическое развертывание.
Мы также пробовали GitOps, например, имея репо для каждого клиента (проект GCP) с этими переменными, а в наших сценариях развертывания просто извлекают эти репозитории, и это также хорошо, потому что дает все преимущества наличия спецификации в исходном коде, как при ведении журнала, так и в одиночном источник истины. Но основным недостатком было то, что при любом изменении нужно было открывать запрос на слияние, и это могло занять довольно много времени. Если в вашем случае это не обязательно, и конвейер, работающий над изменениями в таких репозиториях спецификаций, не такой длинный, вы можете попробовать это, почему бы и нет.
Еще одна вещь, которую вы можете попробовать, - это поместить переменные в переменные Gitlab, но это также зависит от количества окружений, которые у вас есть, если он будет продолжать расти (при условии, что это так), это, вероятно, не лучшая идея, поскольку нет особой видимости изменений и может быть трудно отслеживать все эти переменные.