BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News HashiCorp’s Waypoint Targets Consistent Build and Deploy Workflows across Platforms

HashiCorp’s Waypoint Targets Consistent Build and Deploy Workflows across Platforms

This item in japanese

HashiCorp announced Waypoint - an open source project that aims to provide a consistent build and deploy workflow across different platforms including Kubernetes, AWS ECS, Nomad, Google Cloud Run, Docker, Buildpacks, and Azure Container Instances.

Waypoint’s stated aim is to be a toolset that lets developers deploy to different cloud platforms using the same commands. According to the announcement post, Waypoint wants to solve two primary challenges - the complexity of deployments arising from various options available, viz.  "containers, schedulers, YAML files, serverless", and from the different tools depending on the target where the app is deployed - "Docker and kubectl for Kubernetes, HashiCorp Packer and Terraform for VMs, custom CLIs for each serverless platform".

Although Waypoint aims to provide an abstraction on top of platforms, it expects the user to understand the underlying platform - and "you still have to know something like AWS well to use Terraform", says Mitchell Hashimoto, founder and CTO of HashiCorp - AWS being just an example here. This raises the question of what the long term goals of Waypoint are. The roadmap includes goals encompassing a wide variety of aspects, and there likely is a plan to integrate with Terraform. Hashimoto notes that the actual timelines for the roadmap "really depends on how much community feedback we get. If we’re planning feature A but suddenly loads of people want feature B, we’re going to reprioritize and change timelines".

HashiCorp had an application delivery tool called Otto that was subsequently abandoned. Hashimoto notes that one of the differences between Otto and Waypoint is "Waypoint does not own/manage any infrastructure; Otto attempted to manage the infrastructure. With Waypoint, you have to bring this yourself". Also, Waypoint has pluggability in terms of tools, whereas Otto was mainly focused on HashiCorp's own tools.

Waypoint uses the HashiCorp Configuration Language (HCL) to declare app configuration. HCL is also used by other HashiCorp tools like Terraform. The lifecycle stages of an application in Waypoint are build, deploy and release. The last stage "activates a previously staged deployment and opens it to general traffic". There is built-in support for exposing a URL with a TLS certificate - which runs on a HashiCorp provided service. This service - which is meant only for development and can be turned off - can be self-hosted too. The basic command 'waypoint up' performs all three stages, but they can also be run individually. Viewing logs and running remote commands is possible but they are meant for developer debugging and not to replace full-fledged tools like log aggregators.

Waypoint has a plugin architecture to talk to external tools. The current list of plugins includes some cloud providers as well as vanilla Kubernetes. It can also integrate with existing CI/CD systems - that can be used when deploying to non-dev environments. Choosing which version to deploy and promoting build artifacts from staging to production is not available yet, but part of the roadmap.

The source code for Waypoint is available on GitHub.

 

Rate this Article

Adoption
Style

BT