Search:

Splitting The Monolith

Identifying the existing bounded-contexts and splitting those contexts into Microservices where each context is an independently deployable code together with a Data Model.This path deals with the transition of an existing Monolith application. For that purpose, the assessment is done, from the bounded-context and Domain-driven perspective rather than .Net Core compatibility. Thus, this path is .NET Core agnostic.

Replatforming and Automation
Before beginning the actual transition, we need to get rid of the manual operations to increase the focus of the development and operations team, more to the project. 
Assessment & Roadmap
The output of this step is a Value-Risk graph where we define the distinct functions and their positions in the graph
Pre-splitting
Before the actual splitting begins, the followings are the dependent tasks in case they are not in place
Refactoring
for splitting the bounded-contexts in the order which is agreed with the customer
replatforming_and_automation_01

Replatforming and Automation

Before beginning the actual transition, we need to get rid of the manual operations to increase the focus of the development and operations team, more to the project.  the current stack to a Cloud Native state with micro-refactoring wherever needed. One example can be AWS Elastic Beanstalk. This step aims to get rid of current manual operations on infrastructure and deployments, thus increasing the focus of the team for the next phase.

Assessment

  • Event-Storming Session
  • Domain / Bounded-Contexts Analysis
  • Dependency Analysis (Libraries, domains, ...)
  • Database Relation Map
DB-Relation-Map
dotnet-images-02

Roadmap

The roadmap is created considering

  • Current problems and pain-points

  • Business priorities

  • Strong-consistency requirements

  • Regulative and strategic constraints

  • Technology and tool compliance

  • Internal skillset and culture

Pre-splitting

Before the actual splitting begins, the followings are the dependent tasks in case they are not in place:   

  • Anti-Corruption Layer: This is a proxy layer where we will manage the traffic redirections and mirroring wherever required. If there is already such proxy, like Nginx, there is no need for an extra effort
     
  • Test Automation: Before the splitting begins, there should be enough regression test coverage which will run before each refactoring deployed to production
     
  • Monitoring: Creating full visibility of the current stack including:
     
    • Metrics on all levels
    • Log Management

Refactoring

is the actual splitting phase where the agreed plan is executed in phases. 

 

Pre-splitting

Get in touch