There's an old joke about a man who complains a matchstick doesn't work, and is told: "That's odd. It worked for me a minute ago".
That joke can ring true for software developers, who sometimes find that an application runs fine on their test systems, but doesn’t work the moment someone else tries it. In the case of the match, the problem could be gently classified as "user error". All too often, in the case of software, the trouble boils down to dependencies; many applications won't run correctly without a particular version of an operating system, framework, library or other resource. If it’s not present on the host system, you're out of luck. Customers are met with this frustration often as they try to deploy their workloads into the cloud.
Depend on Me
Containers aim to solve this all-too-common problem. They package an application with all its dependencies, so it runs consistently anywhere. Deploying software from the developer's laptop into the cloud becomes markedly easier, as is running it within the cloud infrastructure wherever the most suitable resources are. Unlike virtual machines, containers have two features that give them a huge advantage: They are lightweight and they start up quickly. They are therefore a great way to implement micro-services, with large applications divided into smaller applications that talk to each other, which may start up just-in-time to optimize resource use.
Many CSPs are already using containers for their own applications, so they have the experience needed to launch Containers-as-a-Service (CaaS). Offering a containers-friendly infrastructure allows customers to deploy their workloads into the cloud more easily, and resolves the frustrations associated with fixing dependencies, or installing container infrastructure from scratch.
Thanks to smoother deployments via containers, the CSP may experience fewer support calls and increase customer loyalty in the long haul. At this point in the market's development, there is ample opportunity for CSPs to differentiate by offering CaaS, which is a boost to attracting new business.
Pick and Mix
A rich ecosystem of solutions is available for building a containers-based infrastructure, where CSPs are able to choose their preferred tools for each element. The orchestration tool, for example, is used for scheduling containers among a cluster of machines and helps to ensure availability. There are several options here. Docker Swarm* had a huge impact on popularizing containers, and Apache Mesos* has often been used for big data workloads based on Apache Hadoop* or Apache Spark*. The clear market leader though, is Kubernetes*, which is quickly becoming a de facto standard and was originally developed by Google.
Several different networking tools are also available, which enable the containers to talk to each other. Calico* is a popular choice that offers policy-controlled communications, which might enable CSPs to charge a premium for policy control. Flannel* offers a simple network overlay, reducing the complexity of port mapping.
CSPs can also choose from different solutions for service discovery, monitoring and logging, DevOps, the message bus, and continuous integration/continuous delivery.
The choice can be overwhelming if your open source experience is limited, so you might prefer to buy rather than build to an infrastructure from the ground up. Companies such as Red Hat and Pivotal can provide a supported containers platform that integrates the different ecosystem elements already.
Whether building or buying the software infrastructure, CSPs need to consider the performance of the underlying hardware. The latest Intel® Xeon® Scalable processor offers 1.46 times the memory bandwidth compared to the previous generation, enabling higher container density, faster performance and better server utilization. Many CSPs will find that they can dramatically speed up their infrastructure by refreshing older processors—with the benefits particularly pronounced if they are using processors from earlier generations.
To find out more about how you can use containers to offer new services, download the eGuide, “Using Containers to Grow Your Cloud Services Business”. For more resources for cloud service providers, visit intel.com/csp.