Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Towards Recovering the Software Architecture of Microservice-based Systems

181 views

Published on

3rd of April 2017. My presentation done at the 1st International Workshop on Architecting with MicroServices, Co-located with the IEEE International Conference on Software Architecture (ICSA 2017), Gothenburg, Sweden.

Today the microservice architectural style is being adopted by many key technological players such as Netflix, Amazon, The Guardian. A microservice architecture is composed of a large set of small services, each running in its own process and communicating with lightweight mechanisms (often via REST APIs).
If on one side having a large set of independently developed services helps in terms of developer productivity, scalability, maintainability, on the other side it is very difficult to have a clear understanding of the overall architecture of a microservice-based software system, specially when the deployment and operation of the involved microservices evolves at run-time.
In this paper we present MicroART, an architecture recovery approach for microservice-based systems. By using Model-Driven Engineering techniques, we leverage a suitably defined domain-specific language for representing the key aspects of the architecture of a microservice-based system and provide a toolchain for automatically extracting architecture models of the system. The only inputs of MicroART are: (i) a GitHub repository containing the source code of the system and (ii) a reference to the container engine managing it. We validated MicroART on a publicly available benchmark system, with promising results.

Accompanying paper: http://www.ivanomalavolta.com/files/papers/AMS_2017.pdf

Published in: Technology
  • Be the first to comment

Towards Recovering the Software Architecture of Microservice-based Systems

  1. 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. 2. 2Di Francesco et al. Paolo Di Francesco Roadmap • Microservice Architectures (MSAs) • MicroART Approach • MicroART Prototype • Conclusions Roadmap
  3. 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. 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. 5. 5Di Francesco et al. Paolo Di Francesco Microservice architectures Introduction Monolith Microservices
  6. 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. 7. 7Di Francesco et al. Paolo Di Francesco Reverse Engineering Goal: Reconstruct the architecture of complex systems in an automated manner Reverse Engineering
  8. 8. 8Di Francesco et al. Paolo Di Francesco Architecture Recovery Architecture Recovery
  9. 9. 9Di Francesco et al. Paolo Di Francesco Domain Specific Language Domain Specific Language
  10. 10. 10Di Francesco et al. Paolo Di Francesco Architecture Recovery Architecture Recovery
  11. 11. 11Di Francesco et al. Paolo Di Francesco Architecture Recovery Architecture Recovery
  12. 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. 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. 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. 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. 16. 16Di Francesco et al. Paolo Di Francesco MicroART Validation MicroART Validation Architecture Model Architecture Refined Model
  17. 17. 17Di Francesco et al. Paolo Di Francesco MicroART Tool MicroART Tool
  18. 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. 19. 19Di Francesco et al. Paolo Di Francesco Conclusions Conclusions

×