With major IT trends like the cloud, popularity builds over a period of years—waxing and waning but moving inexorably forward. Other trends take the enterprise world by storm, seeming to come out of the blue. That’s been the case over the last 12 months for container environments and distributed application platforms like Docker that provide the ability to spawn off mini-containers for rapid scalability. It’s proof that profound changes can come in small packages.
Traditional late adopters are jumping in early
Simon Maple, developer advocate at ZeroTurnaround, was surprised by the alacrity with which big business embraced containerization. "Docker is something that's already gained a lot of traction in 2014. One of the big things for me is that it's usually the startups and SMBs that pick up on it early on. But already we've seen the likes of IBM and RedHat jumping on the container style infrastructure. You see that hitting enterprises already. That's surprising for something that's only been around a little over a year."
Docker is something that's already gained a lot of traction.
Simon Maple, ZeroTurnaround
Is virtualization on its last legs?
Jevgeni Kabanov, CEO of ZeroTurnaround, had a startling prediction for how much this new trend may change the IT scene. "I think in the long term, containerization will kill virtualization." Bold words indeed, but they've been on Kabanov's mind for some time. "I never understood the point of virtualization. I've had the same opinion for the last ten years. I think virtualization will always have a segment. But most people don't want to virtualize the entire operating system. They just want to run their app in a container. They want a predictable way to run their app. Virtualization adds a ton of performance overhead. Will all things equal, why would you want to use virtualization?"
Pros and cons of containerization
Because containerization allows organizations to run applications on the host operating system, there are a number of potential benefits over a fully virtualized environment. There's no need to devote resources to a second O/S, scheduler, or paging system. There are gains in efficiency for I/O, CPU, and memory. Even though virtualization was originally developed to help organizations get more out of their physical infrastructure, it does come with a cost.
Is there a downside to containerization? Removing the layer of abstraction may create more efficiency, but it's not possible to guarantee that resources are available in the same way as with virtualization. There's also less isolation—which is a potential security risk. Security issues could rapidly escalate without having to make it past a hypervisor. For security-conscious enterprises, the added overhead of virtualization might be worth the cost. Or, containerization might be complemented with additional security measures on the host O/S to make up for the lack of isolation.
What containerization could mean for the Java enterprise community
Maple had an interesting perspective on how containerization might impact virtualization as well. "One of the big values in the JVM is that you can, supposedly, write it and then deploy on different images and environments. With the containers, the value does lessen slightly. You don't need to have that write once/run anywhere capability. You can have this LINUX image that you do all your development and spawning on. You can throw that anywhere and still have your LINUX based distribution."
Will an outdated term be resurrected?
While virtualization may be facing serious challenges from the containerization trend, SOA might be making a bit of a comeback—at least from a conceptual standpoint. Ray Auge, Senior Software Developer at Liferay, explained: "I know SOA is kind of a dead term, but what cloud is technically about, is delivering everything as a service. So, it's the services that are critical. You are presenting a collection of services to a multitude of end user clients. But you are also combining those like a mashup to create applications. It's the services aspect that we're seeing being represented in the Docker trend, containerization, the death of app servers, and micro-services. All of this is driven by the need to individually scale services, monitor and define them, combine, reuse, maintain over time, and make changes without redeploying."
Will old favorites still stick around?
The simplicity of containerization might make the JVM seem less desirable, but Simon pointed out that the JVM has a lot more value to bring to the table in other areas. It's probably not at risk. However, major JEE players like WebSphere and WebLogic might be given a run for their money. It's too early to tell how things will play out. But we'll be watching to keep readers up to date with the hot debate of containerization vs. virtualization.
How have you leveraged Docker in the enterprise? Let us know.