Kubernetes without DevOps is like a Porsche without Wheels.
You're back from VMworld, and all you're hearing about is Kubernetes. What is it? Why is it? And what changes does your organization need to make to take advantage of this software platform?
Kubernetes is the new hotness when it comes to modern software platforms. I've been working on it for the past two years (specifically OpenShift), and I really believe it's changing the way we manage applications in the enterprise.
So what is all the hype about? Why is Kubernetes such a big deal?
Kubernetes, Kubernetes, Kubernetes!
If you've ever tried to manage container sprawl, you know it can quickly become a headache. Kubernetes simplifies managing containers for you and your organization. We don't have to bother knowing which compute resource in the cluster is running an application. You can trust Kubernetes will deploy your application and keep it healthy, shifting from node to node depending on metrics you've specified and health of those resources. Developers can take advantage of deploying to a fleet of compute resources without requesting new servers. Your IT teams can patch and rebuild compute resources during the business day without introducing outages.
The second biggest advantage of Kubernetes, for me, is it can massively reduce your hardware footprint.
You can maximize your compute by running applications in containers and take advantage of scaling when the resources are needed. Imagine buying all new clothes from an online retailer and attempting to pack each box into your suitcase for a vacation — that is what virtual machines did for IT. Now imagine taking each item you've purchased from that same online retailer, asking yourself if it brings you joy, rolling it up and packing that suitcase to the 50-pound carry-on limit as you move about the country.
Kubernetes without DevOps
You're not going to be able to take full advantage of all the benefits of Kubernetes if you haven't bought into DevOps methodologies — it would be like buying a Porsche with no wheels.
Consider development workflow that doesn't utilize CI/CD to deploy applications, and they don't have the proper software development lifecycle in place. All you're going to be doing is deploying untested and bad process into Kubernetes. You're not going to fail fast or get to the point where you're releasing software in small batches frequently. Chances are you're just going to complicate things by putting it on Kubernetes.
Another example on the operations side of the house is similar in nature.
Let's say your operations department has sub departments for compute, Linux, Windows, networking, storage and security. In a lot of organizations, these departments operate in silos, and aren't working together as a cross-functional team. The Linux team might be charged with installing Kubernetes, and they have to open up multiple tickets to get the storage, networking, security and compute resources needed to be successful. In some organizations, this takes weeks (months even) to get accomplished, which defeats the purpose of developers being able to deploy code and consume compute on-demand. It doesn't take advantage of any of the features within Kubernetes.
Before you even start the process of getting Kubernetes up and running, we have to fix the people and process issues that exist within the organization. This is where DevOps comes in to save the day. We need to break down silos across the organization — between dev and ops, and the micro silos that exist within ops that we talked about earlier. We need to create small, cross-functional, high-trust teams that work together towards one goal. We need developers who have the ability to properly deploy code, so they can fail fast, release smaller batches and release more often. And we need operations teams that have multiple skill sets, and don't have to fight through red tape to get the resources they need to maximize the benefit of Kubernetes.
Awesome pep talk. But how do we do that?
This is where our DevOps practice at WWT can help you and your organization. Our offerings include accelerators to get you going in the right direction and help you maintain new ways of working.
We work with your engineering teams to create the culture needed to automate and treat your infrastructure as it is software. We'll help break down silos in your organization and create a shared code culture. On the technical side, we'll help your teams work with version control systems, configuration management tools and cloud management platforms. The end goal of this engagement is to have self service in place and be automating routine tasks that create the frustration from passing tickets across multiple silos in an organization.
DevOps Platform Accelerator
The DevOps Platform Accelerator gets you up and running on Kubernetes, and teaches you how to treat your platform as a product. Managing Kubernetes is, in many ways, very different from traditional IT and we're here to help with that learning curve. Whether it's OpenShift, PKS, Rancher or cloud, we have the expertise to help you install it and manage day two and beyond activities. We'll cover all aspects of Kubernetes, including but not limited to: storage, security, networking, service mesh upgrades, maintenance and many other aspects unique to your organization.
The DevOps Accelerator ties everything together. Our DevOps consultants work with your developer and operations teams and help break down the silos that exist. We'll work with your organization to find areas of improvement that need to be made within your culture, process and technical practices.