Minerva for Modernization is intended to be an open community of developers, researchers, and industry practitioners heping build a suite of tools for supporting the application-modernization journey of enterprises. In particular, one of the goals of Minerva is to assist with evolving monolithic application architectures toward a modern, microservices-based architecture. The Minerva tools employ program-analysis techniques, combining them with AI and ML algorithms, to provide recommendations for decomposing a monolithic Java application into partitions, which can serve as starting points for microservices.
Our broader vision for Minerva is to build, with community participation, a tool chain that brings automation to the tasks involved in microservice decomposition, scales to enterprise-grade applications, and provides a comprehensive end-to-end solution to address various tasks involved in decomposing monolithic Java applications into microservices, with the end goal of accelerating the transformation of legacy/monolithic enterprise applications to cloud-native architectures.
The Minerva toolset currently consists of the following tools:
-
Java Binary Analyzer: https://github.com/IBM/codenet-minerva-java-analyzer
-
Java Binary Instrumenter: https://github.com/IBM/codenet-minerva-java-instrumenter
-
CARGO, a graph-partitioning tool based on community detection: https://github.com/IBM/codenet-minerva-cargo
We anticipate to release additional tools in the future and welcome community contributions.