We’ll be expanding on this discussion on Mar 31st and Apr 1st at the VMware App Cloud Event. Register here.
Last week I had the opportunity to present at Cloud Field Day 10. Well, it was less a presentation and more a discussion. It was an ask me anything (AMA) where the delegates ask all their burning questions. We had a good discussion during the recorded event, but an even better discussion in the “off camera” time afterward. There, the attendees asked harder, potentially sensitive questions. I was disappointed that they didn’t bring up these great questions during the recorded session, as I think they could be useful to a broader audience, but I appreciate the discussion that ensued!
I want to recap that discussion here, as I think it’s on many people’s minds, whether they feel prepared to voice it in public sessions or not. Specifically, the question at hand: is VMware Cloud on AWS (and other VMware offerings on any public cloud) really a long-term solution or is it more of just a temporary way station on the path to the native public cloud?
In other words, customers want to modernize their apps. We talk about “migrate then modernize”, but does that mean migrate to VMware Cloud on AWS and then modernize on native AWS? Or does it really mean migrate and modernize on VMware Cloud?
In the end, I think the question people are getting at here is: why would I modernize an app on VMware Cloud rather than the native public cloud, particularly when VMware Cloud is running on that native cloud? It is a great question!
The answer is simple: VMware Cloud provides better infrastructure allowing for better app modernization.
Better Kubernetes: Today many companies’ mission-critical applications are running on vSphere. vSphere with Tanzu provides developers and operators with the easiest interaction between existing apps in VMs and new apps in Kubernetes. Developers don’t need to worry about VPNs or firewalls or complex storage solutions. Instead, with vSphere, vSAN, and NSX underpinning and deeply integrated into Kubernetes, they are free to express their needs via Kubernetes and its open interfaces (CNI, CSI, CRDs, etc). For instance, if a developer requests an ingress controller, vSphere with Tanzu identifies the correct load balancer and plumbs it into the appropriate pod. Developers also get self-service access using a Kubernetes API, to provision VMs, Kubernetes clusters, or additional services such as databases on demand. By bringing new apps to the existing apps with a common infrastructure, vSphere with Tanzu makes the magic of seamless interoperability between VMs and containers happen.
Better Performance: We’re continually enhancing the performance of modern apps on vSphere. vSphere with Tanzu created a deep integration of Kubernetes with ESXi that allows us to deliver faster performance than bare metal in some cases. AI/ML workloads run in VMware Cloud on AWS just as well as on-prem. vSphere has always run Java well, achieving near bare metal performance back in 2008. We’re continuing to drive better Java performance leveraging new hardware technologies like persistent memory and the AMD Rome processor (and now Milan). Moreover, vSphere supports direct PCI passthrough, direct attach storage with vSAN Direct, and better placement/scheduling to optimize app performance through cache locality and memory subsystems, all of which are required for the most demanding applications.
Better Integrations: We know it’s not just about the infrastructure, of course, but about what goes on top of the infrastructure – management, security, data protection, and more. And so, our approach has been to build in these capabilities to VMware Cloud seamlessly. We have enterprise management out of the box with vRealize. Intrinsic security with Carbon Black Cloud. Data protection with VMware Cloud Disaster Recovery. These integrated tools simplify operating your modern apps along with your traditional apps.
In the end, the real power of VMware Cloud, along with Tanzu, is that it provides an iterative path toward modernization, allowing you to take small steps forward as business priorities allow, locking in business value along the way, with the optionality that comes with choice of multi-cloud. We can uniquely do this due to evolving the VMware Cloud infrastructure underneath the apps, while extending that infrastructure with functionality from Tanzu.
The reality is that app modernization is hard. Yes, it’s not too bad for, say, hundred-line apps. But applications with tens or hundreds of thousands or even millions of lines of code are extremely challenging. It is generally impossible to rewrite an app of that size and complexity from scratch. Indeed, even moving it to the public cloud wholesale usually requires a heavy amount of change across the app, which is more challenging, time-consuming, and error-prone than initially expected.
Therefore, VMware takes the approach of “migrate then modernize”. You can move the whole app to the cloud without having to change a single line of code or any aspect of its operational tooling. You can then iteratively extract bits of functionality from the monolith and rewrite those small parts as a microservice architecture with a clean API back to the existing part of the app. But there’s work with this transition:
- Adopting automation and CI/CD delivery
- Decomposition of functionality into logical components separated by well-defined APIs.
- Splitting the monolith into smaller, discrete processes (i.e., evolving from function calls to remote process calls)
- Moving from VMs to containers
- Evolving operational tooling to support this new model (e.g., things like better monitoring and distributed tracing)
- Rearchitecting to a distributed / 12-factor architecture for each of the (micro)services
When you look at the scope of the work there, it can be overwhelming. VMware Cloud simplifies many aspects of these changes:
- Better Kubernetes makes it easier to transition from VMs to containers and to implement CI/CD pipelines on top of that Kubernetes infrastructure.
- As an app is broken down into smaller components and each of those components is modernized, Better Kubernetes allows those components to run together on the same infrastructure, enabling better manageability and performance.
- Better Performance ensures top performances for both the existing and rewritten app components.
- Better Integration enables you to leverage existing ops tooling for both new and existing apps while your teams investigate and take on updated tooling for the modern apps.
VMware Cloud enables faster time to market with less complexity and risk, leveraging years of production hardening, allowing your teams to focus on unlocking new business value in the rewritten apps.
We’ll be expanding on this discussion on Mar 31st and Apr 1st at the VMware App Cloud Event. Register here.