5 things containers need to win the enterprise

Container technology like Docker and CoreOS offers tremendous benefits in terms of flexible service and application delivery, but it needs these five key elements to take off in the enterprise

5 things containers need
Credit: Pexels
5 things containers need to win the enterprise

Container technology like Docker and CoreOS is growing in popularity as companies to realize the benefits of the flexible service and application delivery platform they offer. But the technology is not without its challenges in the enterprise.

"There's a lot of confusion out there and some wishful thinking," says Lars Herrmann, general manager of the Integrated Solutions Business Unit at Red Hat. "What we clearly see is containerization has a lot of pull, but it's more of a bottom-up approach right now."

Containers are essentially an entire runtime environment in a single package -- an application and all its dependencies, libraries, and other binaries, and the configuration files needed to run it all. They're similar to virtual machines (VM), but generally much smaller in size. Whereas each VM includes an entire operating system as well as the application, containers can share the operating system kernel with other containers, thus drawing fewer resources.

The upside is that containers allow developers to move applications between computing environments -- from test to staging to production, or from a physical machine to a private or public cloud -- and keep them running predictably and reliably.

There's a lot of promise, but Herrmann says that the technology needs five important things to really take off in the enterprise.

[ Dig into the the red-hot open source framework in InfoWorld's beginner's guide to Docker. Pick it up today! | Get a digest of the day's top tech stories in the InfoWorld Daily newsletter. ]

Integration into the data center
Credit: Pexels
Integration into the data center

Containers can stand on their own, but no element in the enterprise is (or should be) an island. To fully leverage containers, you need to be able to integrate them with infrastructure services such as security, authentication and networking.

For your enterprise to realize the benefits of containers, you need to consider how best to use them for existing workloads, Herrmann says.

"It's fun to build a green field environment somewhere and then wait for people to come, but the reality is this is really difficult," Herrmann says. "The integration is absolutely key. Most companies just build a greenfield and hope for the best."

2 vm management
Credit: Pexels
VM management

Many people are using containers in the context of virtual machines, but those VMs can add up fast, creating the dreaded VM sprawl. Organizations need a way to manage those machines while providing customers with the services they need.

"We want to take workloads existing in virtual machines and see if we can containerize them," Herrmann says. "We can really reduce VM sprawl by moving some of the application-level complexity up to the container fabric."

3 orchestration
Credit: Thinkstock
Orchestration

Companies need to combine multiple containers, combine containers with other applications, and enable communications between containers and other resources. This requires that containers be developed in an environment with a mix of different technologies and computing platforms.

"Orchestration has three major roles in the container stack," Herrmann says. "The orchestration engine is what brings the multiple services and instances of these services together to form an application; that's the first role. The second role is the orchestration engine is responsible for instantiating applications following this definition. It makes choices and decisions about where to place services, launching them, attaching network, compute, storage and security profiles. The third role manages the state of both the cluster and the state of application nodes. It's the watchdog that keeps an eye on everything."

4 scalability
Credit: Thinkstock
Scalability

There are many container solutions out there that purport to scale, but they’re not really designed to do so on their own. In today's dynamic business environment, companies need to be able to scale container technology and deliver capacity to users programmatically.

"Scalability is obviously inherently necessary for a distributed architecture that has multitenancy," Herrman says.

5 respect for legacy
Credit: Pexels
Respect for legacy systems

The arrival of containers doesn't mean the departure of legacy hardware and software -- at least, not all of it. Containers must not only play nicely with existing systems but also exploit the strengths of those systems. 

"It's a necessity for the enterprise," Herrmann says. "There are options for an enterprise organization in adopting containers -- some of them are very intrusive and disruptive. We have designed the technology so that we can nicely layer on top of existing infrastructures. You can use containerization as a deployment method. It's not just about development of net new cloud applications. You can containerize existing workloads."