chris - Fotolia
HashiCorp Nomad vs. Kubernetes matchup intensifies with 0.11
HashiCorp Nomad may not overtake Kubernetes but could capture broader enterprise attention with container-like orchestration features for legacy apps in VMs.
A HashiCorp Nomad beta release this week could help it encroach on Kubernetes' territory with advanced IT automation for legacy applications and a simpler approach to container orchestration.
Hashicorp first released the open source workload orchestrator in 2015, a year after Kubernetes arrived in the market. But since then, Kubernetes has become the industry-standard container orchestrator, while Nomad Enterprise is HashiCorp's least-used commercial product in a portfolio that also includes Terraform infrastructure as code, Vault secrets management and Consul service discovery.
These products are also commonly used in Kubernetes environments, and HashiCorp officials typically prefer to frame Nomad as complementary to Kubernetes, rather than a competitor. In the past, HashiCorp's documentation has pointed out that past versions of Nomad orchestrated only compute resources, scheduling workloads on separately managed underlying resources. This made for a simpler but less complete approach to workload automation, as previous versions of Nomad did not handle networking and storage for application clusters, as Kubernetes does.
However, with version 0.11, released in beta this week, HashiCorp Nomad's storage features draw closer to those offered by Kubernetes. The new capabilities include support for shared storage volumes through the open source Container Storage Interface (CSI), a set of APIs supported by most major storage vendors. CSI is most commonly used with Kubernetes, but any CSI plugins written to work with Kubernetes will also work with HashiCorp Nomad as of version 0.11.
HashiCorp Nomad version 0.11 also introduces horizontal application autoscaling capabilities, as well as support for task dependencies in cases where application components must be deployed in a certain order on a container cluster.
"[Nomad] can still coexist with Kubernetes, especially for legacy applications when customers prefer to use Kubernetes for containers," said Amith Nair, VP of product marketing at HashiCorp. "But the [new] features make it a more direct comparison, and we're starting to see increased usage on the open source side, where some customers are downloading it to replace Kubernetes."
In the last six months, open source downloads of HashiCorp Nomad have doubled each month to reach 20,000 per month, Nair said. A hosted Nomad cloud service also remains on the company's long-term roadmap, which would likely compete with the many hosted Kubernetes services available.
HashiCorp Nomad seeks app modernization niche
Most of HashiCorp Nomad's workload orchestration features can be used to modernize legacy applications that run on VMs. Nomad's scheduler, when used with Consul service discovery, can optimize how applications on VMs and containers use underlying resources. With version 0.11's CSI support, HashiCorp Nomad can perform non-disruptive rolling updates of both container-based and VM-based applications.
Such features may put HashiCorp Nomad in closer competition with IT vendors such as VMware, which offers Kubernetes container orchestration alongside VM management. HashiCorp has an uphill battle in that market as well, given VMware's ubiquity in enterprise shops. But as with Kubernetes, HashiCorp Nomad could capture some attention from IT pros because of its simplicity, analysts said.
Roy IllsleyAnalyst, Omdia
"Nomad can infiltrate the same market as VMware's Project Pacific and Tanzu with a low-cost alternative for users that want to manage traditional workloads and cloud-native workloads with one entity," said Roy Illsley, analyst at Omdia, a technology market research firm in London. "The challenge is that HashiCorp hasn't been great at marketing -- tech people know it, but tech people don't necessarily sign the checks."
With a recent $175 million funding infusion for HashiCorp, however, that could change, and HashiCorp could play a role similar to Linkerd, a service mesh rival to Google and IBM's Istio that has held its own in the enterprise because many consider it easier to setup and use.
HashiCorp Nomad vs. Kubernetes pros and cons
Two HashiCorp users published blog posts last year detailing their decision to deploy Nomad over Kubernetes. The on-premises IT team at hotel search site Trivago moved its IT monitoring workloads to the public cloud using Nomad in early 2019. Trivago's IT staff already had experience with HashiCorp's tool and found Kubernetes more complex than was necessary for its purposes.
"The additional functionality that Kubernetes had to offer was not worth the extra efforts and human resources required to keep it running," wrote Inga Feick, a DevOps engineer at Trivago, based in Dusseldorf, Germany. "Remote cloud solutions like a managed Kubernetes cluster or [Amazon ECS] are not an option for our I/O-intense jobs either."
Another freelance developer cited Nomad's simplicity in a November 2019 post about porting a project to Nomad from Kubernetes.
"Kubernetes is getting all the visibility for good reasons, but it's probably not suitable for small to medium companies," wrote Fabrice Aneche, a software engineering consultant based in Quebec. "You don't need to deploy Google infrastructure when you are not Google."
Both blog posts noted significant downsides to HashiCorp Nomad vs Kubernetes at the time, however.
"Nomad is one binary, but the truth is Nomad is almost useless without Consul," Aneche noted in his post. This adds some complexity to HashiCorp Nomad for production use, since users are required to use Consul's template language to track changes to the Nomad environment. Version 0.11 adds more detailed insights and alerts to a Nomad remote execution UI to make service management easier. Aneche did not respond to requests for comment about the version 0.11 release this week.
Meanwhile, Trivago's Feick noted the lack of support for autoscaling in January 2019 made HashiCorp Nomad cumbersome to manage at times.
"You need to specify the resource requirements per job," she wrote. "Give a job too much CPU and memory and Nomad cannot allocate any, or at least not many, other jobs on the same host. Give it not enough memory and you might find it dying… It would be neat if Nomad had a way of calculating those resource needs on its own. One can dream." Feick didn't respond to requests for additional comment this week.
HashiCorp Nomad version 0.11 takes the first step toward full autoscaling support with horizontal application autoscaling, or the ability to provide applications with cluster resources dynamically without manual intervention, a company spokesperson said.
Subsequent releases will support horizontal cluster autoscaling that adds resources to the cluster infrastructure as necessary, along with vertical application autoscaling, which will add and remove instances of applications in response to demand. Autoscaling features will work with VM workloads but are primarily intended for use with containers.