Blog

Back to resource

Differences between Cluster.dev and Terraform

9 Feb 2022
Articles
Author: Vsevolod Poliakov, Product manager of Cluster.dev
Views: 1322

Terraform — чудовий і популярний інструмент для створення інфраструктур. Незважаючи на те, що Terraform був заснований більше п’яти років тому, він підтримує багато провайдерів і ресурсів, що вражає.

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

З іншого боку, Cluster.dev — це програмне забезпечення для керування, яке використовує Terraform разом з іншими інструментами інфраструктури як будівельні блоки.

Як вища абстракція, Cluster.dev вирішує всі перераховані проблеми: створює єдине джерело істини, а також поєднує та оркеструє різні інструменти інфраструктури під одним дахом.

Давайте детальніше розглянемо проблеми, які вирішує Cluster.dev.

Внутрішнє відношення

Оскільки Terraform має досить складну логіку візуалізації, це впливає на зв’язки між його частинами. Наприклад, ви не можете визначити провайдера, скажімо, для k8s або Helm у тій самій кодовій базі, яка створює кластер k8s. Це змушує користувачів вдаватися до внутрішніх хаків або використовувати спеціальну оболонку для двох різних розгортань — цю проблему ми вирішили за допомогою Cluster.dev.

Інша проблема внутрішніх відносин стосується величезних планів виконання, які Terraform створює для масштабних проектів. Користувачі, які намагалися уникнути цієї проблеми, використовуючи невеликі репозиторії Terraform, зіткнулися з проблемами слабких зв’язків «віддаленого стану» та обмеженими можливостями узгодження: було неможливо запустити пов’язаний модуль, якщо результат модуля, на який він покладався, був змінено.

Навпаки, Cluster.dev дозволяє запускати лише необхідні частини, оскільки це перший інструмент GitOps.

шаблонування

Другим обмеженням Terraform є шаблони: Terraform не підтримує шаблони tf-файлів, які він використовує. Це змушує користувачів вдаватися до хаків, які ще більше заплутують їхні файли Terraform. І хоча Cluster.dev використовує шаблони, він дозволяє включити, скажімо, модуль Jenkins Terraform із користувальницькими вхідними даними для середовища розробника, а не включати його для постановки та виробництва — все в одній кодовій базі.

Третя сторона

Terraform дозволяє виконувати Bash або Ansible. Однак він не містить багато інструментів, щоб контролювати, де і як будуть запускатися ці зовнішні інструменти.

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

Back to resource