Can container management make government more like Google?
- By Adam Clater
- Oct 21, 2015
I spent a portion of my column on platform as a service extolling the virtues of Linux containers as a piece of the puzzle for attaining greater agility and flexibility. The momentum behind containerization ensures that Linux-based containers will be part of government IT systems for years to come. There is good reason for this belief, as my colleague David Egts wrote, “Linux containers bring a host of benefits to the agency IT world beyond general isolation and standardization, including... speed… density… and flexibility.”
With that in mind, we must also acknowledge that containers, while they are a piece of the puzzle, are not the whole solution. In order to truly reap the benefits of containerization at scale -- hundreds of coordinated containers, scaling on demand to customer demands -- a rich orchestration engine is required.
At Google, “everything runs in a container,” and it starts more than 2 billion containers each week. Accordingly, Google engineers have invested a tremendous amount of time and energy learning the best way to manage containers. The result is a rich container orchestration engine. The company’s recently published paper, Large-scale cluster management at Google with Borg, outlines the methodologies it uses to manage its billions of containers.
Google shared its orchestration engine in the form Kubernetes, an open-source project developed specifically for container management. Kubernetes automates the deployment, scaling and operations of containers across clusters of hosts. It’s built for handling large numbers of containers that would be difficult to manually coordinate.
Kubernetes also makes it easier to deploy applications and features at a faster pace, which is important to agencies striving to become more agile -- basically, more “Google-like.” That’s what initiatives like the U.S. Digital Services Playbook are about: Helping government to achieve the same type of speed and innovation of the Googles of the world and using technology to achieve those ends. This flexibility, agility and open nature make it a key component for a DevOps strategy.
Opening containers, after all, is just the beginning.
Because they’re easy to deploy, lightweight and effective at what they do, containers will be key to engineering agile, innovative government. As Egts noted, we are beginning to see significant interest in containers in the federal space. The creation of the standards-based (and cleverly titled) Open Container Initiative is further evidence of their growing importance and popularity.
As interest accelerates, I believe we’ll likely see something akin to what we’ve witnessed with regards to server consolidation. When virtual machines began to take off, we saw great consolidation in the number of virtual to physical machines being used, in addition to virtual machine sprawl. It’s not inconceivable to think that we’ll experience something similar with containers.
But no one in government wants more things to manage. IT professionals already have enough on their plates; they don’t need to worry about managing 100 containers running on a single physical machine. A solid automation solution will make things easier while still giving IT managers tight control. And that is precisely what Kubernetes provides.
In Greek, “Kubernetes” means “helmsman,” which conveys a sense of its relationship to containers; it more or less runs them. Indeed, Kubernetes serves as the backend engine that automatically manages and controls containers’ entire lifecycles.
Like containers themselves, Kubernetes is lightweight and only uses the compute resources that are necessary at any given time. It’s also extremely powerful -- with the ability to actively manage large workloads -- and portable, as it can work with public, private or hybrid clouds.
There’s much more to learn about Kubernetes. While this article is meant to serve as a simple primer, there’s a wealth of information on the web, from YouTube videos to GitHub repositories. All of these can provide additional details and background on the benefits and challenges of Kubernetes.
Then, consider how to acquire the software. Of course, unsupported community project code can be downloaded, but that might not be the best course of action, or even allowable in some agencies. Another option is to acquire and use it through enterprise-hardened software that has incorporated Kubernetes within it. This will provide a secure and proven solution designed to take advantage of Kubernetes.
Fortunately, because Kubernetes is built on open source software, many organizations in addition to Google have been instrumental in its support and development. Though it’s only been around since 2014 and is still considered an emerging technology, the support and input of these organizations have helped Kubernetes become more stable and consumable for government agencies. In fact, many leading platform-as-a-service offerings have incorporated Kubernetes, resulting in the creation of complete solutions that make it possible for an organization to run at the scale of Google, without needing to employ an army of Ph.D.s.
Over the past few years, government IT managers have had to get smart on solutions that will help them accelerate development. Kubernetes just happens to be one of the newer kids on the block, but it’s also one of the most powerful and, for users of containers, potentially the most important. It’s a keystone for those in government IT who wish to emulate Google’s flexibility and agility within their own agencies.
Adam Clater is the chief architect, North America Public Sector, Red Hat.