Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions.
Configuration files describe to Terraform the components needed to run a single application or your entire datacenter. Terraform generates an execution plan describing what it will do to reach the desired state, and then executes it to build the described infrastructure. As the configuration changes, Terraform is able to determine what changed and create incremental execution plans which can be applied.
The infrastructure Terraform can manage includes low-level components such as compute instances, storage, and networking, as well as high-level components such as DNS entries, SaaS features, etc.
Terraform provides infrastructure automation with infrastructure as code for provisioning, compliance, and management of any infrastructure—public cloud, private data centers, and services. Infrastructure as code allows operators to provision and manage infrastructure the same way application developers build applications: codify, validate, test, and deploy into production to reduce human error, failed builds, and increase productivity.
Vault allows you to secure, store and tightly control access to tokens, passwords, certificates, encryption keys, and other sensitive data using a UI, CLI, or HTTP API.You can increase productivity, control costs by reducing systems, licenses and overhead by centrally managing all secrets operations. Vault can also assist with reducing the risk of breach by eliminating static, hard-coded credentials by centralizing secrets.
Consul enables cloud networking automation with a central shared registry to discover, connect and secure services across any runtime platform and cloud. With service discovery, you can dynamically locate any application or services to simplify network connectivity and routing. With network middleware automation, service changes trigger dynamic reconfiguration automatically to load balancers and firewalls. And with service mesh, consistent end-to-end security enforced to services can be applied across a heterogeneous environment.
Nomad is a simple and flexible workload orchestrator for any application. It enables enterprises to easily deploy, scale, and manage millions of workloads across multiple regions, on private and public clouds. Nomad natively integrates with Terraform for infrastructure automation, Vault for secrets management and Consul for service discovery and service mesh to enable a unified infrastructure platform. Many of the world's most cutting edge technology companies are deploying applications in production more efficiently and reliably with Nomad.
Vagrant is a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the "works on my machine" excuse a relic of the past.
Packer is an open source tool for creating identical machine images for multiple platforms from a single source configuration. Packer is lightweight, runs on every major operating system, and is highly performant, creating machine images for multiple platforms in parallel. Packer does not replace configuration management like Chef or Puppet. In fact, when building images, Packer is able to use tools like Chef or Puppet to install software onto the image.