3 ms·
[Disclaimer: Bias as I work for HashiCorp] We designed Nomad[1], our scheduler, with this in mind. Nomad has the concept of "task drivers" and one of those tas
by mitchellh 11y ago
[Disclaimer: Bias as I work for HashiCorp]
We designed Nomad[1], our scheduler, with this in mind. Nomad has the concept of "task drivers" and one of those task drivers is "java." A task driver provides isolation using things like cgroups automatically, without you having to containerize your application. This makes sense for applications that are already _mostly_ "containers" (in the abstract sense): Java JARs, statically linked binaries, VMs, etc.
If you compile a fat JAR you can schedule it directly with Nomad, and Nomad will handle the isolation and resource constraints. Pretty nifty!
And, I noticed Capsule talks about OSv. Nomad can also deploy "VMs" natively on top of Qemu so you can deploy that as well.
The coolest thing perhaps is that you can mix and match this stuff: you can deploy JARs alongside containers alongside VMs and Nomad handles the binpacking and resource constraints for you. And this is why I bring up this plug for us.
[1]: https://nomadproject.io/docs/drivers/index.html https://nomadproject.io/docs/drivers/index.html
- pron 11y ago> If you compile a fat JAR you can schedule it directly with Nomad That JAR better be a capsule, then :) Non-capsule fat JARs don't have enough information to configure the JVM, don't support native dependencies and in too many cases simply don't work.