Towards Recovering the Software Architecture of Microservice-based Systems

Paolo Di Francesco
Paolo Di FrancescoPhD student at Gran Sasso Science Institute
Towards Recovering the Software Architecture
of Microservice-based Systems
Giona Granchelli, Mario Cardarelli, Paolo Di Francesco,
Ivano Malavolta, Ludovico Iovino, Amleto Di Salle
2Di Francesco et al.
Paolo Di Francesco
Roadmap
• Microservice Architectures (MSAs)
• MicroART Approach
• MicroART Prototype
• Conclusions
Roadmap
3Di Francesco et al.
Paolo Di Francesco
Microservice architectures
MSA is an architectural style inspired by service-oriented computing
• Small services
• Running in own process
• Lightweight communication
Introduction
4Di Francesco et al.
Paolo Di Francesco
Microservice architectures
• Products not Projects
• Cross-functional teams
• Infrastructure automation
• Intelligence in the endpoints
• Decentralized governance of
• Language
• Data
Introduction
Delivery Pipelines
Teams Capabilities
5Di Francesco et al.
Paolo Di Francesco
Microservice architectures
Introduction
Monolith
Microservices
6Di Francesco et al.
Paolo Di Francesco
MicroART Approach
• Problem: How to have a clear understanding of the overall
architecture?
• MicroART
1. Reverse Engineering
2. Model refinements
3. A Domain-specific language (DSL)
MicroART Approach
7Di Francesco et al.
Paolo Di Francesco
Reverse Engineering
Goal: Reconstruct the architecture of complex systems in an
automated manner
Reverse Engineering
8Di Francesco et al.
Paolo Di Francesco
Architecture Recovery
Architecture Recovery
9Di Francesco et al.
Paolo Di Francesco
Domain Specific Language
Domain Specific Language
10Di Francesco et al.
Paolo Di Francesco
Architecture Recovery
Architecture Recovery
11Di Francesco et al.
Paolo Di Francesco
Architecture Recovery
Architecture Recovery
12Di Francesco et al.
Paolo Di Francesco
Towards MSA Recovery
• Model refinements
• Produce an architectural model more significant to the
architect’s purposes
• Semi-automatic
• Iterative
Towards MSA Recovery
13Di Francesco et al.
Paolo Di Francesco
Architecture Refinement
• Service Discovery
• Services find each other dynamically in the network
• Loose coupling
• Mask “real” dependencies among services
Architecture Refinement
14Di Francesco et al.
Paolo Di Francesco
Architecture Refinement
Service Discovery Resolution
1. Remove Links
2. Remove the Service Discovery
3. Use log traces to identify new Links
Architecture Refinement
15Di Francesco et al.
Paolo Di Francesco
MicroART Tool
• Prototype
• GitHub
• Docker
• Benchmark
• Open source
• Third party
MicroART Tool
https://github.com/microart/microART-Tool
16Di Francesco et al.
Paolo Di Francesco
MicroART Validation
MicroART Validation
Architecture Model Architecture Refined Model
17Di Francesco et al.
Paolo Di Francesco
MicroART Tool
MicroART Tool
18Di Francesco et al.
Paolo Di Francesco
MicroART Approach
• Applicable to existing systems
• Benefits
• Model-based representations
• Graphic rendering
• Change impact analysis
• Reasoning
MicroART Approach
19Di Francesco et al.
Paolo Di Francesco
Conclusions
Conclusions
1 of 19

More Related Content

What's hot(20)

Giới thiệu Agile + ScrumGiới thiệu Agile + Scrum
Giới thiệu Agile + Scrum
GMO-Z.com Vietnam Lab Center3.6K views
Requirements Engineering - Business Case AnalysisRequirements Engineering - Business Case Analysis
Requirements Engineering - Business Case Analysis
Birgit Penzenstadler2.2K views
Agile Software Development ModelAgile Software Development Model
Agile Software Development Model
Ritika Balagan1.9K views
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
Aman Adhikari19.1K views
Kanban Basics for BeginnersKanban Basics for Beginners
Kanban Basics for Beginners
Zsolt Fabok22.1K views
Use case+2-0Use case+2-0
Use case+2-0
MikeSorokin10K views
MDL - Elaborando diagramas em Micro Development LanguageMDL - Elaborando diagramas em Micro Development Language
MDL - Elaborando diagramas em Micro Development Language
Gustavo Sanchez - Palência2.5K views
Agile Agile
Agile
kuldeep singh1.9K views
open project toolopen project tool
open project tool
Ngu Khine1.3K views
Continuous IntegrationContinuous Integration
Continuous Integration
drluckyspin38.4K views
Understanding Scrum in 30 MinutesUnderstanding Scrum in 30 Minutes
Understanding Scrum in 30 Minutes
Altaf Najvani2K views
RE processes and process modelsRE processes and process models
RE processes and process models
Syed Zaid Irshad5.5K views
Introduction to AgileIntroduction to Agile
Introduction to Agile
Rasan Samarasinghe252 views
Agile Release & Iteration Planning   Agile Release & Iteration Planning
Agile Release & Iteration Planning
Intelliware Development Inc.11.7K views
Introduce to Git and JenkinsIntroduce to Git and Jenkins
Introduce to Git and Jenkins
An Nguyen238 views
Chap1 RE IntroductionChap1 RE Introduction
Chap1 RE Introduction
Ian Sommerville4.2K views

Similar to Towards Recovering the Software Architecture of Microservice-based Systems(20)

Architecting Microservices Architecting Microservices
Architecting Microservices
Paolo Di Francesco459 views
Micro FrontendsMicro Frontends
Micro Frontends
Talentica Software138 views
Building Big Architectures by Ramit SuranaBuilding Big Architectures by Ramit Surana
Building Big Architectures by Ramit Surana
XP Conference India208 views
Explicit architectureExplicit architecture
Explicit architecture
Herberto Graça3.5K views
Cytoscape CI Chapter 2Cytoscape CI Chapter 2
Cytoscape CI Chapter 2
bdemchak165 views

Recently uploaded(20)

The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)
CSUC - Consorci de Serveis Universitaris de Catalunya51 views
Java Platform Approach 1.0 - Picnic MeetupJava Platform Approach 1.0 - Picnic Meetup
Java Platform Approach 1.0 - Picnic Meetup
Rick Ossendrijver23 views
Green Leaf Consulting: Capabilities DeckGreen Leaf Consulting: Capabilities Deck
Green Leaf Consulting: Capabilities Deck
GreenLeafConsulting170 views
CXL at OCPCXL at OCP
CXL at OCP
CXL Forum183 views

Towards Recovering the Software Architecture of Microservice-based Systems

  • 1. Towards Recovering the Software Architecture of Microservice-based Systems Giona Granchelli, Mario Cardarelli, Paolo Di Francesco, Ivano Malavolta, Ludovico Iovino, Amleto Di Salle
  • 2. 2Di Francesco et al. Paolo Di Francesco Roadmap • Microservice Architectures (MSAs) • MicroART Approach • MicroART Prototype • Conclusions Roadmap
  • 3. 3Di Francesco et al. Paolo Di Francesco Microservice architectures MSA is an architectural style inspired by service-oriented computing • Small services • Running in own process • Lightweight communication Introduction
  • 4. 4Di Francesco et al. Paolo Di Francesco Microservice architectures • Products not Projects • Cross-functional teams • Infrastructure automation • Intelligence in the endpoints • Decentralized governance of • Language • Data Introduction Delivery Pipelines Teams Capabilities
  • 5. 5Di Francesco et al. Paolo Di Francesco Microservice architectures Introduction Monolith Microservices
  • 6. 6Di Francesco et al. Paolo Di Francesco MicroART Approach • Problem: How to have a clear understanding of the overall architecture? • MicroART 1. Reverse Engineering 2. Model refinements 3. A Domain-specific language (DSL) MicroART Approach
  • 7. 7Di Francesco et al. Paolo Di Francesco Reverse Engineering Goal: Reconstruct the architecture of complex systems in an automated manner Reverse Engineering
  • 8. 8Di Francesco et al. Paolo Di Francesco Architecture Recovery Architecture Recovery
  • 9. 9Di Francesco et al. Paolo Di Francesco Domain Specific Language Domain Specific Language
  • 10. 10Di Francesco et al. Paolo Di Francesco Architecture Recovery Architecture Recovery
  • 11. 11Di Francesco et al. Paolo Di Francesco Architecture Recovery Architecture Recovery
  • 12. 12Di Francesco et al. Paolo Di Francesco Towards MSA Recovery • Model refinements • Produce an architectural model more significant to the architect’s purposes • Semi-automatic • Iterative Towards MSA Recovery
  • 13. 13Di Francesco et al. Paolo Di Francesco Architecture Refinement • Service Discovery • Services find each other dynamically in the network • Loose coupling • Mask “real” dependencies among services Architecture Refinement
  • 14. 14Di Francesco et al. Paolo Di Francesco Architecture Refinement Service Discovery Resolution 1. Remove Links 2. Remove the Service Discovery 3. Use log traces to identify new Links Architecture Refinement
  • 15. 15Di Francesco et al. Paolo Di Francesco MicroART Tool • Prototype • GitHub • Docker • Benchmark • Open source • Third party MicroART Tool https://github.com/microart/microART-Tool
  • 16. 16Di Francesco et al. Paolo Di Francesco MicroART Validation MicroART Validation Architecture Model Architecture Refined Model
  • 17. 17Di Francesco et al. Paolo Di Francesco MicroART Tool MicroART Tool
  • 18. 18Di Francesco et al. Paolo Di Francesco MicroART Approach • Applicable to existing systems • Benefits • Model-based representations • Graphic rendering • Change impact analysis • Reasoning MicroART Approach
  • 19. 19Di Francesco et al. Paolo Di Francesco Conclusions Conclusions