mirror of
https://github.com/opentffoundation/opentf.git
synced 2025-12-23 03:34:30 -05:00
Co-authored-by: Damian Stasik <920747+damianstasik@users.noreply.github.com> Co-authored-by: Roman Grinovski <roman.grinovski@gmail.com>
39 lines
2.1 KiB
Plaintext
39 lines
2.1 KiB
Plaintext
---
|
|
description: >-
|
|
How OpenTofu compares to other infrastructure as code tools like
|
|
CloudFormation and Heat. OpenTofu can simultaneously manage multiple cloud
|
|
providers (AWS, OpenStack, etc.) and services (Cloudflare, DNSimple, etc.).
|
|
---
|
|
|
|
# OpenTofu vs. CloudFormation, Heat, etc.
|
|
|
|
Tools like CloudFormation, Heat, etc. allow the details of an infrastructure
|
|
to be codified into a configuration file. The configuration files allow
|
|
the infrastructure to be elastically created, modified and destroyed. OpenTofu
|
|
is inspired by the problems they solve.
|
|
|
|
OpenTofu similarly uses configuration files to detail the infrastructure
|
|
setup, but it goes further by being both cloud-agnostic and enabling
|
|
multiple providers and services to be combined and composed. For example,
|
|
OpenTofu can be used to orchestrate an AWS and OpenStack cluster simultaneously,
|
|
while enabling 3rd-party providers like Cloudflare and DNSimple to be integrated
|
|
to provide CDN and DNS services. This enables OpenTofu to represent and
|
|
manage the entire infrastructure with its supporting services, instead of
|
|
only the subset that exists within a single provider. It provides a single
|
|
unified syntax, instead of requiring operators to use independent and
|
|
non-interoperable tools for each platform and service.
|
|
|
|
OpenTofu also separates the planning phase from the execution phase,
|
|
by using the concept of an execution plan. By running `tofu plan`,
|
|
the current state is refreshed and the configuration is consulted to
|
|
generate an action plan. The plan includes all actions to be taken:
|
|
which resources will be created, destroyed or modified. It can be
|
|
inspected by operators to ensure it is exactly what is expected. Using
|
|
`tofu graph`, the plan can be visualized to show dependent ordering.
|
|
Once the plan is captured, the execution phase can be limited to only
|
|
the actions in the plan. Other tools combine the planning and execution
|
|
phases, meaning operators are forced to mentally reason about the effects
|
|
of a change, which quickly becomes intractable in large infrastructures.
|
|
OpenTofu lets operators apply changes with confidence, as they know exactly
|
|
what will happen beforehand.
|