packer-cn/website/source/intro/hashicorp-ecosystem.html.md

69 lines
3.5 KiB
Markdown
Raw Normal View History

2015-04-20 18:55:16 -04:00
---
2015-07-22 22:31:00 -04:00
layout: intro
sidebar_current: intro-ecosystem
page_title: Packer and the HashiCorp Ecosystem - Introduction
description: |-
Learn how Packer fits in with the rest of the HashiCorp ecosystem of tools
---
2015-04-20 18:55:16 -04:00
# Packer and the HashiCorp Ecosystem
2015-07-22 22:31:00 -04:00
HashiCorp is the creator of the open source projects Vagrant, Packer, Terraform,
Serf, Consul, Nomad, and the commercial product Atlas. Packer is just one piece
of the ecosystem HashiCorp has built to make application delivery a versioned,
2015-07-22 22:31:00 -04:00
auditable, repeatable, and collaborative process. To learn more about our
beliefs on the qualities of the modern datacenter and responsible application
delivery, read [The Atlas Mindset: Version Control for
Infrastructure](https://www.hashicorp.com/blog/atlas-mindset.html?utm_source=packer&utm_campaign=HashicorpEcosystem).
2015-04-20 18:55:16 -04:00
2015-07-22 22:31:00 -04:00
If you are using Packer to build machine images and deployable artifacts, it's
likely that you need a solution for deploying those artifacts. Terraform is our
tool for creating, combining, and modifying infrastructure.
2015-04-20 18:55:16 -04:00
2015-07-22 22:31:00 -04:00
Below are summaries of HashiCorp's open source projects and a graphic showing
how Atlas connects them to create a full application delivery workflow.
2015-04-20 18:55:16 -04:00
# HashiCorp Ecosystem
2015-07-22 22:31:00 -04:00
![Atlas Workflow](docs/atlas-workflow.png)
2015-04-20 18:55:16 -04:00
2015-07-22 22:31:00 -04:00
[Atlas](https://atlas.hashicorp.com/?utm_source=packer&utm_campaign=HashicorpEcosystem)
is HashiCorp's only commercial product. It unites Packer, Terraform, and Consul
to make application delivery a versioned, auditable, repeatable, and
collaborative process.
2016-01-14 15:33:00 -05:00
[Packer](https://www.packer.io/?utm_source=packer&utm_campaign=HashicorpEcosystem)
2015-07-22 22:31:00 -04:00
is a HashiCorp tool for creating machine images and deployable artifacts such as
AMIs, OpenStack images, Docker containers, etc.
2016-01-14 15:33:00 -05:00
[Terraform](https://www.terraform.io/?utm_source=packer&utm_campaign=HashicorpEcosystem)
2015-07-22 22:31:00 -04:00
is a HashiCorp tool for creating, combining, and modifying infrastructure. In
the Atlas workflow Terraform reads from the artifact registry and provisions
infrastructure.
2016-01-14 15:33:00 -05:00
[Consul](https://www.consul.io/?utm_source=packer&utm_campaign=HashicorpEcosystem)
2015-07-22 22:31:00 -04:00
is a HashiCorp tool for service discovery, service registry, and health checks.
In the Atlas workflow Consul is configured at the Packer build stage and
identifies the service(s) contained in each artifact. Since Consul is configured
at the build phase with Packer, when the artifact is deployed with Terraform, it
is fully configured with dependencies and service discovery pre-baked. This
greatly reduces the risk of an unhealthy node in production due to configuration
failure at runtime.
2016-08-08 12:45:23 -04:00
[Serf](https://www.serf.io/?utm_source=packer&utm_campaign=HashicorpEcosystem) is
2015-07-22 22:31:00 -04:00
a HashiCorp tool for cluster membership and failure detection. Consul uses
Serf's gossip protocol as the foundation for service discovery.
[Vagrant](https://www.vagrantup.com/?utm_source=packer&utm_campaign=HashicorpEcosystem)
is a HashiCorp tool for managing development environments that mirror
production. Vagrant environments reduce the friction of developing a project and
reduce the risk of unexpected behavior appearing after deployment. Vagrant boxes
can be built in parallel with production artifacts with Packer to maintain
parity between development and production.
[Nomad](https://www.nomadproject.io/?utm_source=packer&utm_campaign=HashicorpEcosystem)
is a HashiCorp tool for managing a cluster of machines and running applications
on them. Nomad abstracts away machines and the location of applications, and
instead enables users to declare what they want to run and Nomad handles where
they should run and how to run them.