Much of what Cloud Technology offers users, automation, highly responsive scaling, flexibility and much else besides, can only described as work in progress. An awful lot more needs to be realised.
Currently, developers building in the cloud have to choose between virtual machines, which entails a lot of DIY, or a more automated option and build on a managed cloud but with limited user control over the underlying strata of technology.
Google Container Engine
Clearly, there’s a gap in the market for an offering that gives engineers greater choice in how they build and deploy in the cloud. Google says that its new Container Engine, released in Alpha version last month, will give developers more options when working on the Google Cloud Platform.
Container engine uses Docker container technology and Kubernetes to do this. Linux based Container virtualisation is just one approach to virtualisation where the instances, called containers, share the same OS kernel on the hardware platform. Each container offers a faster more efficient service with less overhead than that incurred using individual virtual machines (VMs). The containers run on a single fully installed operating system. Simply put, containers are smaller and faster than VMs.
Julien Barber, Senior Director of Community at Docker, speaking to TechTarget, explained that a VM’s size would be measured in gigabytes and boots in 2 minutes or so, but a container’s size would be measured in megabytes and boots in milliseconds. This accelerates development time and the ease of moving applications across different cloud platforms.
Crucially, it makes app deployment easier and quicker. Without containers there’s a risk that an app developed in a local environment mightn’t work when pushed out onto the cloud.
If it’s in a container or batch of containers it’s self sufficient, operating independently of the environment it’s deployed in. The ops team don’t have to worry about what the application is running on at the back-end and the C-suite people are all aglow because the cost base is driven down.
And the containers can communicate with each other, making deployment more efficient. Scaling also becomes a lot easier because it will use less resources such as CPUs and RAM.
The one tech operation that has used containers with a word class efficiency is Google itself. It runs Gmail, searches, apps and maps using containers. They are much easier to manage compared to running hundreds of virtual machines and Google has had ten years to perfect this technology.
Google’s back-end operations is where Container Engine originated. With the development of its own suite of cloud services like Google Compute, it made perfect sense to open up their own successful internal technology for Google users.
One of these internally developed items is Kubernetes (it means a steersman or pilot in Ancient Greek). Docker manages the containers at the individual container level but Kubernetes operates at the next level up and orchestrates the containers sharing the kernel. It can launch a new container in a VM, or provision a new VM and boot the new container in that.
It orchestrates the containers as well as managing them and monitoring their performance as well. If a container starts to underperform it can be replaced with a new one using Kubernetes. Users can create a pod which is a logical collection of containers and the smallest unit up from the individual container. A pod is associated with one application.
The next unit up is the cluster described by Google as a “large logical computer that stitches together lots of individual machines”. This makes testing and deploying a lot easier. All this by-passes the need for command-line tools, APIs and IaaS dashboards.
However, while Google Container Engine is in Alpha mode, Kubernetes is in “pre-production beta“. Google offers it with a public health warning “Expect bugs, design and API changes as we bring it to a stable, production product over the coming year”.
According the Venturebeat, many other cloud providers like IBM, Microsoft, Red Hat, and VMware have “allied” their platforms with Kubernates.
Speaking to Venturebeat, Craig McLuckie, a Google Senior Product Manager, said that using this technology doesn’t lock the user into the Google Cloud platform. This would make it unusable to most businesses and particularly enterprise level clients. Many firms will work on a variety of cloud platforms and need to have portable technology that allows them to move apps from one platform to another. This is another advantage of containers, they can be deployed anywhere.
With Container Engine Google are opening up the inner sanctum and allowing the laity to code like a Googler. This is one of the advantages enjoyed by tech companies. Every company these days needs a robust IT infrastructure and they have to be creative in solving engineering problems as they arise, but companies like Google can use that know-how, perfected internally, to produce a marketable technology.
It just gets better and better for Google.