Jan 22 2021

Should Businesses Use Commercial or Open-Source Container Management Tools?

Containerization is all the rage in DevOps, but managing them all requires the right tool. Open-source Kubernetes isn’t always sufficient to meet a business’s needs.

In less than a decade, application developers have fallen in love with containers, and now they’re everywhere. Containers are like the “light” version of virtual machines — a technology that isolates application components and their dependencies while simultaneously providing virtualization and scalability.

Containers bundle together an application’s code with all of the runtime libraries, system tools and settings needed to support the application. The server hosting containers runs its own native operating system, Linux or Windows, and a thin abstraction layer that supports and helps manage all of the containers on top of it.

Because the container depends on the underlying host OS, application containers are very lightweight and can be created and shut down quickly. One survey of containers by the software monitoring firm Sysdig found that 54 percent of containers had a lifespan of less than 5 minutes.

Containers Can Be an App Developer's Dream

Containers are not an alternative to virtual machines; they are a whole new way of developing and deploying applications to full-scale production environments. The demand for them comes from application developers who enjoy the ability to create small application components that can be scaled, repaired, replaced and released individually. Rather than doing version releases every six or 12 months, containers support an agile development methodology in which pieces of the application can be pushed from programmer to production in a very accelerated manner.

Containers mesh naturally with public cloud services from vendors such as Amazon, Google and Microsoft. Cloud customers like the “just in time” scaling strategy that cloud vendors offer, and containers fit beautifully with that: Scale up and out by launching as many container components as you need to handle your workload, then drop back when demand goes away. This fit has made containers the norm for serverless agile DevOps teams.

Many enterprises are using container technology with existing applications as well as new ones. Containers for web servers and databases are extremely popular, as are containers for complex operating environments such as Java-based applications. Any application that has multiple tiers is a candidate for container technology to both help maintenance and scalability. Some software vendors are also delivering their applications in containers as an alternative to hardware or virtual appliances.

A Closer Look at Orchestration Options for Containers

If a business had only one server running a single container, it wouldn’t have much use for container management. But, as with virtual machines, managing containers is a critical task for those past the baby steps.

Container management tools have a long list of tasks they manage, including making sure that containers are actually up and running (and handling failures), spreading the containers around the hosts for load balancing and performance management, linking containers to persistent storage such as storage area networks and databases, and handling sensitive information such as passwords and private keys.

The best-known container management tool is Kubernetes. Google, one of the leaders in the shift to containerized applications, developed Kubernetes and released it to the open-source world in 2014. Because it is based on open-source code, most organizations starting out with containers start with Kubernetes in one form or another. Each of the major public cloud providers also has their own version of Kubernetes: Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Service (EKS) and Azure Kubernetes Service (AKS).

However, Kubernetes isn’t the only game in town for container management. For example, Docker has its own container management tool, Docker Swarm, as does the Apache Software Foundation with Apache Mesos. Even so, the popularity of the Kubernetes toolkit means that almost any container management system you select will be based on Kubernetes in some way.

That’s true of VMware’s Tanzu Kubernetes Grid Integrated Edition, as well as of IBM’s Red Hat OpenShift and HPE’s Ezmeral.

MORE FROM BIZTECH: Why more businesses are turning down hybrid options in favor of full-cloud environments.

Is Open Source Enough for a Business?

If Kubernetes is open source, should a business run anything else? It depends. There are really two reasons why you might not immediately start with Kubernetes: a lack of internal skills, or anticipated complexity.

Let’s start with skill sets. Kubernetes and containers are part of a very fast-moving ecosystem of new products and ideas in software development, and while there are some large open-source projects, there are lots other components that thrive in this ecosystem. The terminology and vocabulary are all new — and foreign to many IT managers. At the same time, the same DevOps model that puts developers in the driver’s seat when it comes to the deployment and provisioning of applications also means there are many more voices at the table when it comes to choosing toolsets and operations models. The result is that it’s seldom enough to say, “OK, let’s install Kubernetes and some Docker engines.” Instead, you’ll discover a whole world of bits and pieces that developers are asking for in order to optimize their workflow.

IT groups that don’t have direct experience with integrating all of these tools together may find it easier to lean on a commercial product with full support rather than dive into the world of open-source container management with a difficult learning curve and a fast pace of upgrades and updates.

The other reason to consider commercial container management is that complex enterprises require a full application deployment solution, and Kubernetes is just one part. It doesn’t do anything, for example, when it comes to actually building applications for deployment. It doesn’t handle the management of the underlying Docker engines. It doesn’t have an overall monitoring and alerting system. It doesn’t help secure the communications between different containers.

While it may be possible to assemble pieces from open-source projects and commercial products into a larger solution, starting with a supported commercial product that meets the needs of a complex enterprise from day one can ensure that the focus of the development and operations teams is on applications, and not on the mechanics of keeping the infrastructure running.

BlackJack3D/Getty Images