VMware Cloud Well-Architected Framework for Google Cloud VMware Engine: Modernization Through Re-platforming
Deliver Modernization Through Re-Platforming
In contrast to rehosting, re-platforming more aggressively focuses on resources closer to the application than rehosting does. While rehosting typically consists of a virtual machine to virtual machine type migration, re-platforming replaces part or all of an application with a virtual machine alternative. Re-platforming does not always require modifying the application code, but it does assume that some of the components of the application are not virtual machines. This re-platforming process may result in the end state for an application, or it may be an intermediate step within the modernization continuum. There are several common re-platforming patterns easily used in VMware Cloud environments.
Containerize the Monolith
One way to modernize a monolithic application running within a virtual machine is to use the same code base but change the form factor to a container. A containerized application is managed much differently from a virtual machine and comes with its own strengths and weaknesses. A monolithic application moved to a container can take advantage of the portability that containers provide such as portability, immutability, and start up time but requires a change to the operational processes to manage the application.
Converting a monolithic application into a container can be accomplished in a couple of ways. The first is to repackage the application as a container using tools such as the Tanzu Build Service, Cloud Native Buildpacks, or creating a Dockerfile for the application. This method would be analogous to building a new application as a container after the application code has been written.
An alternative to building a container from the source code would be to take a running virtual machine and convert it to a container. VMware Cloud customers have access to Application Transformer for VMware Tanzu, which can be used to convert running virtual machines into a containerized image, that can later be deployed. This is particularly effective for WebSphere and Tomcat applications due to Application Transformer’s capabilities.
Adjacent Cloud Services
The public cloud offers a wealth of options for redesigning your applications. The public cloud providers offer a variety of managed services that can be used with your applications. These managed services come at a cost but can reduce the amount of time operators spend on maintaining systems. The managed services come in a variety of types such as managed SQL or NoSQL databases, event busses, Internet of Things (IoT), content delivery, AI/ML services and many more.
VMware Clouds are paired with public cloud infrastructure allowing application architects to choose which services should be utilized as part of an application. For example, instead of needing to provide a virtual machine with a database installed within it, application architects can pick a database service provided by a public cloud provider, negating the need for in-house maintenance tasks such as backups and patching.
Adjacent cloud services can be an extremely effective option for VMware Cloud customers. Each VMware cloud can be thought of as having specific capabilities depending on which public cloud it is paired with. These capabilities can be used in your planning process to identify which landing zones will be the right fit for your modern applications.
In the example below, there is a typical two-tier application running in virtual machines. This application could be moved to a VMware based cloud and the database virtual machine can be replaced with a public cloud database service.
To look at a similar example, the database virtual machine could remain in your VMware based cloud, while the application virtual machine can be replaced by an autoscaling group of virtual machines, providing better horizontal scaling characteristics.