github.com/iqoqo/nomad@v0.11.3-0.20200911112621-d7021c74d101/website/pages/intro/vs/terraform.mdx (about) 1 --- 2 layout: intro 3 page_title: Nomad vs. Terraform 4 sidebar_title: Terraform 5 description: Comparison between Nomad and Terraform 6 --- 7 8 # Nomad vs. Terraform 9 10 [Terraform](https://www.terraform.io) is a tool for building, changing, and versioning 11 infrastructure safely and efficiently. Configuration files describe to Terraform 12 the components needed to run a single application or your entire datacenter. Terraform 13 generates an execution plan describing what it will do to reach the desired state, 14 and then executes it to build the described infrastructure. As the configuration changes, 15 Terraform is able to determine what changed and create incremental execution plans which can be applied. 16 17 Nomad differs from Terraform in a number of key ways. Terraform is designed to support 18 any type of resource including low-level components such as compute instances, storage, 19 and networking, as well as high-level components such as DNS entries, SaaS features, etc. 20 Terraform knows how to create, provision, and manage the lifecycle of these resources. 21 Nomad runs on existing infrastructure and manages the lifecycle of applications running 22 on that infrastructure. 23 24 Another major distinction is that Terraform is an offline tool that runs to completion, 25 while Nomad is an online system with long lived servers. Nomad allows new jobs to 26 be submitted, existing jobs updated or deleted, and can handle node failures. This 27 requires operating continuously instead of in a single shot like Terraform. 28 29 For small infrastructures with only a handful of servers or applications, the complexity 30 of Nomad may not outweigh simply using Terraform to statically assign applications to 31 machines. At larger scales, Terraform should be used to provision capacity for Nomad, 32 and Nomad used to manage scheduling applications to machines dynamically.