The passage to Cloud Computing fostered the development of new architectural styles to take advantage of its capabilities. The microservices oriented architecture (MSA) is the last style to emerge. This architecture is organized around small services focused on specifics business features, operating in independents processes and communicating through light interfaces. These features associated to cloud computing and to moderns DevOps methods, enable the creation of easily deployable, autonomous and scalable applications. Though, traditional monolithics application are characterized by their large base of code, generally more difficult to maintain, deploy and evolve. Taking into account these advantages, companies want to migrate their existing monolithics applications towards an MSA. However, the process of completely rewriting the code of an application to the new architecture is not desirable due to its costs and its risks. Furthermore, companies faces the need to migrate all their software suite which is often implemented in different languages and frameworks. As a result, companies are searching to automatized the migration process and to repeat this process on several applications.
From this analysis emerged the need of a semi-automatized, generic and increasingly reusable migration process. To answer this need, we decomposed the problem in to research problems:
- Identifying the microservices oriented architecture;
- Code source transformation to valid microservices candidates.
In this thesis, we propose an approach for each research problem, as well as a model driven approach to drive the migration process from start to end. To validate our approach, we implemented MDE-Mono2Micro, a tool guided by models, and applied it to an industrial case.