SlideShare a Scribd company logo
Towards a Tool-based Approach for
Microservice Antipatterns Identification
Rafik Tighilt1
, Manel Abdellatif2
, Naouel Moha1
, Yann-Gaël Guéhéneuc3
tighilt.rafik@courrier.uqam.ca, manel.abdellatif@polymtl.ca, moha.naouel@uqam.ca, yann-gael.gueheneuc@concordia.ca
1
Université du Québec à Montréal
2
Polytechnique Montréal
3
Concordia University
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
1
About the presenter
2
RAFIK TIGHILT
I’m a MSc student in computer science at Université du Québec à
Montréal, currently working on microservice-based system antipatterns.
I previously got a MSc in IT systems management. I worked on the industry
for 3 years including founding my own startup before starting the current
MSc program in computer science at UQAM.
My fields of interest include software engineering, web development and
competitive programming.
Outline
● About microservices
● Approach
● Microservice antipatterns
● Meta-model definition
● Meta-model components
● Detection rules
● Discussion
● Threats to validity
● Conclusion
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
3
About Microservices
● Microservice architecture is more and more popular
● Adopted by industry leaders (Amazon, Netflix, Riot Games, etc...)
● Consists of independently deployable and manageable services
● Each microservice fulfils a single business capability
● Allow automated deployment
● Offer greater agility
● Reduce the complexity of handling application scalability
4
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
But...
● Microservices are highly volatile
● Microservices are very dynamic
● Microservices are continuously developed and deployed
● Like any other system, microservices face challenges with maintainability and evolution
This factors can lead to the introduction of poor solutions to recurring design and implementation
problems (ie. Antipatterns).
5
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
How can we automatically
identify antipatterns in
microservice-based systems ?
6
Approach
● Literature and open-source systems reviews
● 27 papers obtained describing microservices antipatterns
● 67 open-source microservice-based systems manually analyzed
● Establishment of a catalog of microservice antipatterns
● Definition of a meta-model for the automatic analysis
● Definition of detection rules for each of the antipatterns
7
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Microservice antipatterns
Wrong cuts
8
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Cyclic dependencies
Microservices organized around technical layers instead of
business capabilities.
Circularly co-dependent microservices
Microservice antipatterns
Mega Service
A microservice serving multiple business capabilities, not
manageable by a single team.
9
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Nano Service
Multiple microservices working together to fulfil a single
business capability.
Microservice antipatterns
Shared libraries
10
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Hardcoded endpoints
Single libraries / files used by multiple microservices.
URLs, IP addresses, hostnames and other endpoints
hardcoded in the source code.
Microservice antipatterns
Manual configuration
11
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Configuration manually pushed for each microservice.
No API Gateway
Consumer applications communicate directly with
individual microservices.
Microservice antipatterns
Timeouts
12
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
No CI/CD
No Continuous Integration / Continuous Delivery
machinery in the process of developing, testing and
deploying microservices
Timeout values are set and hardcoded in HTTP requests
inside microservices source code.
Microservice antipatterns
Multiple service instances per host
13
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Multiple microservices are deployed on a single host.
Shared persistence
Multiple microservices share a single database.
Microservice antipatterns
No API versioning
14
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
No information available about a microservice version.
Local logging
Microservices have their own logging mechanism.
Microservice antipatterns
No healthcheck
15
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Insufficient monitoring
Microservices performance and failures are not tracked or
monitored.
Microservices are not periodically health-checked to verify
availability.
Meta-model definition
● The meta-model encapsulate the needed information to identify microservice antipatterns
● Consists of 13 components
● Each component contains some information about the system and its microservices
16
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Meta-model components
17
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
System
Holds information about the system itself (Name, version, is git repository, etc...)
Meta-model components
18
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Git repository
If the system is a git repository, contains information such as repository URL, number of commits, number
of contributors, etc…
Meta-model components
19
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Microservice
Stores information about single microservices (programming languages, LOCs, etc...)
Meta-model components
20
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Dependency
Contains information about a single dependency (Name, type, etc...)
Meta-model components
21
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Config
Holds information about configuration (Key value pairs, etc...)
Meta-model components
22
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Env
If available, represents environment variables used by the system
Meta-model components
23
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Deploy
Contains deployment information (Docker instructions, etc...)
Meta-model components
24
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Code
Stores information about a single source code file (Programming language, LOCs, etc...)
Meta-model components
25
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Image
If available, this component contains information about container images of the system
Meta-model components
26
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Server
Holds information about deployment servers of the system
Meta-model components
27
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
HTTP
Stores information about HTTP requests (Endpoints, source file, etc...)
Meta-model components
28
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Database
Stores information about database queries (query type, source file, etc...)
Meta-model components
29
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Import
Contains information about imported classes and packages
Detection rules
For each antipattern, we established a set of detection rules to assess its presence or not in a given
microservice based system.
This rules are detailed in the following slides.
30
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
31
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Wrong cuts One file type in source code, connects to other microservices containing only one file type
Cyclic dependencies Microservice performing calls to each other in a circular way
Mega service Relatively high number of lines of code, relatively high number of dependencies
Nano service Relatively low number of lines of code, relatively low number of dependencies
Shared libraries Binary files, source files and libraries shared between two or more microservices
Hardcoded endpoints No service discovery libraries in the dependencies, URLs and endpoints in the source code
Manual configuration No configuration management libraries in the dependencies, independent configuration files
No API gateway No API gateway libraries in the dependencies
32
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Timeouts No circuit breaker libraries in the dependencies, hardcoded timeout values in the source code
No CI / CD No CI / CD libraries in the dependencies, no CI / CD information in the repository if available
Multiple service instances
per host
Shared deployment scripts between two or more microservices
Shared persistence Shared data / database configuration between two or more microservices
No API versioning No version information in endpoints and URLs, no version headers in HTTP requests
Local logging No distributed logging libraries in the dependencies
No healthcheck No healthcheck libraries in the dependencies, no healthcheck URL, no healthcheck instructions
Insufficient monitoring No monitoring libraries in the dependencies
Discussion
● There are no fully automated tool-based approach to identify microservice antipatterns in the
literature, and our approach aims to fill this gap
● Our meta-model only requires source code and do not rely on documentation and other artifacts
● We aim to help developers minimize antipatterns in their source code
● We contribute to the maintenance and evolution of microservice-based system with a generic,
comprehensive and consensual definitions of antipatterns and an approach to identify these
antipatterns
33
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Threats to validity
● They are potentially other antipatterns that we did not find / include in our study
● The detection rules are subject to our interpretation and can be subjective (eg. Mega service).
However, we tried to minimize this by considering microservices as part of the system and not
standalone.
● We rely on lists of libraries and frameworks to identify some antipatterns, this lists can be
extended to include more libraries and frameworks.
34
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
Conclusion
● This presentation describe the foundation of our automatic tool-based approach for the
identification of antipatterns in microservice-based systems
● We propose an approach that is robust enough to identify the described antipatterns, yet still
extensible and flexible to evolve.
● The tool itself is currently work in progress
● The tool will be validated by manually analysing 28 microservice-based system to calculate
precision and recall
35
12th
International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
THANK YOU !
36

More Related Content

Similar to Service computation20.ppt

Blockchain solution architecture deliverable
Blockchain solution architecture deliverableBlockchain solution architecture deliverable
Blockchain solution architecture deliverable
Sarmad Ibrahim
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
Araf Karsh Hamid
 
Dot Net 8 Microservices Roadmap By ScholarHat PDF
Dot Net 8 Microservices Roadmap By ScholarHat PDFDot Net 8 Microservices Roadmap By ScholarHat PDF
Dot Net 8 Microservices Roadmap By ScholarHat PDF
Scholarhat
 
1213532535.pdf
1213532535.pdf1213532535.pdf
1213532535.pdf
SayantanMajhi2
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architectures
Ivano Malavolta
 
Building a reliable and scalable IoT platform with MongoDB and HiveMQ
Building a reliable and scalable IoT platform with MongoDB and HiveMQBuilding a reliable and scalable IoT platform with MongoDB and HiveMQ
Building a reliable and scalable IoT platform with MongoDB and HiveMQ
Dominik Obermaier
 
Red Hat Israel Meetup 2019 - Agile Integration
Red Hat Israel Meetup 2019 - Agile IntegrationRed Hat Israel Meetup 2019 - Agile Integration
Red Hat Israel Meetup 2019 - Agile Integration
Yaakov Preiger
 
Design-Based Microservices AKA Planes, Trains & Automobiles
Design-Based Microservices AKA Planes, Trains & AutomobilesDesign-Based Microservices AKA Planes, Trains & Automobiles
Design-Based Microservices AKA Planes, Trains & Automobiles
Matt McLarty
 
IRJET- Sandbox Technology
IRJET- Sandbox TechnologyIRJET- Sandbox Technology
IRJET- Sandbox Technology
IRJET Journal
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh
Rafik HARABI
 
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIsWSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2
 
API Management within a Microservice Architecture
API Management within a Microservice ArchitectureAPI Management within a Microservice Architecture
API Management within a Microservice Architecture
WSO2
 
API Management Within a Microservices Architecture
API Management Within a Microservices Architecture API Management Within a Microservices Architecture
API Management Within a Microservices Architecture
Nadeesha Gamage
 
[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
 
Denodo as the Core Pillar of your API Strategy
Denodo as the Core Pillar of your API StrategyDenodo as the Core Pillar of your API Strategy
Denodo as the Core Pillar of your API Strategy
Denodo
 
Cytoscape CI Chapter 2
Cytoscape CI Chapter 2Cytoscape CI Chapter 2
Cytoscape CI Chapter 2
bdemchak
 
Kochi mulesoft meetup 02
Kochi mulesoft meetup 02Kochi mulesoft meetup 02
Kochi mulesoft meetup 02
sumitahuja94
 
The Role of Data Virtualization in an API Economy
The Role of Data Virtualization in an API EconomyThe Role of Data Virtualization in an API Economy
The Role of Data Virtualization in an API Economy
Denodo
 
[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises
WSO2
 

Similar to Service computation20.ppt (20)

Blockchain solution architecture deliverable
Blockchain solution architecture deliverableBlockchain solution architecture deliverable
Blockchain solution architecture deliverable
 
Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
 
Dot Net 8 Microservices Roadmap By ScholarHat PDF
Dot Net 8 Microservices Roadmap By ScholarHat PDFDot Net 8 Microservices Roadmap By ScholarHat PDF
Dot Net 8 Microservices Roadmap By ScholarHat PDF
 
1213532535.pdf
1213532535.pdf1213532535.pdf
1213532535.pdf
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architectures
 
Building a reliable and scalable IoT platform with MongoDB and HiveMQ
Building a reliable and scalable IoT platform with MongoDB and HiveMQBuilding a reliable and scalable IoT platform with MongoDB and HiveMQ
Building a reliable and scalable IoT platform with MongoDB and HiveMQ
 
Red Hat Israel Meetup 2019 - Agile Integration
Red Hat Israel Meetup 2019 - Agile IntegrationRed Hat Israel Meetup 2019 - Agile Integration
Red Hat Israel Meetup 2019 - Agile Integration
 
Design-Based Microservices AKA Planes, Trains & Automobiles
Design-Based Microservices AKA Planes, Trains & AutomobilesDesign-Based Microservices AKA Planes, Trains & Automobiles
Design-Based Microservices AKA Planes, Trains & Automobiles
 
IRJET- Sandbox Technology
IRJET- Sandbox TechnologyIRJET- Sandbox Technology
IRJET- Sandbox Technology
 
Managing microservices with Istio Service Mesh
Managing microservices with Istio Service MeshManaging microservices with Istio Service Mesh
Managing microservices with Istio Service Mesh
 
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIsWSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
 
API Management within a Microservice Architecture
API Management within a Microservice ArchitectureAPI Management within a Microservice Architecture
API Management within a Microservice Architecture
 
API Management Within a Microservices Architecture
API Management Within a Microservices Architecture API Management Within a Microservices Architecture
API Management Within a Microservices Architecture
 
[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...
 
Denodo as the Core Pillar of your API Strategy
Denodo as the Core Pillar of your API StrategyDenodo as the Core Pillar of your API Strategy
Denodo as the Core Pillar of your API Strategy
 
Cytoscape CI Chapter 2
Cytoscape CI Chapter 2Cytoscape CI Chapter 2
Cytoscape CI Chapter 2
 
Kochi mulesoft meetup 02
Kochi mulesoft meetup 02Kochi mulesoft meetup 02
Kochi mulesoft meetup 02
 
The Role of Data Virtualization in an API Economy
The Role of Data Virtualization in an API EconomyThe Role of Data Virtualization in an API Economy
The Role of Data Virtualization in an API Economy
 
[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises[WSO2Con EU 2017] Microservices for Enterprises
[WSO2Con EU 2017] Microservices for Enterprises
 

More from Yann-Gaël Guéhéneuc

Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0
Yann-Gaël Guéhéneuc
 
Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
Yann-Gaël Guéhéneuc
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
Yann-Gaël Guéhéneuc
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Yann-Gaël Guéhéneuc
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
Yann-Gaël Guéhéneuc
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
Yann-Gaël Guéhéneuc
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
Yann-Gaël Guéhéneuc
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
Yann-Gaël Guéhéneuc
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
Yann-Gaël Guéhéneuc
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Yann-Gaël Guéhéneuc
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
Yann-Gaël Guéhéneuc
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
Yann-Gaël Guéhéneuc
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
Yann-Gaël Guéhéneuc
 
ICSOC'21
ICSOC'21ICSOC'21
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
Yann-Gaël Guéhéneuc
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
Yann-Gaël Guéhéneuc
 
Msr20.ppt
Msr20.pptMsr20.ppt
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc18.ppt
Icsoc18.pptIcsoc18.ppt

More from Yann-Gaël Guéhéneuc (20)

Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0Some Pitfalls with Python and Their Possible Solutions v1.0
Some Pitfalls with Python and Their Possible Solutions v1.0
 
Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
 
Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2Well-known Computer Scientists v1.0.2
Well-known Computer Scientists v1.0.2
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
 
ICSOC'21
ICSOC'21ICSOC'21
ICSOC'21
 
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
 
Msr20.ppt
Msr20.pptMsr20.ppt
Msr20.ppt
 
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Iwesep19.ppt
 
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc20.ppt
 
Icsoc18.ppt
Icsoc18.pptIcsoc18.ppt
Icsoc18.ppt
 

Recently uploaded

Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 

Recently uploaded (20)

Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 

Service computation20.ppt

  • 1. Towards a Tool-based Approach for Microservice Antipatterns Identification Rafik Tighilt1 , Manel Abdellatif2 , Naouel Moha1 , Yann-Gaël Guéhéneuc3 tighilt.rafik@courrier.uqam.ca, manel.abdellatif@polymtl.ca, moha.naouel@uqam.ca, yann-gael.gueheneuc@concordia.ca 1 Université du Québec à Montréal 2 Polytechnique Montréal 3 Concordia University 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 1
  • 2. About the presenter 2 RAFIK TIGHILT I’m a MSc student in computer science at Université du Québec à Montréal, currently working on microservice-based system antipatterns. I previously got a MSc in IT systems management. I worked on the industry for 3 years including founding my own startup before starting the current MSc program in computer science at UQAM. My fields of interest include software engineering, web development and competitive programming.
  • 3. Outline ● About microservices ● Approach ● Microservice antipatterns ● Meta-model definition ● Meta-model components ● Detection rules ● Discussion ● Threats to validity ● Conclusion 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 3
  • 4. About Microservices ● Microservice architecture is more and more popular ● Adopted by industry leaders (Amazon, Netflix, Riot Games, etc...) ● Consists of independently deployable and manageable services ● Each microservice fulfils a single business capability ● Allow automated deployment ● Offer greater agility ● Reduce the complexity of handling application scalability 4 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
  • 5. But... ● Microservices are highly volatile ● Microservices are very dynamic ● Microservices are continuously developed and deployed ● Like any other system, microservices face challenges with maintainability and evolution This factors can lead to the introduction of poor solutions to recurring design and implementation problems (ie. Antipatterns). 5 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
  • 6. How can we automatically identify antipatterns in microservice-based systems ? 6
  • 7. Approach ● Literature and open-source systems reviews ● 27 papers obtained describing microservices antipatterns ● 67 open-source microservice-based systems manually analyzed ● Establishment of a catalog of microservice antipatterns ● Definition of a meta-model for the automatic analysis ● Definition of detection rules for each of the antipatterns 7 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
  • 8. Microservice antipatterns Wrong cuts 8 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Cyclic dependencies Microservices organized around technical layers instead of business capabilities. Circularly co-dependent microservices
  • 9. Microservice antipatterns Mega Service A microservice serving multiple business capabilities, not manageable by a single team. 9 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Nano Service Multiple microservices working together to fulfil a single business capability.
  • 10. Microservice antipatterns Shared libraries 10 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Hardcoded endpoints Single libraries / files used by multiple microservices. URLs, IP addresses, hostnames and other endpoints hardcoded in the source code.
  • 11. Microservice antipatterns Manual configuration 11 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Configuration manually pushed for each microservice. No API Gateway Consumer applications communicate directly with individual microservices.
  • 12. Microservice antipatterns Timeouts 12 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 No CI/CD No Continuous Integration / Continuous Delivery machinery in the process of developing, testing and deploying microservices Timeout values are set and hardcoded in HTTP requests inside microservices source code.
  • 13. Microservice antipatterns Multiple service instances per host 13 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Multiple microservices are deployed on a single host. Shared persistence Multiple microservices share a single database.
  • 14. Microservice antipatterns No API versioning 14 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 No information available about a microservice version. Local logging Microservices have their own logging mechanism.
  • 15. Microservice antipatterns No healthcheck 15 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Insufficient monitoring Microservices performance and failures are not tracked or monitored. Microservices are not periodically health-checked to verify availability.
  • 16. Meta-model definition ● The meta-model encapsulate the needed information to identify microservice antipatterns ● Consists of 13 components ● Each component contains some information about the system and its microservices 16 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
  • 17. Meta-model components 17 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 System Holds information about the system itself (Name, version, is git repository, etc...)
  • 18. Meta-model components 18 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Git repository If the system is a git repository, contains information such as repository URL, number of commits, number of contributors, etc…
  • 19. Meta-model components 19 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Microservice Stores information about single microservices (programming languages, LOCs, etc...)
  • 20. Meta-model components 20 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Dependency Contains information about a single dependency (Name, type, etc...)
  • 21. Meta-model components 21 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Config Holds information about configuration (Key value pairs, etc...)
  • 22. Meta-model components 22 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Env If available, represents environment variables used by the system
  • 23. Meta-model components 23 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Deploy Contains deployment information (Docker instructions, etc...)
  • 24. Meta-model components 24 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Code Stores information about a single source code file (Programming language, LOCs, etc...)
  • 25. Meta-model components 25 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Image If available, this component contains information about container images of the system
  • 26. Meta-model components 26 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Server Holds information about deployment servers of the system
  • 27. Meta-model components 27 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 HTTP Stores information about HTTP requests (Endpoints, source file, etc...)
  • 28. Meta-model components 28 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Database Stores information about database queries (query type, source file, etc...)
  • 29. Meta-model components 29 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Import Contains information about imported classes and packages
  • 30. Detection rules For each antipattern, we established a set of detection rules to assess its presence or not in a given microservice based system. This rules are detailed in the following slides. 30 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
  • 31. 31 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Wrong cuts One file type in source code, connects to other microservices containing only one file type Cyclic dependencies Microservice performing calls to each other in a circular way Mega service Relatively high number of lines of code, relatively high number of dependencies Nano service Relatively low number of lines of code, relatively low number of dependencies Shared libraries Binary files, source files and libraries shared between two or more microservices Hardcoded endpoints No service discovery libraries in the dependencies, URLs and endpoints in the source code Manual configuration No configuration management libraries in the dependencies, independent configuration files No API gateway No API gateway libraries in the dependencies
  • 32. 32 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020 Timeouts No circuit breaker libraries in the dependencies, hardcoded timeout values in the source code No CI / CD No CI / CD libraries in the dependencies, no CI / CD information in the repository if available Multiple service instances per host Shared deployment scripts between two or more microservices Shared persistence Shared data / database configuration between two or more microservices No API versioning No version information in endpoints and URLs, no version headers in HTTP requests Local logging No distributed logging libraries in the dependencies No healthcheck No healthcheck libraries in the dependencies, no healthcheck URL, no healthcheck instructions Insufficient monitoring No monitoring libraries in the dependencies
  • 33. Discussion ● There are no fully automated tool-based approach to identify microservice antipatterns in the literature, and our approach aims to fill this gap ● Our meta-model only requires source code and do not rely on documentation and other artifacts ● We aim to help developers minimize antipatterns in their source code ● We contribute to the maintenance and evolution of microservice-based system with a generic, comprehensive and consensual definitions of antipatterns and an approach to identify these antipatterns 33 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
  • 34. Threats to validity ● They are potentially other antipatterns that we did not find / include in our study ● The detection rules are subject to our interpretation and can be subjective (eg. Mega service). However, we tried to minimize this by considering microservices as part of the system and not standalone. ● We rely on lists of libraries and frameworks to identify some antipatterns, this lists can be extended to include more libraries and frameworks. 34 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020
  • 35. Conclusion ● This presentation describe the foundation of our automatic tool-based approach for the identification of antipatterns in microservice-based systems ● We propose an approach that is robust enough to identify the described antipatterns, yet still extensible and flexible to evolve. ● The tool itself is currently work in progress ● The tool will be validated by manually analysing 28 microservice-based system to calculate precision and recall 35 12th International Conference on Advanced Service Computing SERVICE COMPUTATION 2020