Choose the right container deployment strategy and software
A collection of articles that takes you from defining technology needs to purchasing options
You can get the benefits of container management software only if you select the right product, or products, for your deployment. Vendor evaluation for your container infrastructure can be a complex process as there are many layers to container management software that you must consider.
Virtualized hosting is a dynamic space. Orchestration is perhaps even more dynamic, and a fusion of containers and orchestration is the most dynamic of all. Products change rapidly, and the trend seems to be moving away from the simplest models of container deployment toward a middle ground of complexity and capability in a combination of Docker and Kubernetes.
While reading these in-depth product descriptions, keep in mind that you will likely need more than you initially realize to make container deployments work in scalable production environments. Once you have a short list of container management software, explore online documentation from the vendors, contact them and get details on terms and conditions.
By submitting your personal information, you agree that TechTarget and its partners may contact you regarding relevant content, products and special offers.
Amazon is the leader in public cloud computing, so its container hosting support capabilities are critical to consider for any business that plans for containerized applications, even if it doesn't currently use the public cloud or Amazon's specific services. Amazon has two container options, Elastic Container Service (ECS) and Elastic Container Service for Kubernetes (EKS), and both let you deploy containers with your choice of software on Elastic Compute Cloud (EC2) instances. Both can utilize Amazon's emerging proprietary Fargate technology (Fargate availability for EKS is slated for 2018), which enables container systems to work on virtual machines (VMs) without the user managing the underlying EC2 instances. Fargate simplifies container deployments on EC2, a task that many users found problematic compared with the use of containers on other public clouds. It's a separate component, so you must be sure to purchase it as you need it.
Navigating the options here can be complicated, but for basic Docker hosting and users who don't want to be bothered with EC2 instance management, ECS on Fargate is the best choice. If you need Kubernetes with EKS, you probably want to use Fargate to manage your cloud containers and enterprise containers in the same way. Be wary: If you're looking at Amazon's container service for its integration of other Amazon Web Services (AWS) features, these might lock you into Amazon or limit your portability between data center container hosts and the cloud. Amazon's container approach isn't open source itself, and its current Kubernetes component may or may not be fully up to date. So, be sure to verify this.
Licensing/pricing: EC2 is available for a free trial. Once the trial is over, there are four ways to pay:
- On-Demand: Pay for compute capacity per hour or per second, depending on which instances you run. This method is best for users who do not want to be tied down in a long-term commitment and want lower costs and flexibility.
- Reserved Instances: Requires a one- to three-year commitment. Provides users with up to a 75% discount compared to On-Demand pricing. Provides capacity reservation. Good option for users that need a specific storage capacity and have apps with steady state usage.
- Spot Instances: Good option for users who require more flexibility in their start and end times and who need large amounts of capacity available quicker and for a lower price. Users can request spare computing capacity for up to 90% off the On-Demand price.
- Dedicated Hosts: The physical EC2 server can also be used with the user's existing server-bound software license, reducing the overall costs. This can be purchased on demand or as a reservation for up to 70% off the On-Demand price.
Amazon ECS has two different charge models:
- Fargate: You pay for the amount of virtual CPU and memory resources that your containerized application requests on a per-second basis.
- EC2 (see the EC2 pricing details above.)
Amazon EKS is accessible by preview. Pricing details are not yet available to the public at the time of this writing. Prospective customers should contact Amazon directly for details.
Mesos is more than a container package; it's a distributed systems kernel that treats containerized applications much the same way that Linux treats traditional applications. Designed for distribution across large resource pools, Mesos creates an abstract of a hosting point that you can then map to really any data center or public cloud service, physical or virtual host, or OS platform. This style of deployment is big and ambitious -- and difficult. Mesos is open source, and if you are unable to evaluate and deploy Mesos with the documentation available online, you either need professional services support or you need a different container approach.
Mesos is the heart of a larger project called Mesosphere DC/OS, which not only supports the unique Mesos abstraction of container hosting but also integrates with Docker and Kubernetes. Mesosphere DC/OS is available in open source and supported Enterprise versions. Most Mesos container users want to assess and deploy Mesosphere DC/OS, and it's also a smart path for large enterprises that outgrow Docker and Kubernetes alone because of their scale of hybrid cloud deployment or their extensive use of multi-cloud. For big data applications, especially Hadoop clusters, Mesosphere DC/OS is a good place to start as long as you have the technical skills to deploy and sustain it. If you do look at Mesos or Mesosphere, you should also evaluate Mesosphere's companion orchestration tool, Marathon.
Licensing/pricing: Subscription pricing is based on the number of nodes (physical or virtual) in your environment. Subscriptions may include either Premium (24/7) or Standard (9 to 5) support.
Azure Container Service
Microsoft is another container supporter that increasingly utilizes Kubernetes. Azure Container Service (AKS) is a managed cluster tool, which currently has a Managed Kubernetes public pilot running, that resembles Google Kubernetes Engine or Amazon EKS with Fargate. You can still currently use AKS with your own orchestrator, but this may change in the future as Microsoft appears to be heading in the public pilot direction.
Like the container tools from Google and Amazon, Microsoft's container support provides for integration with other web services offered to developers for ease of supporting mobile apps, web front ends and other components. Microsoft's big asset in its container management offering may be Azure Service Fabric, which is a component orchestration tool particularly well-regarded by enterprises. Azure is popular with SMBs that have adopted Microsoft's Windows Server technology and the wide-reaching vendor's vertical and horizontal market business applications. AKS is generally compatible with all those applications, but check with a company rep for confirmation.
Licensing/pricing: AKS is a free container service. Users only pay for VMs, associated storage and the networking resources consumed. The website includes a Container Services calculator as a resource.
CoreOS developed Rkt to create a built-for-security container engine, letting users operationalize their container deployment as Docker does. The product is well-known, but Docker is slowly overshadowing it for typical business container use. CoreOS Rkt excels in container portability, environment security and flexibility to make enhancements or build on the basic features of the package. But because it isn't as popular, Rkt's documentation, alternative sources and support are well behind those of Docker. The software was released by CoreOS to open source, under the Cloud Native Computing Foundation (CNCF), which also hosts Kubernetes. The Rkt community website on GitHub is not for technical novices.
Unless you have unusually strong technical support in-house, SMBs should probably pick Docker over Rkt. If you do want to deploy Rkt and aren't an open source guru, you probably should consider CoreOS' Tectonic brand, which is the commercial license version of the entire CoreOS stack and relies on Kubernetes. Some SMBs prefer Tectonic, even if they don't have specific container security needs, for the convenience of a supported software tool. If support is a primary concern, check all the other Kubernetes bundles, some of which may be cheaper.
Licensing/pricing: Tectonic is free for up to 10 nodes. After 10 nodes, the company sets pricing with customers.
Editor's Note: As of January 2018, Red Hat has acquired CoreOS.
Docker with Swarm
Docker is open source and currently the default choice for container hosting. And it likely will be so for the foreseeable future. It augments Linux container support to include the basic features necessary to deploy applications. You should start container planning by assuming you'll use Docker and add or change only what's necessary. You can get Docker runtimes directly from the Docker website for the most popular Linux distributions. Other suppliers can offer more choices, and you can compile your own Docker image from source code if you have special needs. You should consider Docker with the swarm mode clustering and orchestration feature. Docker is starting to promote a Docker and Kubernetes combination as well.
You can get a Docker image directly from Docker for public cloud providers, such as Amazon and Microsoft -- a good idea if you plan to use both data center and public cloud containers. If your container plans are public cloud-centric, obtain Docker directly from the provider if you can. There are more bundles available for Docker than any other product except Kubernetes. So, shop around for the best option, not based on price but based on what other features the bundle offers.
Licensing/pricing: Docker is open source, but Docker Inc. offers products available for purchase. The Enterprise Edition is $750 per node. There's also a custom support option from Docker and a Community Edition, which is available for free.
Google Kubernetes Engine (formerly Google Container Engine)
Google invented Kubernetes, and many enterprises have found Google's cloud services to be highly competitive with both Amazon and Microsoft. One emphasis of Google is to provide stateful resources to containers, which can be a problem in some public clouds. It's designed for Docker deployments, which shouldn't be an issue for most container prospects, but as the name suggests, this is really about deploying Kubernetes clusters on Google Cloud Platform (GCP). Google Kubernetes Engine (GKE) is a managed Kubernetes service, with Google monitoring the clusters for health. GKE is appealing to container users who want public cloud support without the details. However, Amazon's Fargate can bring similar capabilities, so if you have no current public cloud provider, compare the two options.
Google keeps GKE fully aligned with the latest features of the Kubernetes project, which is important for users who want a cloud-based Kubernetes service but also want to use Kubernetes on premises. In fact, if you think of your container requirements more in terms of Kubernetes clusters than Docker, Google might offer the best experience. Kubernetes experts generally agree that Kubernetes on GCP is better than on any other public cloud and far easier to use and integrate. SMBs that don't have a required cloud provider and want the easiest possible Kubernetes experience might find Google's implementation the best choice for their organization.
Licensing/pricing: For GKE, you are billed for each instance according to Google Compute Engine's pricing, until the nodes are deleted.
First developed by Google, Kubernetes is an open source orchestration tool under the CNCF that makes it easier to manage application lifecycles for containerized applications. It's exploding in popularity -- to the point where it is eclipsing Docker as the most recognized software for containers. But be aware that you still do need container hosting (usually Docker or CoreOS Rkt) to use Kubernetes. Because Kubernetes is so often bundled with basic container hosting software, you may want to utilize Kubernetes as an orchestration tool to supplement basic container software and get both from one source.
Kubernetes offers strong support for clusters of hosting points, an abstraction technique that makes it easier to deploy complex, multicomponent applications reliably. Kubernetes provides an online guide to find the best source for the Kubernetes runtime. Its utility explains why Kubernetes is a part of the great majority of container management software bundles available, and you'll find it included with some proprietary, closed source components from some suppliers, including Amazon.
If container plans suggest an eventual need for Kubernetes orchestration, it would still be smart to get both Kubernetes and basic container software from one source, as a bundle. To orchestrate hybrid or public cloud containers, consider getting Kubernetes and container hosting from, or with the advice of, your public cloud provider. Unless you are truly an expert in open source software, avoid compiling Kubernetes directly from source code. If you do undertake that task, be sure to compile your container hosting choice, too, in the same environment.
Licensing/pricing: Kubernetes is open source in itself but is the basis of many paid container management software packages.
Marathon may well be the only real orchestration alternative to Kubernetes, and it does support Docker deployments within the Mesos context. However, because it was designed as an open source container orchestration tool for Mesos and Mesosphere DC/OS, only IT organizations that are already committed to one of these, or expect to be within a year or so, should consider Marathon.
The primary benefit of Marathon container management software is distributed operation; there is no single process to fail, because the entire orchestrated cluster can elect a leader. It has well-regarded policy control features to automate condition handling and reduce human intervention; excellent load balancing for support of scaling and failover; and overall superior support for the containerizing of large, multicomponent applications on large and diverse resource pools. Marathon is also a lot more complicated than Kubernetes. This container management software is not for SMBs or for enterprises that only plan for smaller container deployments.
Licensing/pricing: This is an open source option on GitHub that anyone can download. It is also included in the Mesophere DC/OS Open Source and Enterprise versions.
Red Hat OpenShift
Red Hat is well-known for providing open source tools, particularly Linux software, which are standardized into distributions that are all seamlessly integrated with each other and fully supported. Many businesses, large and small, use Red Hat products, and those whose data centers are based on Red Hat Enterprise Linux should give OpenShift serious consideration. Take note that Red Hat recently overhauled OpenShift, although it is not a massive change.
Like many other products here, OpenShift is a suite based on Docker and Kubernetes. Where it differs from other Docker/Kubernetes bundles is in the integration with the rest of Red Hat's products, especially tools for software project control. This level of integration makes OpenShift unusually trouble-free for organizations that don't have a lot of Linux or container expertise; it also helps enterprises that develop for and in a Red Hat Linux environment. SMBs should not be put off by the website reference to OpenShift as a "container application platform that brings Docker and Kubernetes to the enterprise." They might, in fact, find Red Hat and OpenShift a single-stop data center and cloud shop.
It is important to be wary of the version problem with open source software, especially with broad platforms, such as this one from Red Hat. Red Hat often lags behind the upstream open source versions to package and integrate everything in a supported enterprise context. Sometimes, you can run afoul of versions if you introduce non-Red Hat elements into your plans.
Licensing/pricing: OpenShift is available in two plans: Starter and Pro.
- Starter: Users can sign up for free and have access to one project, 1 GiB terminating memory and 1 GiB storage.
- Pro: Users can opt for 10 projects with 2 GiB memory and terminating memory available to expand upon. This starts at $50 per month.
VMware Pivotal and vSphere Integrated Containers (formerly Photon Platform)
VMware, the foundation of the whole virtualization movement, is better known for its VM technology than for containers. Its initial container strategy was a Linux version, Photon Platform, optimized for container hosting, and Photon is still an open source project. However, a recent partnership with Pivotal and Google is now VMware's container focus.
Pivotal Container Service (PKS) is -- like so many container suites available today -- built around Kubernetes. In fact, as VMware uses the PKS acronym, it brings Kubernetes to the fore, even in nomenclature. While PKS is built in a partnership with Pivotal, it is independent of Pivotal's Cloud Foundry software.
PKS also runs under vSphere, and like vSphere Integrated Containers (VIC), it has deep connections into the vSphere/software-defined data center (SDDC) framework to facilitate management of mixed environments. Its strongest point, perhaps, is its deep integration with NSX-T, the popular VMware software-defined networking architecture, which facilitates configuration and reconfiguration of complex applications.
To make things a bit more confusing, VMware also offers VIC, which is an Integrated Container Engine that's largely Docker-compatible at the UI and API level. VIC has deep hooks with vSphere, which makes containers a more natural part of the VMware world. That world is defined by VMware's SDDC framework. SDDC provides a level of infrastructure abstraction and enables both container and VM hosting work on the same infrastructure.
The VIC software bundle includes the basic software (PKS, Integrated Container Engine) and also VMware's open source projects -- Harbor for container registry support and Admiral, a scalable container management tool. PKS includes Harbor, but not Admiral.
Licensing/pricing: PKS is based in Kubernetes and is currently still in preview as of early 2018. VIC is available to all vSphere 6.0 and above Enterprise Plus customers, and no separate license subscription is required to use it.
With extensive research into container management software, TechTarget editors focused this series of articles on vendors that provided the following functionalities: orchestration, container networking and hybrid cloud portability. We are featuring vendors that either offer leading-edge, unique technology or hold significant market share or interest from enterprises. Our research included Gartner and TechTarget surveys.