Shortening the time-to-value via DevOps and Kubernetes
When Google open-sourced the core components of Borg as what they now call Kubernetes, with the goal of providing a common platform for managing containers that could be used across a variety of organizations and industries. Kubernetes has gained widespread adoption and has become the de facto standard for managing containerized applications and automating software development processes.
“The faster you can get your customers to experience the value of your product or service, the more likely they are to stick with it. Time-to-value is a critical metric for any company looking to build long-term relationships with its customers.”
Aaron Ross, author, Predictable Revenue
Time to value is a measure of how long it takes a company to realize value from its work. Using Kubernetes together with DevOps improves time to value by enabling faster, more frequent and more reliable software releases. Kubernetes provides a platform for automating and scaling the deployment and management of containerized applications, while DevOps promotes collaboration and automation across the entire software development and deployment lifecycle. DevOps and Kubernetes together, as a combined technique, can rapidly and consistently shrink the time to value for most clients.
Kubernetes provides a robust platform for container orchestration and deployment, while DevOps promotes collaboration and automation across the entire software development and deployment lifecycle. Together, they enable teams to deploy and manage applications with greater speed, reliability, and scalability.
To take full advantage of digitalization and Cloud deployment requires that an organization reserve adequate but not excessive resources. It also requires appropriate allocation of these resources within and among various applications. This is what DevOps and Kubernetes have streamlined for software development and implementation. Tasks are organized into cylinders with DevOps; Kubernetes allocates resources appropriately within and among the cylinders.
In 2014, Google open-sourced the core components of Borg as Kubernetes, with the goal of providing a common platform for managing containers that could be used across a variety of organizations and industries. Since then, Kubernetes has gained widespread adoption and has become the de facto standard for managing containerized applications and automating software development processes. Kubernetes also complements DevOps projects by allowing the development and maintenance phases to be combined.
This borg was not assimilated
Kubernetes was based on Google’s internal platform for managing containers, Borg. Borg was used extensively at Google for several years to manage the company's large-scale, distributed workloads. Kubernetes is an open-source platform for automating deployment, scaling, and management of containerized applications. It quickly became a popular tool for DevOps teams due to its ability to manage large-scale, complex application deployments in a more efficient and streamlined manner. Additionally, the growing number of Kubernetes-related tools and services offered by cloud providers has made it easier for organizations to adopt Kubernetes and integrate it into their DevOps processes.
Below shows a high level layout of the Kubernetes architecture.
Many of the concepts and design principles from Borg were carried over to Kubernetes. However, Kubernetes was also designed to be more accessible and flexible than Borg, with a focus on being portable across different cloud environments and accessible to a wider range of users and organizations. Kubernetes is now maintained by the Cloud Native Computing Foundation (CNCF), a non-profit organization dedicated to advancing the use of cloud-native technologies. The project has a large, thriving community of developers and users who contribute to its continued development and growth.
A very DevOps surprise
Speaking at a conference, one of the original authors of Kubernetes, Joe Beda, admitted he really didn’t foresee the broad adoption of the product at scale:
“Kubernetes is now the anchor for a broader ecosystem and ways of thinking about deploying and managing applications... We didn’t foresee that.”
The original authors of Kubernetes: Joe Beda, Brendan Burns, and Craig McLuckie, were all engineers at Google when Borg was originated. They were instrumental in the development of Kubernetes and its open-sourcing, and continue to play important roles in the Kubernetes community today. Beda is a founder and CTO of Heptio, a company that provides solutions for deploying and managing Kubernetes. Burns is a Distinguished Engineer at Microsoft and continues to contribute to the Kubernetes project. McLuckie is a founding board member of the CNCF, where he continue to influence the development and growth of Kubernetes and other cloud-native technologies.
These three individuals, along with the many contributors and maintainers who have joined the project since its inception, have helped to make Kubernetes one of the most widely used and successful open-source projects in the world.
Kubernetes saves time
One reason for the widespread acceptance of Kubernetes by DevOps teams is the simple fact that developers love their time. Don’t stand over their cubicle and chit-chat for an hour. Just speak your truth and move along. Kubernetes saves developers [so much] time in several ways:
- It automates deployment and scaling
Kubernetes automates the deployment and scaling of applications, allowing developers to focus on writing code rather than manual deployment tasks.
- It is self-healing, for the most part
Kubernetes includes features for self-healing, such as automatic restarts and rescheduling of failed containers. This helps ensure high availability and reduces the time developers spend on manual recovery procedures.
- It provides really easy rollouts and rollbacks
Kubernetes makes it easy to deploy new versions of applications and roll back to previous versions if necessary. This saves time compared to manual deployment processes, and reduces the risk of downtime during deployments.
- It has its own centralized management console and features
Kubernetes provides a centralized platform for managing the deployment and scaling of applications across multiple hosts. This eliminates the need for developers to manage individual hosts and reduces the time spent on manual management tasks.
By using Kubernetes and DevOps together, teams can reduce the time and effort required to release new features and updates, accelerate feedback and iteration cycles, and ultimately deliver value to users more quickly and efficiently. Additionally, the combination of Kubernetes and DevOps enables teams to scale and manage their applications in response to changing user demand more easily, ensuring that they can meet the needs of their users with minimal downtime or disruption. Nicole Forsgren, VP of Research & Strategy at GitHub sums it up, “Time to value is a critical metric for measuring the success of any software development effort. In today's fast-paced business environment, organizations must deliver new features and functionality to users quickly and efficiently, or risk falling behind their competitors. By focusing on time to value, teams can ensure that they are delivering software that meets the needs of their users, while also maintaining a competitive edge in the marketplace.”
DevOps and Kubernetes success stories
The proof is in the pudding, as they say. Over the past several years, there have been many notable examples of successful implementations of DevOps and Kubernetes working together.
Spotify has a large-scale infrastructure and uses DevOps practices and Kubernetes to manage their microservices. Using Kubernetes, Spotify can now deploy and manage microservices across multiple regions with ease, resulting in faster, more reliable releases.
- Capital One
Capital One has been using Kubernetes and DevOps to modernize their legacy infrastructure. They were able to reduce their deployment times from weeks to hours, resulting in faster time-to-market and better customer experiences.
Intuit used Kubernetes and DevOps to build a cloud-native infrastructure for their TurboTax application. By automating their deployment and scaling processes with Kubernetes, they were able to reduce their infrastructure costs and improve their ability to handle spikes in user demand.
Target implemented Kubernetes and DevOps to improve their e-commerce platform. They were able to improve their infrastructure scalability and reduce the time required to bring new features to market by using Kubernetes.
- The New York Times
The New York Times implemented DevOps and Kubernetes in 2017 to modernize their publishing platform. Using Kubernetes, they were able to move to a cloud-native infrastructure, resulting in faster development cycles and improved scalability.
“We prefer to use open source tooling, as opposed to maintaining in-house developed tools, like Kubernetes, Terraform, OpenAPI. This way people can change teams internally without much on-boarding or friction, because they already know how to do things.”
Tony Li, New York Times Site Reliability Engineer
The Future of DevOps and Kubernetes
As more and more organizations adopt cloud-native architecture and microservices-based applications, the demand for container orchestration solutions like Kubernetes will continue to grow. This will further increase the need for DevOps methodologies to help teams deliver software rapidly and efficiently.
Serverless computing is only going to keep growing. Kubernetes is already being used as a platform for serverless frameworks like Knative. We can expect to see more tools and platforms emerge that leverage the benefits of both technologies. Over the next decade, we can also expect to see more integration of AI and machine learning into DevOps and Kubernetes. This will enable teams to automate complex tasks more easily and optimize performance based on real-time data.
Kubernetes will continue to drive the conversation within DevOps. Here’s 3 ways:
As more organizations move towards cloud-native architectures and microservices, the need for scalable infrastructure is becoming increasingly important. Ticketmaster, a leading online ticketing platform, was able to scale their application deployment from 30,000 containers per week to over 100,000 containers per week after switching to Kubernetes. This is the “just-add-water” type of silver bullet that all IT managers and infrastructure VPs are looking for.
By automating tasks such as load balancing, networking, and container orchestration, Kubernetes allows DevOps teams to focus on higher-level tasks such as application development and testing. eBay was able to reduce their deployment time from 15 minutes to 30 seconds after incorporating Kubernetes in their DevOps main teams.
Kubernetes provides a platform-agnostic way to deploy and manage containerized applications, making it easier for organizations to move their applications between different cloud providers or on-premise environments. This portability can help organizations avoid vendor lock-in and take advantage of the best available resources. For example, Adobe was able to reduce their infrastructure costs by 50% by migrating to Kubernetes and running their workloads on Google Cloud.
This trend of Kubernetes within DevOps is unstoppable. Most IT infrastructure executives and analysts believe that Kubernetes will continue to evolve and mature, and very well may capture of more marketshare and interest. Here are a few takeaways:
- Kubernetes and DevOps together improve the time to value metric, and enable teams to deploy and manage applications with greater speed, reliability, and scalability.
- Kubernetes is an open-source platform for automating deployment, scaling, and management of containerized applications. It was based on Google's internal platform, Borg. It has become the de facto standard for managing containerized applications and automating software development processes.
- The developers of Kubernetes, all engineers at Google at the time, are surprised by the widespread adoption and growing list of applications. All 3 developers continue to contribute to the Kubernetes project.
- Kubernetes saves developers time by automating deployment and scaling. It also includes self-healing features, easy rollouts and rollbacks, centralized management, and improved collaboration between development and operations teams.
- The combination of Kubernetes and DevOps enables teams to reduce the time and effort required to release new features and updates. It also accelerate feedback and iteration cycles, and ultimately delivers value to users more quickly and efficiently.
- There have been many successful implementations of DevOps and Kubernetes working together, such as at Spotify and Capital One.
- Kubernetes is now being used as a platform for serverless computing, and more AI and ML continues to be integrated within both DevOps and Kubernetes.
DevOps and Kubernetes are turning out to be a dynamic duo for development teams seeking to improve time-to-value.