KubeCon + CloudNativeCon sponsor guest post from Peter Lauterbach, Cloud Platforms Product Management at Red Hat
As attendees of KubeCon know, containers are here to stay. In fact, “Gartner predicts that by 2022, more than 75% of global organizations will be running containerized applications in production, which is a significant increase from fewer than 30% in 2019.”1 Delivering applications in a timely manner keeps us competitive and relevant to our customer base. To do so many have adopted a container framework to be more quick and efficient. Adapting to new technologies isn’t always easy. Some applications can require access to legacy technologies or massive time and energy to put into building new ones. How do we handle those applications that require access to virtual machines without complicating the management of both virtualization and container technologies? Enter KubeVirt.
The KubeVirt project reimagines virtual machines in a Kubernetes world. Virtual machines can be created or migrated from legacy frameworks to a Kubernetes-first management paradigm. Developers can use their existing Kubernetes toolset to natively manage VMs, or convert those workloads into containers. This gives organizations and the development teams supporting them the space to modernize applications on a realistic timeline that make sense for their business.
Sound interesting? Maybe a little too magical? Here are some ways to begin experimenting with virtual machines in Kubernetes.
Support legacy architecture, from a single control plane
The beauty of KubeVirt is the time it allows for development teams to redesign existing applications into cloud-native, containers-first deployments, instead of putting the burden on developers to rebuild everything on Kubernetes with impossible timelines. Management of VMs and containers is simplified through a single control plane in KubeVirt. Based on award winning KVM, KubeVirt delivers mature virtualization capabilities and performance with the immediate benefits of Kubernetes.
When striving for a DevOps or Cloud-native application architecture there are three key considerations: business needs, technical requirements, and migration tactics.
- Business needs: Modernize workloads that can benefit from Kubernetes capabilities while keeping more traditional features on a virtual machine. Use this opportunity to identify your business needs for the next 3-5 years and understand where you start from today. Are you all in on VMs? Do you have an interest in DevOps or being a Cloud-native? If Kubernetes is of interest, but you know there are existing dependencies on virtual machines, include KubeVirt as an option to test during your transition.
- Technical considerations: Once you know Kubernetes is in your future, consider the technical abilities of KubeVirt itself. Kubernetes presents a different management paradigm than a traditional virtual machine. Strategies for things like resizing, backup, or even workload certifications may be different from what you experience today. One of the major benefits of KubeVirt is the ability to simplify the number of toolsets you manage by putting both virtual machines and containers under a single control plane. KubeVirt is a dynamic project – don’t write it off if the platform doesn’t meet 100% of your needs today.
- Migration tactics: Workloads including file and web servers, .NET applications, Java, and enterprise databases are ideal to migrate from a traditional VM into Kubernetes. Starting with VMs like these, you can experiment with the most simple setups before moving to more complex workloads. From here, you can import virtual machines to KubeVirt and utilize best practices for VM image handling or Windows installations.
Grow at your own pace
Getting started with VMs in Kubernetes is easy, (KubeVirt can be downloaded and deployed as an operator) but also simple and effective to grow into. If you’re ready to get serious about KubeVirt you can get started by either spinning up a new virtual machine or by migrating existing VMs to KubeVirt. Expanding a cluster is as simple as joining a node and is executed entirely through an operator. There’s no limit to the number of VMs supported and VMs carry the same data persistence that’s familiar in a traditional virtual machine environment. As you become more comfortable with the platform, scale up your VMs to enhance, and ultimately replace, your traditional virtualization.
KubeVirt is leveraged and deployed at scale by customers and community members around the world. OpenShift Virtualization is now a fully supported feature of the Red Hat OpenShift Container Platform. OpenShift Virtualization is the first fully supported offering built on KubeVirt, eliminating silos between operations and development that often exist in traditional application stacks. See it for yourself here.
To learn more about KubeVirt join the conversation in our forum, Slack (#virtualization in Kubernetes), Twitter, or join the KubeVirt community.
- Gartner, Assessing Kubernetes for Hybrid and Multi Cloud Application Portability,ished 3 June 2020