Public Defense of a Doctoral Dissertation in Computer Science - Maxime André
Understanding Data Manipulation in Evolving Microservices
Understanding Data Manipulation in Evolving Microservices
Over the past fifteen years, the microservices architectural style has become a dominant model, particularly for the design of cloud-based applications in the cloud continuum. Supported by agile development methods, it has been adopted by many actors of the modern software industry, including open-source communities as well as major software development companies such as Netflix, Spotify, and Amazon. Unlike the monolithic architectural style, it is praised for its qualities of modularity, heterogeneity, deployability, collaboration, and automation. Facilitating software evolution is one of the main motivations for adopting microservices architectures. Paradoxically, recent studies observe the opposite, especially concerning data manipulation layer. Nowadays, it is considered one of the most pressing challenges. Indeed, this style impacts the data layer, making it heterogeneous and distributed. In practice, developers encounter difficulties obtaining a holistic view of the system, understanding the related data concepts, measuring the impact of changes, and propagating subsequent modifications while preserving inter-microservices and inter-data relationships, which are sometimes implicit. These challenges often lead to manual effort during evolution tasks, for which developers suffer from a lack of support. This thesis aims to fill these gaps by proposing novel methods, techniques, and tools. More specifically, it combines static and dynamic program analysis techniques to perform reverse engineering of microservices and their data manipulation layer, to identify data concepts, and to locate related code fragments while taking into account their heterogeneous and distributed nature. It then visualizes the extracted information from a multi-layered viewpoint. Finally, it introduces techniques for analyzing the data-driven evolution of microservices from a historical perspective.