A pair of milestone anniversaries will occur this summer. The first DevOps Day conference — widely considered the official launch of the DevOps movement – took place on June 25, 2010 in Mountain View, CA. And on July 21, 2015, Kubernetes 1.0 was released to the open-source community.
Much has happened since. DevOps, while not quite the overnight sensation that the early hype predicted, continues to steadily gain traction in reshaping enterprises’ approach to software production. It also underpins a market that one report forecasts will reach $9.4 billion by 2023.
Kubernetes, meanwhile, is one of the fastest growing open-source projects ever, with 35,000 contributors, and has become the No. 1 solution on the market for automating and managing containerized applications. According to analyst firm Redmonk, more than 71 percent of Fortune 100 companies are using it.
That DevOps will mark its 10th anniversary and Kubernetes its fifth just a few weeks apart is pure coincidence, of course, but it does provide an occasion to reflect on the nearly concurrent rise of these two major enterprise technology trends and how they are such a natural fit for one another.
DevOps and Kubernetes were both born of the same master: digital businesses’ need to build, test, and release software at high velocity in order to please customers and drive competitive advantage.
DevOps – the collaborative alignment of once-siloed development and operations team members throughout every stage of the software delivery cycle to speed up code production — tackles the process and cultural changes needed for this more agile environment.
Technology has a strong play as well because DevOps relies heavily on automation tools. And that’s where Kubernetes comes in.
Containerization, which replaces monolithic applications with smaller loosely-coupled services that can be deployed independently across various platforms, has become a key architectural approach in the modern digital enterprise.
Kubernetes is the default tool for eliminating manual tasks in deploying and managing containerized applications, and that is what makes it an ideal match for DevOps automation.
Kubernetes’ value for DevOps has only increased in recent years as it has grown into a true platform for coordinating, scaling, and managing containerized apps – with new capabilities such as scaling the production environment up/down, rollout/rollback, service discovery, load balancing, and self-healing.
With the up/down functionality, for example, if a multitude of users are using more of certain services, the Kubernetes orchestrator can respond by scaling up only those services without replicating the entire application, and scaling them back down when demand drops.
Kubernetes enables faster, easier, and more effective patching because it’s much easier to update a microservice rather than an entire large, monolithic application.
It’s a flexible architecture that supports any cloud or operating system — no lock-in to a single architecture or framework.
Though especially well-suited for workloads that are delivered as REST- or HTTP-based services, Kubernetes can be used for a wide range of more complex workloads — such as artificial intelligence, machine learning, and network function virtualization.
And Kubernetes is remarkably flexible. It can streamline cloud investments by allowing apps to be migrated between public and private clouds with minimal service interruption. “Kubernetes on demand” can be enabled for DevOps teams — on OpenStack, VMware, public clouds, and bare metal clusters.
That flexibility is important for enterprises that have on-premise data centers they want to continue to use or are refraining from putting sensitive data in the cloud because of security or compliance adherence reasons.
Technology also exists to deliver “containers as a service” across the enterprise, to enable each project to spin up a standardized Kubernetes environment of arbitrary scale, on demand, with centralized operational control.
Imagine pieces of code containing all the necessary instructions to deploy and configure applications — including a collection of scripts and metadata, such as configuration file templates. With this technology, users no longer need to think about low-level instructions and instead can focus on shaping the applications being deployed and modeling the entire deployment by relating one application with others.
Technology like this and all the other enhancements to Kubernetes since its introduction five years ago illustrate why Kubernetes and DevOps is a match made in IT heaven. It will be interesting to see how the combination continues to make an impact in the years to come.
Authored By: Alex Chalkias, product manager, Canonical
Alex Chalkias is a product manager at Canonical – the company behind Ubuntu.