ltstudiooo - Fotolia
Containers offer enormous flexibility and speed in application deployments, but there are challenges with them. Adding hundreds or even thousands of virtualized entities to any local, remote or cloud environment carries significant management hurdles. Organizing, tracking and monitoring large numbers of virtual container instances demands careful attention to orchestration and automation.
Generally, organizations add a pool of available virtual or bare-metal servers -- called a cluster -- to container management tools. The tools then organize, provision, deploy and monitor containers on that pool of servers -- called scheduling. A more comprehensive container orchestration framework might also handle networking connections between containers across different servers and provide functionality such as load balancing, network name resolution for each container, container code updating and so on. There are several important container management tools to consider.
Kubernetes is perhaps the best-known open source container automation, scaling and management tool for containerized workloads. Kubernetes is supported by major cloud providers, like Microsoft Azure and Google Cloud Platform, and allows the containers that constitute an application to be grouped into logical units -- called pods -- for simpler discovery and management.
Docker Compose and Swarm
Docker offers several container management tools, including Docker Compose (to define multicontainer applications) and Docker Swarm (to organize and manage containers across multiple host systems). Compose and Swarm are typically used together to implement a container orchestration platform for the business and are supported on public clouds, like Azure.
Test your knowledge of Docker components and services by taking this quiz.
Apache Mesos is an open source orchestration and management platform that offers strong resource isolation, high scalability and availability, support for launching Docker and appc containers and versatile scheduling policies. Mesos runs on Linux, OS X and Windows and is cloud provider-agnostic.
Google Container Engine
Consider the services included with outside offerings. For example, Google Container Engine (GKE) provides a container cluster manager and orchestration system for running Docker containers through Kubernetes in GKE.
Deis builds on Kubernetes to provide an open source platform capable of managing applications in Docker containers. Deis has been adopted by Microsoft and will probably appear as a native Azure service in the future.
In addition, Amazon EC2 Container Service (Amazon ECS) is a scalable container management service that supports Docker containers and allows workloads to run on a managed cluster of Amazon EC2 instances.
Red Hat OpenShift
The Red Hat OpenShift container platform uses Kubernetes for automated container orchestration and management, with features including service discovery, policy-based scheduling, container health monitoring, automatic scaling and so on. OpenShift includes a container image registry and allows image updates and rollbacks that support build automation for DevOps.
Finally, there are numerous third-party container management tools, like Apcera, that offer an enterprise-class container engine along with container workflow, orchestration, scheduling, storage and networking capabilities.
Navigate Docker's orchestration approach
Compare ECS to other orchestration tools
Learn about CoreOS container orchestration tools
Dig Deeper on Application virtualization
Related Q&A from Stephen J. Bigelow
Navigating data center malfunctions when hardware is off premises can be tricky. Organizations must have strong SLAs with their colo provider to ... Continue Reading
Regression tests and UAT ensure software quality and both require a sizeable investment. Learn when and how to perform each one, and some tips to get... Continue Reading
Learn the meaning of functional vs. nonfunctional requirements in software engineering, with helpful examples. Then, see how to write both and build ... Continue Reading