Nomad is a workload orchestrator tool from Hashicorp that helps you manage deployments on your infrastructure with simple to use, unified workflows. The largest attraction for our DevOps team has been how it helps to make things super simple to manage and learn.
In this blog post, we’ll be going through some reasons we made the shift and how Nomad has made our developers’ lives easier.
Modern approach to orchestration
It’s safe to say that if there was ever a big refactor of Kubernetes, you’ll end up with a new tool that will look a lot like Nomad– more modern, but especially with its approach to orchestration.
If someone has Docker Swarm experience, they’ll feel right at home with Nomad, whose orchestration has a lot of parallels. Since the experience is so simple to understand and collaborate on, we have better confidence in the orchestration our team writes. It’s also easier to recover from any failures, and infrastructure management is a lot more reliable.
Onboarding on Nomad has proven to be relatively easier for everybody on our team. The source code is quite readable so that even a single person reading the source code can understand how it works internally. This benefits our team since we don’t need to wait for training or to understand complex API documentations. Ultimately, we can grow our DevOps team at a much faster pace and whenever we need to since Nomad is easier for new talent to learn than Kubernetes.
Easy discoverability and federation
With Nomad, service discoverability for tools is a lot easier, and different tools can interact with each other more smoothly and with easier interoperability. With different Kubernetes implementations, different cloud vendors often run into inconsistencies and have trouble with things like credential management. Yet with Nomad, everything can be easily decoupled; we can use whatever individual tools we like, and they’ll work together without much trouble. This helps us immensely as it means we don’t have to figure everything out on our own or face configuration challenges.
Nomad is very focused on its objectives. While it only does a few things, it does them very nicely, instead of doing many things but not being especially good at any of them. The problem with systems like that is that they end up becoming too complex to work with. In contrast, Nomad frees time up for us to focus on adding more features instead of fighting with our tooling.
Not just containers
In addition to containers, Nomad can manage VMs and legacy/native applications. Nomad essentially just runs a job, letting us choose different tools to work with– e.g. Vault for secret management, Consul for service discovery, and so on. This makes it easy for us to be flexible and use whatever tools we prefer to use for different tasks, instead of depending on one big complex suite of software.
Overall, while Kubernetes has a lot of advantages and can be great for the codebase and infrastructure size of big players, it just isn’t as helpful for our particular use-case as Nomad is. By shifting to Nomad, we’ve found we’re more flexible and quick when it comes to managing and scaling our infrastructure and team, thanks to the tool’s simplicity. Its simplicity also makes it a lot easier to build systems that future team members are happy to inherit, which is especially important for a growing technology startup.
Keep an eye out on our blog for more stories surrounding how we built Polymesh. Curious about something specific? Join our developer community to let us know what you want to hear next!