Running Nomad Server/Client on ESXi for multiple projects

Imagine the scenario of being a dev “shop” where you have 30 devs in house.
Let’s say you have 6 simultaneous projects. The budget allows for one ESXi on-prem server.
What would be the best way to split the project per clients? I was thinking about splitting the nomad clients, consul client per “datacenter”

If there is a better option I’d love some feedback

Do you already know the learn guides and this page especially?

This is just a lazy answer. If you have already have, let us find an answer to your personal use case. :wink:

Yes. Thanks for the reply.
I managed a high traffic website 1.5k req/sec. Don’t think the issue is there
That is not the problem. The problem is how will the projects be separated. At least somewhat. (makes it easier for creation/deletion and adds clarity).

Kinda like this

But “datacenter” like separation per client

Yep, seen it but didn’t actually look at it. My bad.
Maybe it’s because like a small dev shop cannot really justify the enterprise pricetag? also not really big enough? Anything else comes to mind?

Hi @nimatel! It really depends on the kind of isolation you need.

If you’re mostly concerned about resource isolation, you can definitely use constraints along with DCs to define a set of clients that receives different sets of work. I’ve done this when I wanted to keep a set of VMs reserved for “user-facing” applications vs “monitoring and telemetry” applications, but didn’t want the overhead of running separate sets of servers. But in this scenario, there’s no network isolation between the applications (which was fine for my use case!).

If you wanted to layer network isolation on top of that, you could use our Connect integration to make sure that applications can’t talk across the network to each other unless specifically allowed.

If you need isolation between teams of people, rather than the applications, that’s where the Nomad namespaces feature comes in (which is as you’ve noted, an enterprise feature). But for a small dev shop it’s probably overkill, as you’ve noted. In my experience with small and startup-sized orgs, I’ve mostly worried about team isolation by giving the team tools to prevent accidental screwups, like avoiding deploying a dev project onto the prod cluster by driving all the deploys from CI rather than the command line.


I think that should help me out most. Thank you