The Cloud Native Computing Foundation’s first KubeCon + CloudNativeCon of the year took place in the Bella Center, Copenhagen. A giant greenhouse of a building with snaking industrial pipework and connecting concrete bridges; it's a vast container made of glass letting in light. A suitable setting for an industry that’s evolved rapidly from the release of Docker’s superstar container technology back in 2013.
Attendance has rocketed to 4,300, according to Dan Kohn, executive director of the CNCF, which almost triples attendance from a year ago in Berlin, but that’s not surprising as cloud native computing industry is meeting the business world’s demand for more scalable, agile applications and services that can be run across multiple geographical locations in distributed environments.
What’s impressive about the native cloud industry is that from a standing start roughly four years ago, it’s close to building an open cloud platform that it wants to share with the whole business world. It’s not quite there yet and needs a few more layers, but thanks to the foresight of the Linux Foundation to establish the Cloud Native Computing Foundation (CNCF), the industry’s tottering steps were shepherded well.
The industry’s health wasn’t always such a given, Google’s David Aronchick recalls standing on a little stage presenting Kubernetes at the first CNCF event to just 50 to 100 developers.
Aronchick was the product manager on Kubernetes, which is an open source container orchestration system which has become a key component in native computing’s growth.
At the Copenhagen event, Aronchick is presenting again but in a vast hall of thousands of engineers and developers and this time he’s updating everyone on Kubeflow, the hot toolkit for deploying open-source systems for Machine Learning at scale. Kubeflow is an example of open technology that is being built on top of Kubernetes and that was a key message at the event.
As chair of the CNCF’s Technical Oversight Committee, Alexis Richardson’s keynote was focused on the future. He thinks it will be packed full of developers. In his presentation he estimates that there will be 100 million developers by 2027 up from today’s 24 million.
The expectation is that we’ll see them all creating ubiquitous services on the cloud and devices. The vision then for the CNCF, and the community around it, is to build all the foundational layers to create an open cloud platform for developers to simply run their code at scale.
In a sense, it’s a future where everyone has the potential to have their own Tony Stark Iron Man lab, albeit from a software perspective, where code can be written and run on top of an agile infrastructure that abstracts away all the complexity and allows you to present your application to the world at large. The developer focuses on making the best application while the infrastructure deals securely with the demands.
The CNCF was set up and tasked with incubating the ‘building blocks’ required to make an open source native cloud ecosystem successful. You can see all the current incubated projects in the CNCF’s new ‘interactive landscape’.
A perusal of the site’s interactive catalogue also gives an idea of the problems facing engineers and developers having to deciding what products to use as there’s been an explosion of third-party technologies.
Kubernetes was the first project to be incubated by the CNCF. Donated by Google, it’s an open-source system for automating the deployment, scaling and management of containerised applications. The CNCF has many projects in early sandbox or incubation stage for many critical areas, such as monitoring (Prometheus), logging (fluentd) and tracing for diagnosing problems (openTracing).
At the Copenhagen event, the CNCF highlighted Vitess and NATS as two of its recent incubation additions. Vitess was originally an internal project at YouTube and is a database clustering system that scales MySQL using Kubernetes. For example, it’s being used at Slack for a major MySQL infrastructure migration project. NATS is a more mature project that fills the gap for a cloud native open source messaging technology.
To understand the importance of Kubernetes we need to return to containers briefly. Containers, by design, use less resources than virtual machines (VMs) as they share an OS and run ‘closer to the metal’. For developers, the technology has enabled them to package, ship and run their applications in isolated containers that run virtually anywhere. When continuous integration/continuous delivery software (e.g. Jenkins) and practices are added into the mix, this enables companies to benefit from nimble and responsive automation and it significantly speeds up development. For example, any changes that developers make to the source code will automatically trigger the creation, testing and deployment of a new container to staging and then into production.
The idea of a container allowing one process only to run inside it has also led on to microservices. This is where applications are broken down into their processes and placed inside a container, which makes a lot of sense in the enterprise world where greater efficiencies are constantly being sought.
However, this explosion of containerised apps has created the need for a way to manage or ‘orchestrate’ thousands of containers.
A number of container orchestration products have appeared. Some have been adapted for containers, such as Apache Mesos, or created specifically for containers, such as Docker’s Swarm, or specifically for certain cloud providers, such as Amazon’s EC2. But just over a year after Docker sprinted out of the blocks, Kubernetes popped up. This offered a less complicated and more efficient way to manage clusters (groups of hosts running containers) that spanned hosts across public, private, or hybrid clouds – and most importantly it was open source.
Kubernetes is essentially the culmination of the lessons learned by the Google engineers who developed Borg, an internal platform that used containers to run everything at the company. It’s also the technology behind its Google Cloud service.
“Three years ago Kubernetes was just getting started,” says Sheng Liang, CEO of Platform as a Service company, Rancher Labs: ”It wasn’t even clear what technology was going to take over. There was [Docker] Swarm, [Apache] Mesos, and Mesos was very mature back then, was very popular, so we built a container management product that back then was only one that was agnostic to the orchestration frameworks […] the end users were confused and to be honest so were we knowing what was going to be the standard.”
David Aronchick, who product-managed Kubernetes for Google would probably agree: “Thinking back to those days of the original Kubernetes and Kubecon,” says Aronchick in his keynote. “It’s crazy to think about how many ways there were to run containers. Crontab, orchestrator, Bash (looking at you OpenShift on Bash), everything was bespoke. You ran it yourself and had to deal with everything yourself. But Kubernetes brought a transformation, because it gave everyone a common platform that they could trust, they knew what the APIs are and they could focus on the next level up and that really transformed the entire industry that we’re operating in.”