Now that a level of détente has been established between the Kubernetes community and supporters of rival approaches such as Docker Swarm, the focus of the container community needs to shift more toward making distributed systems easier to build.
Brendan Burns, a distinguished engineer at Microsoft and a co-founder of Kubernetes, says that while Kubernetes represents a significant advance toward that goal, it’s still too difficult to build and maintain distributed systems. The need remains to provide a much higher level of abstraction that makes it easier to not only build and deploy distributed applications, but also build them.
In effect, Burns says a container-as-service (CaaS) environments are the next iteration of abstraction beyond platform-as-a-service (PaaS) environments. A PaaS environment is optimized for a unique class of 12-factor applications. A CaaS environment applies many of the same abstraction concepts to a much broader set of applications, says Burns.
Microsoft currently offers a CaaS platform based on Docker EE, the CaaS environment created by Docker Inc. that is based on Swarm, and a CaaS environment based on Kubernetes that Microsoft gained through its acquisition of Deis. Microsoft also has a relationship with Red Hat through which it offers instances of the Red Hat OpenShift platform on the Azure cloud. The Red Hat OpenShift PaaS runs on top of Kubernetes. In fact, Red Hat contends the line between a PaaS and CaaS environment has been blurred to be almost indistinguishable. Conversely, The Cloud Foundry Foundation (CFF) that oversees development of the open-source Cloud Foundry PaaS continues to view its PaaS and Kubernetes as different but complementary platforms.
Burns says the next big challenge will be to see how application development platforms such as Microsoft Visual Studio evolve to take advantage of those platforms. There have been many efforts to build low-code platforms, but those frameworks have had challenges scaling. Burns says platforms such as Kubernetes can help remove that issue because they are designed to scale out additional clusters as needed. In fact, he notes Kubernetes will evolve to support multiple serverless computing frameworks through which containers will be able to invoke functional programming models to access additional infrastructure resources on demand.
Most customers, says Burns, will wind up employing Kubernetes via a public cloud because all the backend services wind up being managed for them. Public clouds based on Kubernetes finally liberate IT organizations from having to manage complex underlying IT infrastructure, he says.
It remains to be see to what degree that shift to the cloud will occur. A recent Gartner report estimates that only 17 percent of total infrastructure has been deployed in the cloud. But Gartner does concede the shift to the cloud is happening faster than expected. Of course, containers are not the only way to go in building a cloud-native application. But as time evolves most applications running in a public cloud will be based on microservices enabled by containers. The next big issue that needs to address will be how to manage those environments as both the number of clusters and the objects they contain continue to expand exponentially.