You may have heard the term “Kubernetes,” but do you know what it is and how it can help improve communication and efficiency among your teams? In this article, we’ll delve into what Kubernetes is, how it works, and how it can be used to expedite the delivery of citizen services.
Every state and local government agency wants to improve efficiency and deliver innovative services to citizens as fast as possible, but there are different ways to get there. Many agencies have separate application teams delivering software to a variety of platforms both on-premises and in the public cloud. To expedite the application development process and deliver better services, these teams must work collaboratively—preferably by using DevOps methodologies and Linux containers.
But what happens when you’ve got a lot of application development teams working on different projects? Those teams might be working in isolation with varying technology stacks and infrastructure requirements. Application programming interfaces (APIs) serve as connection points as well as the ‘common language” that enables teams to more easily collaborate with one another, even as they develop their applications independently.
That’s where Kubernetes comes in. It provides a standardized platform for automating the deployment, scaling and management of applications. In doing so, the Kubernetes API helps application teams avoid the classic “just throw it over the wall” mentality. Instead, it becomes the handoff mechanism for those teams to hand over their requirements in an automated and frictionless way.
What is Kubernetes?
Kubernetes is an open source platform that helps developers manage the life cycle of the applications they have running in technologies known as “containers.” Containers allow developers to package and run applications separately from their host systems. They’re great for moving applications from development into production very quickly.
Kubernetes allows developers to run many different containers in a standardized manner. That’s the key: By enabling teams to work together and communicate more fluently across various infrastructures, Kubernetes has become the API of the cloud and a technology backbone of modern DevOps practices.
According to the 2019 State of DevOps report, “Cloud continues to be a differentiator for elite performers and drives high performance.” The report notes that elite performing teams were 24 times more likely to execute on all five characteristics of cloud as defined by NIST. In short, delivering cloud-native software has been proven to help teams deliver faster and more stable services.
The report goes on to look at the data of tool usage in relation to team performance. Interestingly, the lowest-performing teams are using the most fully proprietary software. In contrast, open source tools, such as Kubernetes, have shown to increase performance by the mere fact that teams have large communities to reach back to for development and support.
Kubernetes can be a great building block for state and local governments seeking to accelerate the delivery of services. Many state and local agencies are also resource-constrained; as such, they are more likely to adopt managed and unmanaged public cloud services. Kubernetes can help these agencies with cloud migration strategies, as much of the undifferentiated heavy lifting between environments is handled by Kubernetes.
Having a common language between all of these services–along with any on-premise services state and local agencies may be maintaining–is critically important for reducing friction in the development process.
Despite the benefits that Kubernetes provides, it bears mentioning that a successful implementation requires commitment. The conceptual framework of Kubernetes and the underlying container structure is straightforward in theory, but the work that goes into implementing and learning how to take advantage of its computing structure can be challenging. Fortunately, there are many resources available, including a number of tutorials and training courses that can help teams understand the basics.
But the hard work actually begins with the application development process itself. It’s not just where teams run applications, but how they run them. For instance, it’s not enough to simply take a 20-year-old workload and move it to the cloud. Agencies must commit to refactoring their applications to be cloud-native if they want to successfully deliver services more quickly. Simultaneously, legacy applications can be “lifted and shifted” to the cloud, preferably one workload at a time.
Finally, agencies must adopt a culture that is committed to continuous iteration and improvement. This isn’t a one-time process; it’s a paradigm shift. Laying the groundwork for a cloud-native, collaborative environment takes time, but the investment will pay off in the long term.
Once they’ve laid this groundwork, applications teams can use Kubernetes to tie everything together. Applications teams will be able to work better, faster, and more cohesively. They’ll be able to innovate more rapidly and accelerate the delivery of citizen services.
John Osborne is a chief architect with Red Hat North America Public Sector. He has been largely focused on the role of Kubernetes in government IT modernization for more than five years. Before his arrival at Red Hat, he worked at a start-up and then spent seven years with the U.S. Navy developing high-performance applications and deploying them to several mission-critical areas across the globe. He is also the co-author of OpenShift In Action and host of the kfiles podcast.