github.com/smintz/nomad@v0.8.3/website/source/intro/vs/terraform.html.md (about)

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