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.