SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
VRIJE
UNIVERSITEIT
AMSTERDAM
Ivano Malavolta
Assistant professor
Vrije Universiteit Amsterdam
Reconstructing
microservice-based
architectures
Ivano Malavolta
The Green Lab
Our platform for researching
on software
– energy efficiency
– performance
– software quality in general
Students measure
real software solutions
OpenSTF
+ ADB
Serve
web pages
VMWare
manager
SSH
MEASURES
Wifi
network
Router
Experiment
orchestrator
OpenSTF
Web
interface
Power
meters
A PLATFORM
A COURSE
Ivano Malavolta
Roadmap
Questions
Problem
Microservices 1-o-1
Solution
Data-driven architecting
Ivano Malavolta
Microservices 1-o-1
Ivano Malavolta
Microservices
• Products not projects
• Cross-functional teams
• Infrastructure automation
• Intelligence in the endpoints
• Decentralized governance of
• technologies
• data Delivery Pipelines
Teams Capabilities
Ivano Malavolta
Technologies
https://www.weave.works/blog/what-are-microservices
Ivano Malavolta
Containers
Virtual machines Containers
https://www.slideshare.net/ChrisCiborowski/docker-birthday-3-slides-overview
Ivano Malavolta
The problem
Ivano Malavolta
The problem
Ivano Malavolta
?
Difficult to get the “big picture”
• interdependent microservices
• technologically polyglot
• many different teams
• different speeds (dev. and deploy)
... what if we add a new feature?
• how to estimate the impact of that change?
... what if we restructure those 5
microservices?
• is this change “breaking” other parts of the
system?
New services?
System-level
refactoring?
A miracle*
happens!
* Miracle = experience of senior developers, devOps , architects
Ivano Malavolta
Solution
Giona Granchelli, Mario Cardarelli, Paolo Di Francesco, Ivano Malavolta, Ludovico Iovino, Amleto Di Salle. Towards
Recovering the Software Architecture of Microservice-based Systems. In 2017 IEEE International Conference on
Software Architecture Workshops, ICSA Workshops 2017, Gothenburg, Sweden, April 5-7, 2017.
Giona Granchelli, Mario Cardarelli, Paolo Di Francesco, Ivano Malavolta, Ludovico Iovino, Amleto Di Salle.
MicroART: A Software Architecture Recovery Tool for Maintaining Microservice-based Systems. In Proceedings of
the 14th International Conference on Software Architecture (ICSA), April 4, 2017.
Ivano Malavolta
MicroART
Running system
MicroART domain-specific language (DSL)
Ivano Malavolta
Architecture recovery
Reconstruct the architecture
of complex systems in an
automated manner
INPUT
-- GitHub repo
-- running system
OUTPUT
-- extracted architecture
Goal
Ivano Malavolta
MicroART domain-specific language
• Abstract and minimalistic
• Formally defined
à can be managed by
other software!
• Relies on Fowler’s and
Newman’s principles
Ivano Malavolta
Recovered architecture
Fully automatic
à applicable to existing systems!
All the services are connected to
the service discovery
This topology is not so informative if
we want to focus on system
evolution and maintainability
à REFINEMENT
Ivano Malavolta
Architecture refinement
Development-oriented
dependencies among services
Semi-automatic
Ivano Malavolta
Monitoring tools are just a “photo” of the run-time of your system
actual photo
of the system
“after effect” photo
of the system
the future photos
of the system+ +
Metric name Description
Commits per service Number of commits on each microservice
Commits within system Total number of commit on the system
Developers per service Number of developers working on the microservice
Is stateful Tracks the statefulness of a microservice
NoS Number of microservices in the system
NoD Number of developers working on the system
NoC Number of clusters in the system
Cyclomatic Complexity Quantitative measure of the number of linearly
independent paths through a program’s source code
Relative complexity of a service Coupling of microservice / number of microservices
Metric name Description
Commits per service Number of commits on each microservice
Commits within system Total number of commit on the system
Developers per service Number of developers working on the microservice
Is stateful Tracks the statefulness of a microservice
NoS Number of microservices in the system
NoD Number of developers working on the system
NoC Number of clusters in the system
Cyclomatic Complexity Quantitative measure of the number of linearly
independent paths through a program’s source code
Relative complexity of a service Coupling of microservice / number of microservices
Metric name Description
Commits per service Number of commits on each microservice
Commits within system Total number of commit on the system
Developers per service Number of developers working on the microservice
Is stateful Tracks the statefulness of a microservice
NoS Number of microservices in the system
NoD Number of developers working on the system
NoC Number of clusters in the system
Cyclomatic Complexity Quantitative measure of the number of linearly
independent paths through a program’s source code
Relative complexity of a service Coupling of microservice / number of microservices
Metric name Description
Commits per service Number of commits on each microservice
Commits within system Total number of commit on the system
Developers per service Number of developers working on the microservice
Is stateful Tracks the statefulness of a microservice
NoS Number of microservices in the system
NoD Number of developers working on the system
NoC Number of clusters in the system
Cyclomatic Complexity Quantitative measure of the number of linearly
independent paths through a program’s source code
Relative complexity of a service Coupling of microservice / number of microservices
Metric name Description
Commits per service Number of commits on each microservice
Commits within system Total number of commit on the system
Developers per service Number of developers working on the microservice
Is stateful Tracks the statefulness of a microservice
NoS Number of microservices in the system
NoD Number of developers working on the system
NoC Number of clusters in the system
Cyclomatic Complexity Quantitative measure of the number of linearly
independent paths through a program’s source code
Relative complexity of a service Coupling of microservice / number of microservices
Metric name Description
Commits per service Number of commits on each microservice
Commits within system Total number of commit on the system
Developers per service Number of developers working on the microservice
Is stateful Tracks the statefulness of a microservice
NoS Number of microservices in the system
NoD Number of developers working on the system
NoC Number of clusters in the system
Cyclomatic Complexity Quantitative measure of the number of linearly
independent paths through a program’s source code
Relative complexity of a service Coupling of microservice / number of microservices
My monitoring tool is much
better than this...
MicroART is:
MicroART is used for planning development activities
Ivano Malavolta
Data-driven architecting
Mario Cardarelli. Agility of Microservice Architectures: a Metrics-based Approach. Master thesis, University of
L’Aquila, Italy, March, 2017,
Ivano Malavolta
• The market is full of metric-based tools for performance
• The market LACKS metric-based tools for development-time
structural analysis
– calculate coupling and cohesion
– calculate change impact
– <ADD_YOUR_OWN_METRIC_HERE>
• Example of query on the metrics:
Metrics
Ivano Malavolta
• Additional layer on top of MicroART
• Architects can specify their own metrics
– your notion of complexity may be different than mine
Metrics
Calculator
Metrics calculator
Ivano Malavolta
COUPLING - How much the microservices are interrelated each other
COHESION – How much the operations of a microservice belong together
COMPLEXITY - The total amount of work performed by a microservice
Default metrics in MicroART
Ivano Malavolta
High quality software à low coupling
à low complexity
à high cohesion
Quality Attributes
Ivano Malavolta
Repository
Metrics
Statistical
Metrics
Structural
Metrics
Other supported metrics (so far)
Metric name Description
Commits per service Number of commits on each microservice
Commits within system Total number of commit on the system
Developers per service Number of developers working on the microservice
Is stateful Tracks the statefulness of a microservice
NoS Number of microservices in the system
NoD Number of developers working on the system
NoC Number of clusters in the system
Cyclomatic Complexity Quantitative measure of the number of linearly
independent paths through a program’s source code
Relative complexity of a service Coupling of microservice / number of microservices
Ivano Malavolta
• Prediction of costs on Cloud Computing Services
• AWS
• Bluemix
• ...
• Custom metrics
• Resolution of additional infrastructural services
• Dashboarding
• developers can define their own visualizations of the architecture
• Support for other container managers and Cloud solutions
• Integration with Prometheus ... and with other monitoring tools
MicroART plug-ins (work in progress)
Ivano Malavolta
Wrap up
Ivano Malavolta
?
Difficult to get the “big picture”
• interdependent microservices
• technologically polyglot
• many different teams
• different speeds (dev. and deploy)
... what if we add a new feature?
• how to estimate the impact of that change?
... what if we restructure those 5
microservices?
• is this change “breaking” other parts of the
system?
New services?
System-level
refactoring?
A miracle*
happens!
* Miracle = experience of senior developers, devOps , architects Ivano Malavolta
Architecture recovery
Reconstruct the architecture
of complex systems in an
automated manner
INPUT
-- GitHub repo
-- running system
OUTPUT
-- extracted architecture
Goal
Ivano Malavolta
Architecture refinement
Development-oriented
dependencies among services
Semi-automatic
Ivano Malavolta
• The market is full of metric-based tools for performance
• The market LACKS metric-based tools for structural analysis
– calculate coupling and cohesion
– calculate change impact
• Example of query on the metrics:
Metrics
Ivano Malavolta
Why we are here @ LAC congres
• How do you approach a change in the architecture of your system?
• Do you want to try MicroART on your system?
– fully automatic
– not intrusive
– no leak of any data
• Did you migrate towards microservices? If yes, how?
Ivano Malavolta
Contact
Ivano Malavolta |
Vrije Universiteit Amsterdam
iivanoo
i.malavolta@vu.nl
www.ivanomalavolta.com
A few of the contents of this presentation are from co-authors’ slides

Más contenido relacionado

La actualidad más candente

The (Un) Expected Impact of Tools in Software Evolution
The (Un) Expected Impact of Tools in Software EvolutionThe (Un) Expected Impact of Tools in Software Evolution
The (Un) Expected Impact of Tools in Software EvolutionGail Murphy
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patternsLilia Sfaxi
 
Software Engineering: What is That?
Software Engineering: What is That?Software Engineering: What is That?
Software Engineering: What is That?Henry Muccini
 
The adoption of machine learning techniques for software defect prediction: A...
The adoption of machine learning techniques for software defect prediction: A...The adoption of machine learning techniques for software defect prediction: A...
The adoption of machine learning techniques for software defect prediction: A...RAKESH RANA
 
Icsme 2021-keynote-creating-usable-and-useful-software-tools
Icsme 2021-keynote-creating-usable-and-useful-software-toolsIcsme 2021-keynote-creating-usable-and-useful-software-tools
Icsme 2021-keynote-creating-usable-and-useful-software-toolsGail Murphy
 
Cross-project defect prediction
Cross-project defect predictionCross-project defect prediction
Cross-project defect predictionThomas Zimmermann
 
A Model-Based Systems Engineering Approach to Portfolio Management
A Model-Based Systems Engineering Approach to Portfolio ManagementA Model-Based Systems Engineering Approach to Portfolio Management
A Model-Based Systems Engineering Approach to Portfolio ManagementElizabeth Steiner
 
Survey on Software Defect Prediction
Survey on Software Defect PredictionSurvey on Software Defect Prediction
Survey on Software Defect PredictionSung Kim
 
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...Feng Zhang
 
Developing Effective Software Productively
Developing Effective Software ProductivelyDeveloping Effective Software Productively
Developing Effective Software ProductivelyGail Murphy
 
The Cloudification Perspectives of Search-based Software Testing
The Cloudification Perspectives of Search-based Software TestingThe Cloudification Perspectives of Search-based Software Testing
The Cloudification Perspectives of Search-based Software TestingSebastiano Panichella
 
Test Automation Maturity: A Self-Assessment Tool
Test Automation Maturity: A Self-Assessment ToolTest Automation Maturity: A Self-Assessment Tool
Test Automation Maturity: A Self-Assessment ToolUniversity of Antwerp
 
An Application-Oriented Approach for Computer Security Education
An Application-Oriented Approach for Computer Security EducationAn Application-Oriented Approach for Computer Security Education
An Application-Oriented Approach for Computer Security EducationXiao Qin
 
Towards a UML Profile for Domain-driven Design of Microservice Architectures
Towards a UML Profile for Domain-driven Design of Microservice ArchitecturesTowards a UML Profile for Domain-driven Design of Microservice Architectures
Towards a UML Profile for Domain-driven Design of Microservice ArchitecturesFlorian Rademacher
 
Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)Gail Murphy
 
Advanced support for executable statechart modelling
Advanced support for executable statechart modellingAdvanced support for executable statechart modelling
Advanced support for executable statechart modellingTom Mens
 
Modelling and Simulation of the response process for an emergency at the Grea...
Modelling and Simulation of the response process for an emergency at the Grea...Modelling and Simulation of the response process for an emergency at the Grea...
Modelling and Simulation of the response process for an emergency at the Grea...InfinIT - Innovationsnetværket for it
 
Defect effort prediction models in software
Defect effort prediction models in softwareDefect effort prediction models in software
Defect effort prediction models in softwareIAEME Publication
 

La actualidad más candente (20)

The (Un) Expected Impact of Tools in Software Evolution
The (Un) Expected Impact of Tools in Software EvolutionThe (Un) Expected Impact of Tools in Software Evolution
The (Un) Expected Impact of Tools in Software Evolution
 
Software Engineering - chp4- design patterns
Software Engineering - chp4- design patternsSoftware Engineering - chp4- design patterns
Software Engineering - chp4- design patterns
 
Software Engineering: What is That?
Software Engineering: What is That?Software Engineering: What is That?
Software Engineering: What is That?
 
The adoption of machine learning techniques for software defect prediction: A...
The adoption of machine learning techniques for software defect prediction: A...The adoption of machine learning techniques for software defect prediction: A...
The adoption of machine learning techniques for software defect prediction: A...
 
Icsme 2021-keynote-creating-usable-and-useful-software-tools
Icsme 2021-keynote-creating-usable-and-useful-software-toolsIcsme 2021-keynote-creating-usable-and-useful-software-tools
Icsme 2021-keynote-creating-usable-and-useful-software-tools
 
Cross-project defect prediction
Cross-project defect predictionCross-project defect prediction
Cross-project defect prediction
 
A Model-Based Systems Engineering Approach to Portfolio Management
A Model-Based Systems Engineering Approach to Portfolio ManagementA Model-Based Systems Engineering Approach to Portfolio Management
A Model-Based Systems Engineering Approach to Portfolio Management
 
Survey on Software Defect Prediction
Survey on Software Defect PredictionSurvey on Software Defect Prediction
Survey on Software Defect Prediction
 
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
Cross-project Defect Prediction Using A Connectivity-based Unsupervised Class...
 
Developing Effective Software Productively
Developing Effective Software ProductivelyDeveloping Effective Software Productively
Developing Effective Software Productively
 
What's New in Innoslate 4.3
What's New in Innoslate 4.3What's New in Innoslate 4.3
What's New in Innoslate 4.3
 
The Cloudification Perspectives of Search-based Software Testing
The Cloudification Perspectives of Search-based Software TestingThe Cloudification Perspectives of Search-based Software Testing
The Cloudification Perspectives of Search-based Software Testing
 
Test Automation Maturity: A Self-Assessment Tool
Test Automation Maturity: A Self-Assessment ToolTest Automation Maturity: A Self-Assessment Tool
Test Automation Maturity: A Self-Assessment Tool
 
An Application-Oriented Approach for Computer Security Education
An Application-Oriented Approach for Computer Security EducationAn Application-Oriented Approach for Computer Security Education
An Application-Oriented Approach for Computer Security Education
 
Towards a UML Profile for Domain-driven Design of Microservice Architectures
Towards a UML Profile for Domain-driven Design of Microservice ArchitecturesTowards a UML Profile for Domain-driven Design of Microservice Architectures
Towards a UML Profile for Domain-driven Design of Microservice Architectures
 
Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)Implications of Open Source Software Use (or Let's Talk Open Source)
Implications of Open Source Software Use (or Let's Talk Open Source)
 
Advanced support for executable statechart modelling
Advanced support for executable statechart modellingAdvanced support for executable statechart modelling
Advanced support for executable statechart modelling
 
Modelling and Simulation of the response process for an emergency at the Grea...
Modelling and Simulation of the response process for an emergency at the Grea...Modelling and Simulation of the response process for an emergency at the Grea...
Modelling and Simulation of the response process for an emergency at the Grea...
 
Defect effort prediction models in software
Defect effort prediction models in softwareDefect effort prediction models in software
Defect effort prediction models in software
 
Icsm19.ppt
Icsm19.pptIcsm19.ppt
Icsm19.ppt
 

Similar a Reconstructing microservice-based architectures

A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and MoreA Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and MoreSimform
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...WSO2
 
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...apidays
 
اساليب البرمجيات الحديثة Modern Software Development
اساليب البرمجيات الحديثة Modern Software Developmentاساليب البرمجيات الحديثة Modern Software Development
اساليب البرمجيات الحديثة Modern Software DevelopmentMohamed Galal
 
Api service mesh and microservice tooling
Api service mesh and microservice toolingApi service mesh and microservice tooling
Api service mesh and microservice toolingLuca Mattia Ferrari
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineDevOps.com
 
Monitoring Containerized Micro-Services In Azure
Monitoring Containerized Micro-Services In AzureMonitoring Containerized Micro-Services In Azure
Monitoring Containerized Micro-Services In AzureAlex Bulankou
 
Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained  Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained Markus Eisele
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service MeshRafik HARABI
 
Introduction to Microservices_Architecture.pptx
Introduction to Microservices_Architecture.pptxIntroduction to Microservices_Architecture.pptx
Introduction to Microservices_Architecture.pptxHamzaBoutlih
 
Microservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get StartedMicroservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get StartedShailendra Chauhan
 
DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--asmeerana605
 
Gluecon Monitoring Microservices and Containers: A Challenge
Gluecon Monitoring Microservices and Containers: A ChallengeGluecon Monitoring Microservices and Containers: A Challenge
Gluecon Monitoring Microservices and Containers: A ChallengeAdrian Cockcroft
 
Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Ken Owens
 
Why monitoring is an analytics problem
Why monitoring is an analytics problemWhy monitoring is an analytics problem
Why monitoring is an analytics problemPhillip Liu
 
Microservices and Devs in Charge: Why Monitoring is an Analytics Problem
Microservices and Devs in Charge: Why Monitoring is an Analytics ProblemMicroservices and Devs in Charge: Why Monitoring is an Analytics Problem
Microservices and Devs in Charge: Why Monitoring is an Analytics ProblemSignalFx
 

Similar a Reconstructing microservice-based architectures (20)

A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and MoreA Guide on What Are Microservices: Pros, Cons, Use Cases, and More
A Guide on What Are Microservices: Pros, Cons, Use Cases, and More
 
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
[APIdays Paris 2019] API Management in Service Mesh Using Istio and WSO2 API ...
 
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
APIdays Paris 2019 - Cloud native API Management for Microservices on a Servi...
 
اساليب البرمجيات الحديثة Modern Software Development
اساليب البرمجيات الحديثة Modern Software Developmentاساليب البرمجيات الحديثة Modern Software Development
اساليب البرمجيات الحديثة Modern Software Development
 
Api service mesh and microservice tooling
Api service mesh and microservice toolingApi service mesh and microservice tooling
Api service mesh and microservice tooling
 
The Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD PipelineThe Reality of Managing Microservices in Your CD Pipeline
The Reality of Managing Microservices in Your CD Pipeline
 
Monitoring Containerized Micro-Services In Azure
Monitoring Containerized Micro-Services In AzureMonitoring Containerized Micro-Services In Azure
Monitoring Containerized Micro-Services In Azure
 
Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained  Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained
 
Api Management with Service Mesh
Api Management with Service MeshApi Management with Service Mesh
Api Management with Service Mesh
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh
 
Introduction to Microservices_Architecture.pptx
Introduction to Microservices_Architecture.pptxIntroduction to Microservices_Architecture.pptx
Introduction to Microservices_Architecture.pptx
 
Twelve factor-app
Twelve factor-appTwelve factor-app
Twelve factor-app
 
Microservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get StartedMicroservices Tutorial for Beginners | All You Need to Get Started
Microservices Tutorial for Beginners | All You Need to Get Started
 
DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--DevOps-training-in-chandigarh-Join-now--
DevOps-training-in-chandigarh-Join-now--
 
Gluecon Monitoring Microservices and Containers: A Challenge
Gluecon Monitoring Microservices and Containers: A ChallengeGluecon Monitoring Microservices and Containers: A Challenge
Gluecon Monitoring Microservices and Containers: A Challenge
 
Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
 
Why monitoring is an analytics problem
Why monitoring is an analytics problemWhy monitoring is an analytics problem
Why monitoring is an analytics problem
 
Microservices and Devs in Charge: Why Monitoring is an Analytics Problem
Microservices and Devs in Charge: Why Monitoring is an Analytics ProblemMicroservices and Devs in Charge: Why Monitoring is an Analytics Problem
Microservices and Devs in Charge: Why Monitoring is an Analytics Problem
 

Más de Ivano Malavolta

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Ivano Malavolta
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)Ivano Malavolta
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Ivano Malavolta
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Ivano Malavolta
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Ivano Malavolta
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Ivano Malavolta
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Ivano Malavolta
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Ivano Malavolta
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Ivano Malavolta
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Ivano Malavolta
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Ivano Malavolta
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languagesIvano Malavolta
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineeringIvano Malavolta
 
[13 - B] Experiment reporting
[13 - B] Experiment reporting[13 - B] Experiment reporting
[13 - B] Experiment reportingIvano Malavolta
 
[13 - A] Experiment validity
[13 - A] Experiment validity[13 - A] Experiment validity
[13 - A] Experiment validityIvano Malavolta
 
[09-A] Statistical tests and effect size
[09-A] Statistical tests and effect size[09-A] Statistical tests and effect size
[09-A] Statistical tests and effect sizeIvano Malavolta
 
[07-B] Statistical hypothesis testing
[07-B] Statistical hypothesis testing[07-B] Statistical hypothesis testing
[07-B] Statistical hypothesis testingIvano Malavolta
 
[07-A] Descriptive Statistics and data exploration
[07-A] Descriptive Statistics and data exploration[07-A] Descriptive Statistics and data exploration
[07-A] Descriptive Statistics and data explorationIvano Malavolta
 

Más de Ivano Malavolta (20)

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
 
The H2020 experience
The H2020 experienceThe H2020 experience
The H2020 experience
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...
 
[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languages
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 
[13 - B] Experiment reporting
[13 - B] Experiment reporting[13 - B] Experiment reporting
[13 - B] Experiment reporting
 
[13 - A] Experiment validity
[13 - A] Experiment validity[13 - A] Experiment validity
[13 - A] Experiment validity
 
[09-A] Statistical tests and effect size
[09-A] Statistical tests and effect size[09-A] Statistical tests and effect size
[09-A] Statistical tests and effect size
 
[07-B] Statistical hypothesis testing
[07-B] Statistical hypothesis testing[07-B] Statistical hypothesis testing
[07-B] Statistical hypothesis testing
 
[07-A] Descriptive Statistics and data exploration
[07-A] Descriptive Statistics and data exploration[07-A] Descriptive Statistics and data exploration
[07-A] Descriptive Statistics and data exploration
 

Último

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 

Último (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 

Reconstructing microservice-based architectures

  • 1. VRIJE UNIVERSITEIT AMSTERDAM Ivano Malavolta Assistant professor Vrije Universiteit Amsterdam Reconstructing microservice-based architectures
  • 2. Ivano Malavolta The Green Lab Our platform for researching on software – energy efficiency – performance – software quality in general Students measure real software solutions OpenSTF + ADB Serve web pages VMWare manager SSH MEASURES Wifi network Router Experiment orchestrator OpenSTF Web interface Power meters A PLATFORM A COURSE
  • 5. Ivano Malavolta Microservices • Products not projects • Cross-functional teams • Infrastructure automation • Intelligence in the endpoints • Decentralized governance of • technologies • data Delivery Pipelines Teams Capabilities
  • 7. Ivano Malavolta Containers Virtual machines Containers https://www.slideshare.net/ChrisCiborowski/docker-birthday-3-slides-overview
  • 10. Ivano Malavolta ? Difficult to get the “big picture” • interdependent microservices • technologically polyglot • many different teams • different speeds (dev. and deploy) ... what if we add a new feature? • how to estimate the impact of that change? ... what if we restructure those 5 microservices? • is this change “breaking” other parts of the system? New services? System-level refactoring? A miracle* happens! * Miracle = experience of senior developers, devOps , architects
  • 11. Ivano Malavolta Solution Giona Granchelli, Mario Cardarelli, Paolo Di Francesco, Ivano Malavolta, Ludovico Iovino, Amleto Di Salle. Towards Recovering the Software Architecture of Microservice-based Systems. In 2017 IEEE International Conference on Software Architecture Workshops, ICSA Workshops 2017, Gothenburg, Sweden, April 5-7, 2017. Giona Granchelli, Mario Cardarelli, Paolo Di Francesco, Ivano Malavolta, Ludovico Iovino, Amleto Di Salle. MicroART: A Software Architecture Recovery Tool for Maintaining Microservice-based Systems. In Proceedings of the 14th International Conference on Software Architecture (ICSA), April 4, 2017.
  • 12. Ivano Malavolta MicroART Running system MicroART domain-specific language (DSL)
  • 13. Ivano Malavolta Architecture recovery Reconstruct the architecture of complex systems in an automated manner INPUT -- GitHub repo -- running system OUTPUT -- extracted architecture Goal
  • 14. Ivano Malavolta MicroART domain-specific language • Abstract and minimalistic • Formally defined à can be managed by other software! • Relies on Fowler’s and Newman’s principles
  • 15. Ivano Malavolta Recovered architecture Fully automatic à applicable to existing systems! All the services are connected to the service discovery This topology is not so informative if we want to focus on system evolution and maintainability à REFINEMENT
  • 17. Ivano Malavolta Monitoring tools are just a “photo” of the run-time of your system actual photo of the system “after effect” photo of the system the future photos of the system+ + Metric name Description Commits per service Number of commits on each microservice Commits within system Total number of commit on the system Developers per service Number of developers working on the microservice Is stateful Tracks the statefulness of a microservice NoS Number of microservices in the system NoD Number of developers working on the system NoC Number of clusters in the system Cyclomatic Complexity Quantitative measure of the number of linearly independent paths through a program’s source code Relative complexity of a service Coupling of microservice / number of microservices Metric name Description Commits per service Number of commits on each microservice Commits within system Total number of commit on the system Developers per service Number of developers working on the microservice Is stateful Tracks the statefulness of a microservice NoS Number of microservices in the system NoD Number of developers working on the system NoC Number of clusters in the system Cyclomatic Complexity Quantitative measure of the number of linearly independent paths through a program’s source code Relative complexity of a service Coupling of microservice / number of microservices Metric name Description Commits per service Number of commits on each microservice Commits within system Total number of commit on the system Developers per service Number of developers working on the microservice Is stateful Tracks the statefulness of a microservice NoS Number of microservices in the system NoD Number of developers working on the system NoC Number of clusters in the system Cyclomatic Complexity Quantitative measure of the number of linearly independent paths through a program’s source code Relative complexity of a service Coupling of microservice / number of microservices Metric name Description Commits per service Number of commits on each microservice Commits within system Total number of commit on the system Developers per service Number of developers working on the microservice Is stateful Tracks the statefulness of a microservice NoS Number of microservices in the system NoD Number of developers working on the system NoC Number of clusters in the system Cyclomatic Complexity Quantitative measure of the number of linearly independent paths through a program’s source code Relative complexity of a service Coupling of microservice / number of microservices Metric name Description Commits per service Number of commits on each microservice Commits within system Total number of commit on the system Developers per service Number of developers working on the microservice Is stateful Tracks the statefulness of a microservice NoS Number of microservices in the system NoD Number of developers working on the system NoC Number of clusters in the system Cyclomatic Complexity Quantitative measure of the number of linearly independent paths through a program’s source code Relative complexity of a service Coupling of microservice / number of microservices Metric name Description Commits per service Number of commits on each microservice Commits within system Total number of commit on the system Developers per service Number of developers working on the microservice Is stateful Tracks the statefulness of a microservice NoS Number of microservices in the system NoD Number of developers working on the system NoC Number of clusters in the system Cyclomatic Complexity Quantitative measure of the number of linearly independent paths through a program’s source code Relative complexity of a service Coupling of microservice / number of microservices My monitoring tool is much better than this... MicroART is: MicroART is used for planning development activities
  • 18. Ivano Malavolta Data-driven architecting Mario Cardarelli. Agility of Microservice Architectures: a Metrics-based Approach. Master thesis, University of L’Aquila, Italy, March, 2017,
  • 19. Ivano Malavolta • The market is full of metric-based tools for performance • The market LACKS metric-based tools for development-time structural analysis – calculate coupling and cohesion – calculate change impact – <ADD_YOUR_OWN_METRIC_HERE> • Example of query on the metrics: Metrics
  • 20. Ivano Malavolta • Additional layer on top of MicroART • Architects can specify their own metrics – your notion of complexity may be different than mine Metrics Calculator Metrics calculator
  • 21. Ivano Malavolta COUPLING - How much the microservices are interrelated each other COHESION – How much the operations of a microservice belong together COMPLEXITY - The total amount of work performed by a microservice Default metrics in MicroART
  • 22. Ivano Malavolta High quality software à low coupling à low complexity à high cohesion Quality Attributes
  • 23. Ivano Malavolta Repository Metrics Statistical Metrics Structural Metrics Other supported metrics (so far) Metric name Description Commits per service Number of commits on each microservice Commits within system Total number of commit on the system Developers per service Number of developers working on the microservice Is stateful Tracks the statefulness of a microservice NoS Number of microservices in the system NoD Number of developers working on the system NoC Number of clusters in the system Cyclomatic Complexity Quantitative measure of the number of linearly independent paths through a program’s source code Relative complexity of a service Coupling of microservice / number of microservices
  • 24. Ivano Malavolta • Prediction of costs on Cloud Computing Services • AWS • Bluemix • ... • Custom metrics • Resolution of additional infrastructural services • Dashboarding • developers can define their own visualizations of the architecture • Support for other container managers and Cloud solutions • Integration with Prometheus ... and with other monitoring tools MicroART plug-ins (work in progress)
  • 25. Ivano Malavolta Wrap up Ivano Malavolta ? Difficult to get the “big picture” • interdependent microservices • technologically polyglot • many different teams • different speeds (dev. and deploy) ... what if we add a new feature? • how to estimate the impact of that change? ... what if we restructure those 5 microservices? • is this change “breaking” other parts of the system? New services? System-level refactoring? A miracle* happens! * Miracle = experience of senior developers, devOps , architects Ivano Malavolta Architecture recovery Reconstruct the architecture of complex systems in an automated manner INPUT -- GitHub repo -- running system OUTPUT -- extracted architecture Goal Ivano Malavolta Architecture refinement Development-oriented dependencies among services Semi-automatic Ivano Malavolta • The market is full of metric-based tools for performance • The market LACKS metric-based tools for structural analysis – calculate coupling and cohesion – calculate change impact • Example of query on the metrics: Metrics
  • 26. Ivano Malavolta Why we are here @ LAC congres • How do you approach a change in the architecture of your system? • Do you want to try MicroART on your system? – fully automatic – not intrusive – no leak of any data • Did you migrate towards microservices? If yes, how?
  • 27. Ivano Malavolta Contact Ivano Malavolta | Vrije Universiteit Amsterdam iivanoo i.malavolta@vu.nl www.ivanomalavolta.com A few of the contents of this presentation are from co-authors’ slides