vFunction Aims to Transform Java Apps into Microservices
Many of today’s enterprises rely on legacy Java applications to power their businesses, but face an urgent mandate to move to the cloud as quickly as possible to retain competitive market positioning and innovate their businesses. This mandate drives DevOps teams to potentially re-engineer existing applications, which can be a slow and tedious process even in normal times.
However, the COVID-19 pandemic has placed a new urgency on enterprises to modernize those legacy applications via digital transformation and move deeper into the cloud, which may require decompiling existing applications. Figuring out all of the intricacies of that process, in turn, can cause development velocity to decrease.
Menlo Park, California, startup vFunction has emerged from stealth operations with a mission to bring velocity back to the DevOps process with its newly released platform. The company’s goal is to help automate the process of transforming legacy Java applications into cloud-native microservices.
vFunction has an interesting take on that process; the vFunction platform is deployed locally, where the vFunction Java virtual machine (JVM) agent examines legacy applications. Data gathered is then collected on the vFunction server, where software architects can further investigate collected information about the legacy applications, and then begin designing a microservices architecture to modernize the code base.
“Once developers are satisfied with the design, vFunction generates a service specification file, which contains all the information required to create the microservice,” said Moti Rafalin, vFunction CEO and cofounder. “That file is used by our automation engine, which scans the original code and copies the relevant artifacts to create the new service.”
Rafalin said that vFunction leverages supervised learning techniques, graph theory and clustering algorithms to identify dead code and code anomalies that could prevent a clean breakdown, or “decomposition,” of the application.
Ultimately, vFunction has the potential to automate many of the previously manual steps that DevOps engineers used to break monolithic applications into microservices. According to Rafalin, vFunction makes the process as much as 15 times faster, and can achieve somewhere between 80% to 95% automation.
Yet, vFunction is not just a plug-and-play platform that can completely automate the creation of microservices from legacy code; software architects are still a critical part of the process. Developers will want to fine-tune microservices and decide which services to extract as well as what each service contains.
According to Rafalin, the microservices code is copied from the original monolith, and not generated by a machine, meaning that there may still be room for improvement in the code..
Although vFunction could be disruptive to the world of DevOps, there is still plenty for DevOps staffers to do, such as making sure code remains secure, testing, refinement and, of course, overall design of the microservices architecture. vFunction is, most likely, a sign of things to come as enterprises strive to bring more automation into their development processes. Ultimately, the goal is to introduce efficiency and allow DevOps to focus on results, and not the tasks of manually extracting code.
“Unless one modernizes those monolithic applications to be cloud-native, they end up requiring very large machines, and often end up paying more to the cloud providers,” Rafalin said. “Organizations now understand that, if they want the true benefits of the cloud, they need to modernize these apps. And this starts with adopting an architecture that includes microservices, APIs and modern design principles.”
Currently, vFunction is focused solely on Java, which it deems the biggest opportunity today. However, the company has plans to support applications written in various languages in the future.