DevOps, the cloud, microservices and Kubernetes have changed the way applications are engineered, deployed and managed. Yet about three-quarters of all applications are still running in an old style – on virtual machines.
ITOps Times recently had a chance to speak with Sachin Mullick, senior manager for OpenShift virtualization at Red Hat, about how cloud native development has introduced what many people are seeing as better alternatives to virtualization. (This interview has been edited for clarity and length.)
ITOps: We’ve been hearing from a number of people who are saying that the whole concept of virtualization might not be growing obsolete, but there might be better alternatives.
MULLICK: The way to look at virtualization, it’s been there like 20, 30 years. And the concept before was that everybody had to have a physical server to run their applications. You basically can run your virtual machines, and they appear just like a normal server to your applications. And that concept lasted 20 years. But cloud came in, and a lot of the virtual machines could be started in the cloud, or on-premise. And it made life much easier, because you could, on demand, start your applications. You didn’t have to procure hardware. So that concept started gaining traction. But from the inherent perspective of how applications are developed, not much was changing. But if you look at what Kubernetes did to the entire application landscape, it has made it so much easier to have your applications now be converted into smaller segments, and to be launched on demand. And also, now you can use the concepts of the management that is built into Kubernetes, to have a much more rapid development, from concept to getting into production. And then going back into that development loop.
So you have the DevOps principles being applied, and what’s called cloud native. So that brings in a lot more reliability as the speed to market has increased. But if you look at the landscape of the market, virtual machines are managed just the way they were managed maybe 20 years back. So the concept is, essentially can you apply the same principles that came with cloud native, and not leave these three-fourths of your applications still running in VMs behind? You can use Kubernetes to quickly provision and reliably provision not just on day one, but maintain the state of your application on day two, by bringing in your virtual machines into Kubernetes. And then over time, if you now have an application that can also leverage microservices, you can convert some or all of that into containers. So that’s really where the industry is evolving. That doesn’t mean VMs as you know it are going to go away. But as people look at if they want to move at the speed at which the industry is moving, they have now a very good opportunity to adopt tools that can get them there.
ITOps: So what impact, if any, would this have on Java developers, who rely on virtual machines?
MULLICK: You have Java, or you have a Windows VM, the virtual machines are basically using, in the case of Linux, they use KVM technology. And a lot of the cloud stacks are built on top of that. So they don’t need to really change the application on day one. Now, they can just bring those VMs into technology that supports running that along with containers and Kubernetes. But what you can do, if you have like a three-tier application, you could take some parts of it and you can start modernizing it into containers. So if, say, you have a database or middle tier, and you have a front end, you could take your front end and start converting into containers or microservices. But your database admin, rightly so, may be very conservative and say, ‘I don’t want to touch this thing.’ So it opens you to new ways to modernize, and take your application and get it into maybe some tiers in containers, some in VMs. And they can all coexist, and they can all start using the services concept that comes with Kubernetes.
ITOps: I would guess that some of the laggards – for lack of a better term – are the people who haven’t fully adopted the cloud-native technologies yet might be facing a bit of a skills gap. They might not have people on staff who are trained in the newer technologies. Is that something organizations are going to need to focus on and invest in to get their teams up to speed?
MULLICK: Yes. The most difficult thing about adopting something new is the fear of the new stuff. If something’s running fine, why change it, right? But then the question becomes, can you do it in a way that provides more control? Can you use the skill that you have today? So if you are a VM admin, there are certain things that you need to do. You need to start/stop a VM, you need to have live migration, you need to do snapshots, you may have ways to create these VMs from templates. So all of those things still exist. And then when they’re ready, they could actually start putting these VMs into GitOps. For instance, they could have a resource file, just like they create for the containers, they could do it the same way for the virtual machines. And then use concepts like GitOps and combined with Tecton and Argo CD, to have a whole CI/CD pipeline.
ITOps: At the Gartner Infrastructure, Operations and Cloud Strategies Conference in December, we were hearing this over and over again, that people were defining virtual machines as legacy technology. And what would be the disadvantages for organizations to decide, ‘You know what? This has been working for us. It’s working great, so, I don’t see why we should make this kind of a move.’ What would you say to companies like that?
MULLICK: I would actually put myself in their shoes and agree with them that they should not just make a decision based on technology. They should actually look at their workloads and see what will benefit from moving fast and where the business is going. And are you on a journey towards cloud native, for instance, and if it’s taking too long to achieve that, maybe containerizing everything, maybe a five-year journey, you can accelerate that by bringing in some of the world’s workloads just like VMs. So don’t say, ‘Let’s take everything and change it on day one.’ It takes time to familiarize yourself with technology to get into that. So take one workload, two workloads, start playing with it in this new world, make sure you’re familiar with it. And in a lot of cases, once you get there, you may decide everything needs to move. Or you may decide like, ‘Hey, these are my seven applications that I really want on a fast pace. And I’m gonna bring them in. These other ones, I really don’t care about them.’ They may last a lifetime, and then just run out the lifecycle on the previous technology. So every organization has a different level of appetite for change in a certain year. So look at that and start down this journey. The main thing is to take the first step.
Listen to the full episode here: