If you are an enterprise linux vmware or z/Linux customer, and run lots of Linux virtual machines, you are doing yourself a disservice if you aren’t at least investigating Linux Containers, LXC, and Docker. The performance gain is significant, it makes the technology really hard to ignore. My employer uses mainframes running z/Linux guests, and it’s a significant investment as we grow.
Imagine a different datacenter, where you had an OpenStack cloud of servers, 10 of each JVM to start, but each JVM cloud growing and shrinking with the cloud as usage and load fluctuates throughout the day. You can run thousands of JVMs on a short row of servers in your datacenter. No longer do you need to run enormous data centers to house all those machines, pay for power for all those machines, pay for people to operate all those machines.
Linux Containers are a really cool, new twist on “virtualization”. Assuming your workload runs well on Linux, that is.
I really see containers being a game changer in the enterprise security world too. Every server will be able to isolate apps in their own containers, which can have just enough files to run your website, nothing more. Containers can be setup to limit CPU and memory resources, making it easy to grow as Java max heap sizes grow over time. Instead of hundreds of virtual machines, you’ll have hundreds of containers running your apps, all running natively on the raw metal of your servers. No virtualization overhead at all.
Containers don’t need every program a minimal linux install gets. They only need enough to get your app running. Maybe a shell, some scripts and utilities, some libraries, that’s good enough. I’m sure Docker has figured out the best way to package a container. LXC is capable of running a Docker container, or so I’ve read. I’ve no real world experience with Docker, yet. Becoming a well accepted packing format, I can’t imagine it being long before app vendors start offering a container version of their apps for download.