<story><title>Capsule Shield: A Docker Alternative for the JVM</title><url>http://blog.paralleluniverse.co/2015/10/08/container-capsules/</url></story><parent_chain></parent_chain><comment><author>mitchellh</author><text>[Disclaimer: Bias as I work for HashiCorp]&lt;p&gt;We designed Nomad[1], our scheduler, with this in mind. Nomad has the concept of &amp;quot;task drivers&amp;quot; and one of those task drivers is &amp;quot;java.&amp;quot; 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_ &amp;quot;containers&amp;quot; (in the abstract sense): Java JARs, statically linked binaries, VMs, etc.&lt;p&gt;If you compile a fat JAR you can schedule it directly with Nomad, and Nomad will handle the isolation and resource constraints. Pretty nifty!&lt;p&gt;And, I noticed Capsule talks about OSv. Nomad can also deploy &amp;quot;VMs&amp;quot; natively on top of Qemu so you can deploy that as well.&lt;p&gt;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.&lt;p&gt;[1]: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;nomadproject.io&amp;#x2F;docs&amp;#x2F;drivers&amp;#x2F;index.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;nomadproject.io&amp;#x2F;docs&amp;#x2F;drivers&amp;#x2F;index.html&lt;/a&gt;</text></comment>
<story><title>Capsule Shield: A Docker Alternative for the JVM</title><url>http://blog.paralleluniverse.co/2015/10/08/container-capsules/</url></story><parent_chain></parent_chain><comment><author>curun1r</author><text>For me, this misses the point of Docker.&lt;p&gt;These days, production and dev environments are extremely heterogenous. We&amp;#x27;re already running a database written in C, a messaging queue written in a JVM language and a front-end API written in Node and all while serving our static assets from a generic web server. And we&amp;#x27;re starting to explore Go and Rust for more specialized components. Docker allows me to abstract away all the platform-specific issues and treat all my infrastructure components as if they&amp;#x27;re homogenous. Docker compose can bring up my entire dev stack. Docker swarm or any of the other orchestration services (ECS, Kubernetes, Nomad, Fleet, etc) can manage my entire production deployment.&lt;p&gt;A JVM-specific option is really a step backwards. Using that, I&amp;#x27;d now have to go back to treating my JVM components differently from everything else. The whole point of Docker, for me, is that none of my diverse infrastructure components needs special consideration.</text></comment>