Posted On: Aug 2, 2022
AWS Microservice Extractor for .NET simplifies the process of refactoring older monolithic applications into smaller code projects to build a microservices-based architecture. Modernize and transform your applications with an assistive tool that analyzes source code and runtime metrics to create a visual representation of your application and its dependencies. With Microservice Extractor providing automated recommendations, developers get guided experience to refactor legacy applications. Instead of the developer needing to identify and group classes in source code manually for extraction, Microservice Extractor now identifies common extraction candidates using heuristics-based techniques, and highlights those in visualization. These recommendations can be used as is or used as a starting point to extract microservices off of monolithic codebase. Thus, automated recommendations from Microservice Extractor helps to speed up refactoring large applications even if the developer is unfamiliar with the codebase.
The recommendations are based on three common patterns seen in the codebase.
- User interface adjacent nodes: Microservice Extractor highlights classes that are directly invoked from the legacy application’s user-interface (UI) layer, such as controller type classes in MVC (Model-View-Controller) type application. These classes can be the starting point for any extraction because those allow the developer to create a microservice based on the first user touchpoint within the application.
- Data adjacent nodes: Microservice Extractor categorizes classes that are data adjacent. Any class that is pulling data from a persistent storage such as database or file system will be labelled as a data adjacent node. For MVC applications, these are Entity Framework (EF) nodes.
- Domain nodes: Microservice extractor heuristically detects domain objects in an application (e.g., Product, Customer, etc...). These objects, following domain driven design concepts, allows developer to carve out a microservice based on each domain object.