The post has been translated automatically. Original language: Russian
Over the past few weeks, I've had to compare these three tools again. They are often put in the same row, but in practice they solve slightly different tasks.
Terraform remains the standard for Infrastructure as Code. A huge ecosystem of providers, a mature community, and thousands of ready-made modules.
Pulumi is suitable for those who want to write infrastructure in familiar programming languages: Go, Python, TypeScript, C#. It is convenient if the team consists more of developers than DevOps.
Crossplane is already about the Kubernetes-first approach. The infrastructure becomes part of the Kubernetes API, and resource management takes place through CRD and GitOps. This is especially interesting for Platform Engineering and internal platforms.
For me personally, the choice looks like this:
- Terraform, if you need a classic IaC.
- Pulumi, if you want more flexibility and use full-fledged programming languages.
- Crossplane, if Kubernetes is already the center of your platform.
There is no universal winner. It all depends on the architecture, the team, and the tasks.
За последние несколько недель пришлось снова сравнивать эти три инструмента. Часто их ставят в один ряд, но на практике они решают немного разные задачи.
Terraform остается стандартом для Infrastructure as Code. Огромная экосистема провайдеров, зрелое сообщество и тысячи готовых модулей.
Pulumi подойдет тем, кто хочет писать инфраструктуру на привычных языках программирования: Go, Python, TypeScript, C#. Удобно, если команда больше состоит из разработчиков, чем из DevOps.
Crossplane это уже про Kubernetes-first подход. Инфраструктура становится частью Kubernetes API, а управление ресурсами происходит через CRD и GitOps. Особенно интересно для Platform Engineering и внутренних платформ.
Лично для меня выбор выглядит так:
- Terraform, если нужен классический IaC.
- Pulumi, если хочется больше гибкости и использовать полноценные языки программирования.
- Crossplane, если Kubernetes уже является центром вашей платформы.
Универсального победителя нет. Все зависит от архитектуры, команды и задач.
Предлагаю посмотреть мое выступление на CNCF meetup Алматы