SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
Microservice migration
motivations, patterns and
antipatterns
Davide Taibi
davide.taibi@tut.fi
www.taibi.it
Davide Taibi - Colloquium Series - SPLAB ZHAW
Davide Taibi - Colloquium Series - SPLAB ZHAW
Main Research Areas
• Cloud and Web software Engineering
• Microservices, Serverless
• Migration Processes
• Anti Patterns
• Orchestration
• Technical Debt
Davide Taibi - Colloquium Series - SPLAB ZHAW
Software Architecture Evolution
D.Taibi, V.Lenarduzzi, C.Pahl, A.Janes. Microservices Architectural Styles: Agile or not Agile? XP 2017
Davide Taibi - Colloquium Series - SPLAB ZHAW
Software Architecture Evolution
D.Taibi, V.Lenarduzzi, C.Pahl, A.Janes. Microservices Architectural Styles: Agile or not Agile? XP 2017
Davide Taibi - Colloquium Series - SPLAB ZHAW
Davide Taibi - Colloquium Series - SPLAB ZHAW
Microservices Migration Processes
Davide Taibi - Colloquium Series - SPLAB ZHAW
Goal:
Microservice Migration
• Motivations and Expected Benefits
• Processes
• Issues
21 companies interviewed
D. Taibi, Lenarduzzi, V. , and Pahl, C. , “Processes, Motivations and Issues for Migrating to Microservices
Architectures: An Empirical Investigation”, IEEE Cloud Computing Journal, vol. 4, no. 5, 2017.
Davide Taibi - Colloquium Series - SPLAB ZHAW
Microservices - KölnMicroservices - Köln
Migration Motivation
Migration Process (1/2)
Davide Taibi - Colloquium Series - SPLAB ZHAW
Migration Process (2/2)
Davide Taibi - Colloquium Series - SPLAB ZHAW
Main Issues Identified
Davide Taibi - Colloquium Series - SPLAB ZHAW
Technical Issues
• Decoupling from the monolithic system
• Database migration and data splitting
• Communication among services
• Service orchestration complexity
Main Issues Identified
Davide Taibi - Colloquium Series - SPLAB ZHAW
Effort-Related issues
• Effort estimation and overhead
• effort at least 20% higher
• Effort required for the DevOps infrastructure
• Effort required for library conversion
Main Issues Identified
Davide Taibi - Colloquium Series - SPLAB ZHAW
Other issues
• People’s minds
• ROI achieved in longer time (or never) compared to monolithic
systems
Microservices Architectural Patterns
Goal
Classify the architectural Patterns proposed in the Literature
D. Taibi, Lenarduzzi, V. , and Pahl, C. , “Architectural Patterns for Microservices: A Systematic Mapping Study”,
in 8th International Conference on Cloud Computing and Services Science, CLOSER , 2018.
Davide Taibi - Colloquium Series - SPLAB ZHAW
Paper Selection
Searched for
(microservice* OR micro-service*) AND (architect* OR migrat* OR modern* OR
reengineer* OR re-engineer* OR refactor* OR re-factor* OR rearchitect* OR
re-architect* OR evol*)
Included
non peer-reviewed contributions if their number of citations was higher than
those of average peer-reviewed papers
Summary
65% of these papers were published at conferences
23% were accepted at workshops
only 7% of the papers were published as journal articles
nearly 5% (2 papers) are non peer-reviewed websites
Davide Taibi - Colloquium Series - SPLAB ZHAW
Paper Selection
Davide Taibi - Colloquium Series - SPLAB ZHAW
Pattern Categories
• Orchestration and Coordination
• Deployment strategies
• Data management / Data Storage
Davide Taibi - Colloquium Series - SPLAB ZHAW
Shopping
Cart
Product
Catalog
Recommender
System
API
Gateway
Client-
Specific APIs
Protocol
Translation
Davide Taibi - Colloquium Series - SPLAB ZHAW
API Gateway PatternOrchestration and Coordination
Shop. Cart
Instance 1
Service 1
REST
API
Registr
y
Client
REST
API
Registr
y
Client
REST
API
Registr
y
Client
Shop. Cart
Instance 2
Shop. Cart
Instance 3
Service
Registr
y
Register
Registry
-aware
client
Client-Side Discovery Pattern
Davide Taibi - Colloquium Series - SPLAB ZHAW
Orchestration and Coordination
Shop. Cart
Instance 1
Service 1
Load
Balancer
REST
API
Registry
Client
REST
API
Registr
y
Client
REST
API
Registr
y
Client
Shop. Cart
Instance 2
Shop. Cart
Instance 3
Service
Registry
Load Balance
Register
Query
Request
Server-Side Discovery Pattern
Davide Taibi - Colloquium Series - SPLAB ZHAW
Orchestration and Coordination
Advantages and Disadvantages of the Identified Patterns
Davide Taibi - Colloquium Series - SPLAB ZHAW
Classification of Advantages and Disadvantages of the Identified Patterns
Davide Taibi - Colloquium Series - SPLAB ZHAW
Emerging Issues
Comparison of SOA and Microservices.
• differences not thoroughly investigated.
• lack of comparisons (e.g., performance, development effort, maintenance).
Microservices Explosion.
• When qualities degrade?
Negative Results.
• In which contexts do microservices turn out to be counterproductive? Are there
anti-patterns?
Davide Taibi - Colloquium Series - SPLAB ZHAW
DevOps
• DevOps pipeline is only partially covered by research work.
• Only few papers propose specific techniques, and apply them to
small example projects.
• Release-specific techniques have not been investigated in our
selected works.
• No empirical validation have been carried out in the selected
works.
Davide Taibi - Colloquium Series - SPLAB ZHAW
Microservice Antipatterns
and Bad Smells FOCUS: MICROSERVICES
56 IE E E S O F T WA R E | PU BLI S H E D BY T H E I E E E CO M PU T E R S O CI E T Y 074 0 -74 5 9/18 / $ 3 3.0 0 © 2 018 I E E E
On the Definition
of Microservice
Bad Smells
Davide Taibi and Valentina Lenarduzzi, Tampere University of
Technology
// To identify microservice-specific bad
smells, researchers collected evidence of
bad practices by interviewing developers
experienced with microservice-based systems.
They then classified the bad practices into
11 microservice bad smells frequently
considered harmful by practitioners. //
MICROSERVICES ARE CURRENTLY
enjoying increasing popularity and
diffusion in industrial environments,
being adopted by several big players
such as Amazon, LinkedIn, Netflix,
and SoundCloud. Microservices are
relatively small and autonomous ser-
vices that work together, are mod-
eled around a business capability,
and have a single and clearly defined
purpose.1,2 Microservices enable
independent deployment, allowing
small teams to work on separated
and focused services by using the
most suitable technologies for their
job that can be deployed and scaled
independently.1,2 Microservices are
a newly developed architectural
style. Several patterns and platforms
such as nginx (www.nginx.org) and
Kubernetes (kubernetes.io) exist on
the market. During the migration
process, practitioners often face com-
mon problems, which are due mainly
to their lack of knowledge regarding
bad practices and patterns.3,4
In this article, we provide a cata-
log of bad smells that are specific to
systems developed using a micro-
service architectural style, together
with possible solutions to overcome
these smells. To produce this catalog,
we surveyed and interviewed 72 ex-
perienced developers over the course
of two years, focusing on bad prac-
tices they found during the develop-
ment of microservice-based systems
and on how they overcame them. We
identified a catalog of 11 microservice-
specific bad smells by applying an
open and selective coding5 proce-
dure to derive the smell catalog from
the practitioners’ answers.
The goal of this work is to help
practitioners avoid these bad prac-
tices altogether or deal with them
more efficiently when developing or
migrating monoliths to microservice-
based systems.
As with code and architectural
smells, which are patterns com-
monly considered symptoms of bad
design,1,6 we define microservice-
specific bad smells (called “micro-
service smells” hereafter) as
indicators of situations—such as un-
desired patterns, antipatterns, or bad
practices—that negatively affect
software quality attributes such as
understandability, testability, extensi-
bility, reusability, and maintainability
of the system under development.
Background
Several generic architectural-smell
detection tools and practices have
been defined in the past years.7–9
Moreover, several microservice-
specific architectural patterns have
been defined.10 However, to the best
of our knowledge, no peer-reviewed
work and, in particular, no empirical
studies have proposed bad practices,
antipatterns, or smells specifically
concerning microservices.
However, some practitioners have
started to discuss bad practices in
microservices. In his ebook Micro-
services AntiPatterns and Pitfalls,
IEEE Software May/June 2018
Davide Taibi - Colloquium Series - SPLAB ZHAW
D. Taibi and Lenarduzzi, V. , “On the Definition of Microservice Bad
Smells”, IEEE Software , vol. 35, no. 3, 2018.
Microservices Bad Smells
Exploratory Survey (72 practitioners) [2]
11 Smells identified
• Cyclic Dependencies
• Problem of Microservices Explosion
• More than 50 connected microservices become unmanageable
Davide Taibi - Colloquium Series - SPLAB ZHAW
Davide Taibi - Colloquium Series - SPLAB ZHAW
Microservice Bad Smells
Microservice Bad Smells
Davide Taibi - Colloquium Series - SPLAB ZHAW
Davide Taibi - Colloquium Series - SPLAB ZHAW
Microservice Bad Smells
Migration to Microservices
and Technical Debt
Davide Taibi - Colloquium Series - SPLAB ZHAW
L. Valentina and Davide, T. , “Microservices, Continuous Architecture, and Technical Debt Interest: An
Empirical Study”, in Euromicro/SEAA, Prague, 2018.
Case Study - RQs
RQ1: Is the TD of a monolithic system higher than the TD of the
same system developed with a microservices architectural style?
RQ2: Is the TD of a monolithic system growing with the same trend
as a microservices-based system?
Davide Taibi - Colloquium Series - SPLAB ZHAW
Case Study - Object
One Italian Company
Document Management System
Java
Deployed on Microsoft Azure
Delivered as a web application +desktop application to
support document uploading
Davide Taibi - Colloquium Series - SPLAB ZHAW
Case Study - Object
Monolithic system
280K lines of code
>12 years old
Expected Benefits
-Ease maintenance
-Separate each business process
-Reduce the need for synchronization between the two
development teams.
Davide Taibi - Colloquium Series - SPLAB ZHAW
Case Study - Object
6 business process extracted into 6 MS
Two of the six microservices were deeply re-
architected after the first release
MS1: MySQL replaced by MongoDB
MS2: re-written from Java to in Python
Davide Taibi - Colloquium Series - SPLAB ZHAW
Case Study – Results
Davide Taibi - Colloquium Series - SPLAB ZHAW
0
2000
4000
6000
8000
10000
12000
14000
TechcnicalDebt
Microservice1 Microservice2 Microservice4 Microservice3
Mar.2017
Jan.2018
April2017
May2017
June2017
July2017
Aug.2017
Sept.2017
Oct.2017
Nov.2017
Dec.2018
Case Study Results: TD Trend
Davide Taibi - Colloquium Series - SPLAB ZHAW
TD Trend TD Trend Predicted TD
without Migration
No Migration
Overall System TD
Monolithic System Microservice Migration
Case Study Results
The TD of the monolithic system is lower than TD after the
migration.
TD tends to be more stable and to increase slower in each
microservice compared to the whole system’s technical debt
The Total TD grows faster compared to the TD growth before the
migration.
Davide Taibi - Colloquium Series - SPLAB ZHAW
Microservices Slicing with Process Mining
Can we use process mining techniques to support slicing?
Industrial Case Study with a SME
• Legacy system developed in 2006
• Document Management System for tax accountants
• > 1000 Classes
Davide Taibi - Colloquium Series - SPLAB ZHAW
Idea
Mining log files to identify business processes
Identify potential MS candidate
• Low coupling
• High Cohesion
Davide Taibi - Colloquium Series - SPLAB ZHAW
5-steps process
Davide Taibi - Colloquium Series - SPLAB ZHAW
Step 1: Process Mining
Step 2: Process Usage Ranking
Step 3: Process-driven identification of decomposition solutions
Step 4: Circular Dependencies, Cohesion, and Coupling
Step 5: Identification of decomposition alternatives
Log Files Example
Davide Taibi - Colloquium Series - SPLAB ZHAW
ID Start Timestamp Complete
Timestamp
Activity Class Method
1 02.01.2018
12:00:00:00
02.01.2018
12:00:00:36
Create Invoice MainInvoice createInvoice()
2 02.01.2018
12:00:01:00
02.01.2018
12:00:01:39
Validate
Invoice
ValidateInvoice validate()
3 02.01.2018
12:00:01:40
02.01.2018
12:00:01:45
Save Invoice MainInvoice save()
4 02.01.2018
12:00:01:45
02.01.2018
12:00:01:55
Save Invoice DB INVOICE
5 02.01.2018
12:00:01:56
02.01.2018
12:00:02:05
Save Invoice DB ACCOUNTANT
Slicing Example
Davide Taibi - Colloquium Series - SPLAB ZHAW
InvoiceForm.submitButtonClick
MainInvoice.createInvoice() ValidateInvoice.validate()
MainInvoice.save()
MainInvoice.sendToMinistry() SDI Webservice
(Ministry of Finance Information System)
INVOICE
ACCOUNTANT
CUSTOMER
MainInvoice.updateStatus() AmazonGlacier.storePermanently()
DBManager.read()
InvoiceForm.getInvoiceDetails()
MainInvoice.getInvoice()
DBManager.save()
DBManager
WebApp
MainInvoice
Microservice 1
Microservice 2
Microservices Adoption Framework
• How to decide if migrate to Microservices or Not?
• Which measure should be considered?
• Literature: Limited comparison between MS and Monothic systems
• Limited number of empirical studies on software qualities
Davide Taibi - Colloquium Series - SPLAB ZHAW
MS Adoption Framework - Approach
• Systematic Mapping Study
• Metrics adopted in studies comparing MS and Monolithic systems
• Survey (52 practitioners)
• Which measures have you considered before migrating?
• Which measures were useful?
• Which measures should have been considered?
• How useful are the metrics adopted in the mapping studies?
Davide Taibi - Colloquium Series - SPLAB ZHAW
Preliminary Results (Mapping Study)
Davide Taibi - Colloquium Series - SPLAB ZHAW
Product related
PerformanceAvailability Maintenance
CHARACTERISTICS
(RQ2)
Meantimetorecover
Downtime
Meantimetofailure
CPUutilization
ResponseTime
Pathlength
Usageofcontainers
Impactofprogramminglanguage
#featurepermicroservice
#requestsperminute
Complexity
Testability
MEASURES
(RQ3)
Process related Cost
Developmentindependencebetweenteams
Continuousdelivery
Reusability
Personnel Infrastructure
Developmentcost
Costperhour
Costpermillionofrequests
Scalability
Waitingtime
Microservices and FaaS
Practitioners started migrate to microsercvices and FaaS
Mixed Approach (microsercvices + Functions)
Open Issues
• When and Why Extract a feature as Function or as Microservice?
• Which pattern should be adopted
Davide Taibi - Colloquium Series - SPLAB ZHAW
Conclusion
Microservices - Cagliari 11.07.2018Microservices - Köln
26/06/2017
Microservices - Köln
26/06/2017
Migration Motivation Migration Process (1/2)
Microservices - Cagliari 11.07.2018
Microservices Architectural Patterns
Goal
Classify the architectural Patterns proposed in the Literature
D. Taibi, Lenarduzzi, V. , and Pahl, C. , “Architectural Patterns for Microservices: A Systematic Mapping Study”,
in 8th International Conference on Cloud Computing and Services Science, CLOSER , 2018.
Microservices - Cagliari 11.07.2018
Microservices Bad Smells
Exploratory Survey (72 practitioners) [2]
11 Architectural Smells identified
• Cyclic Dependencies
• Problem of Microservices Explosion
• More than 50 connected microservices become unmanageable
Microservices - Cagliari 11.07.2018
Microservices Technical Debt
8.9.201848
TD Trend TD Trend Predicted TD
without Migration
No Migration
Overall System TD
Monolithic System Microservice Migration
Process Mining Slicing
Microservice 1
Microservice 2
Microservice Adoption Framework
Microservices and FaaS
Practitioners started migrate to microsercvices and FaaS
Mixed Approach (microsercvices + Functions)
Open Issues
• When and Why Extract a feature as Function or as Microservice?
• Which pattern should be adopted
References
• D. Taibi, Lenarduzzi, V. , and Pahl, C. , “Processes, Motivations and Issues for Migrating to
Microservices Architectures: An Empirical Investigation”, IEEE Cloud Computing Journal, vol. 4, no.
5, 2017.
• D. Taibi, Lenarduzzi, V. , and Pahl, C. , “Architectural Patterns for Microservices: A Systematic
Mapping Study”, in 8th International Conference on Cloud Computing and Services Science,
CLOSER , 2018
• D. Taibi and Lenarduzzi, V. , “On the Definition of Microservice Bad Smells”, IEEE Software , vol.
35, no. 3, 2018
• P. Rosati, Fowley, F. , Pahl, C. , Taibi, D. , and Lynn, T. , “Making the Cloud work for Software
Producers: linking Architecture, Operating Cost and Revenue”, in 8th International Conference on
Cloud Computing and Services Science, 2018
• L. Valentina and Davide, T. , “Microservices, Continuous Architecture, and Technical Debt Interest:
An Empirical Study”, in Euromicro/SEAA, Prague, 2018
Davide Taibi - Colloquium Series - SPLAB ZHAW

Weitere ähnliche Inhalte

Ähnlich wie Microservices Patterns, Issues, Migration Processes

The Latest in DevOps: Elite Performance, Productivity, and Scaling - Google
The Latest in DevOps: Elite Performance, Productivity, and Scaling - GoogleThe Latest in DevOps: Elite Performance, Productivity, and Scaling - Google
The Latest in DevOps: Elite Performance, Productivity, and Scaling - GoogleMarilyne Huret
 
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
 
Practical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfPractical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfAhmed Misbah
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortJordi Cabot
 
SAD07 - Project Management
SAD07 - Project ManagementSAD07 - Project Management
SAD07 - Project ManagementMichael Heron
 
I Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at AmazonI Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at AmazonApigee | Google Cloud
 
The biggest DevOps problems you didn't know you had and what to do about them
The biggest DevOps problems you didn't know you had and what to do about themThe biggest DevOps problems you didn't know you had and what to do about them
The biggest DevOps problems you didn't know you had and what to do about themWayne Greene
 
OrteliusMicroserviceVisionaries2022_Why do you need a microservice catalog to...
OrteliusMicroserviceVisionaries2022_Why do you need a microservice catalog to...OrteliusMicroserviceVisionaries2022_Why do you need a microservice catalog to...
OrteliusMicroserviceVisionaries2022_Why do you need a microservice catalog to...Turja Narayan Chaudhuri
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture uploadThe Real Dyl
 
Exploring and Integrating UX in Open Source Software Development
Exploring and Integrating UX in Open Source Software Development Exploring and Integrating UX in Open Source Software Development
Exploring and Integrating UX in Open Source Software Development Victoria Bondarchuk
 
Supporting Newcomers in Software Development Projects
Supporting Newcomers in Software Development ProjectsSupporting Newcomers in Software Development Projects
Supporting Newcomers in Software Development ProjectsSebastiano Panichella
 
Be Prepared for Growth - Confluence at Thales
Be Prepared for Growth - Confluence at ThalesBe Prepared for Growth - Confluence at Thales
Be Prepared for Growth - Confluence at ThalesAtlassian
 
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...Tom Mens
 
The top 6 microservices patterns
The top 6 microservices patternsThe top 6 microservices patterns
The top 6 microservices patternsAbhishek Sood
 
Pathways to Technology Transfer and Adoption: Achievements and Challenges
Pathways to Technology Transfer and Adoption: Achievements and ChallengesPathways to Technology Transfer and Adoption: Achievements and Challenges
Pathways to Technology Transfer and Adoption: Achievements and ChallengesTao Xie
 
Intro to dev ops and cloud services
Intro to dev ops and cloud servicesIntro to dev ops and cloud services
Intro to dev ops and cloud serviceshardwyrd
 

Ähnlich wie Microservices Patterns, Issues, Migration Processes (20)

The Latest in DevOps: Elite Performance, Productivity, and Scaling - Google
The Latest in DevOps: Elite Performance, Productivity, and Scaling - GoogleThe Latest in DevOps: Elite Performance, Productivity, and Scaling - Google
The Latest in DevOps: Elite Performance, Productivity, and Scaling - Google
 
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
 
Practical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdfPractical Microservice Architecture (edition 2022).pdf
Practical Microservice Architecture (edition 2022).pdf
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
SAD07 - Project Management
SAD07 - Project ManagementSAD07 - Project Management
SAD07 - Project Management
 
A Methodology for Building the Internet of Things
A Methodology for Building the Internet of ThingsA Methodology for Building the Internet of Things
A Methodology for Building the Internet of Things
 
I Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at AmazonI Love APIs 2015: Microservices at Amazon
I Love APIs 2015: Microservices at Amazon
 
The biggest DevOps problems you didn't know you had and what to do about them
The biggest DevOps problems you didn't know you had and what to do about themThe biggest DevOps problems you didn't know you had and what to do about them
The biggest DevOps problems you didn't know you had and what to do about them
 
OrteliusMicroserviceVisionaries2022_Why do you need a microservice catalog to...
OrteliusMicroserviceVisionaries2022_Why do you need a microservice catalog to...OrteliusMicroserviceVisionaries2022_Why do you need a microservice catalog to...
OrteliusMicroserviceVisionaries2022_Why do you need a microservice catalog to...
 
20161220 - microservice
20161220 - microservice20161220 - microservice
20161220 - microservice
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture upload
 
Exploring and Integrating UX in Open Source Software Development
Exploring and Integrating UX in Open Source Software Development Exploring and Integrating UX in Open Source Software Development
Exploring and Integrating UX in Open Source Software Development
 
Supporting Newcomers in Software Development Projects
Supporting Newcomers in Software Development ProjectsSupporting Newcomers in Software Development Projects
Supporting Newcomers in Software Development Projects
 
Be Prepared for Growth - Confluence at Thales
Be Prepared for Growth - Confluence at ThalesBe Prepared for Growth - Confluence at Thales
Be Prepared for Growth - Confluence at Thales
 
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
ICSME 2016 keynote: An ecosystemic and socio-technical view on software maint...
 
The top 6 microservices patterns
The top 6 microservices patternsThe top 6 microservices patterns
The top 6 microservices patterns
 
Devops.pptx
Devops.pptxDevops.pptx
Devops.pptx
 
Pathways to Technology Transfer and Adoption: Achievements and Challenges
Pathways to Technology Transfer and Adoption: Achievements and ChallengesPathways to Technology Transfer and Adoption: Achievements and Challenges
Pathways to Technology Transfer and Adoption: Achievements and Challenges
 
Intro to dev ops and cloud services
Intro to dev ops and cloud servicesIntro to dev ops and cloud services
Intro to dev ops and cloud services
 
1st Riga DevOps meetup
1st Riga DevOps meetup1st Riga DevOps meetup
1st Riga DevOps meetup
 

Mehr von Davide Taibi

On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint
On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint
On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint Davide Taibi
 
From monolithic systems to microservices. a decomposition framework based on ...
From monolithic systems to microservices. a decomposition framework based on ...From monolithic systems to microservices. a decomposition framework based on ...
From monolithic systems to microservices. a decomposition framework based on ...Davide Taibi
 
Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019
Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019 Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019
Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019 Davide Taibi
 
Asterism: A Decentralized File Sharing for Mobile Devices
Asterism: A Decentralized File Sharing for Mobile DevicesAsterism: A Decentralized File Sharing for Mobile Devices
Asterism: A Decentralized File Sharing for Mobile DevicesDavide Taibi
 
Prioritizing Corrective Maintenance Activities for Android Applications: An I...
Prioritizing Corrective Maintenance Activities for Android Applications: An I...Prioritizing Corrective Maintenance Activities for Android Applications: An I...
Prioritizing Corrective Maintenance Activities for Android Applications: An I...Davide Taibi
 
Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...
Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...
Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...Davide Taibi
 
EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...
EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...
EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...Davide Taibi
 
Uno studio sulle strategie di marketing e comunicazione per il software libero
Uno studio sulle strategie di marketing e comunicazione per il software liberoUno studio sulle strategie di marketing e comunicazione per il software libero
Uno studio sulle strategie di marketing e comunicazione per il software liberoDavide Taibi
 
Un’esempio concreto di interazione tra pubblica amministrazione e pmi
Un’esempio concreto di interazione tra pubblica amministrazione e pmiUn’esempio concreto di interazione tra pubblica amministrazione e pmi
Un’esempio concreto di interazione tra pubblica amministrazione e pmiDavide Taibi
 
OSS Marketing: How to make your product attractive
OSS Marketing: How to make your product attractiveOSS Marketing: How to make your product attractive
OSS Marketing: How to make your product attractiveDavide Taibi
 
20070619 javaday quali_p_so
20070619 javaday  quali_p_so20070619 javaday  quali_p_so
20070619 javaday quali_p_soDavide Taibi
 
Defining an Open Source Software Trustworthiness Model
Defining an Open Source Software Trustworthiness Model Defining an Open Source Software Trustworthiness Model
Defining an Open Source Software Trustworthiness Model Davide Taibi
 
Open Bqr an Open Framework for the assessment of Open Source Software
Open Bqr an Open Framework for the assessment of Open Source SoftwareOpen Bqr an Open Framework for the assessment of Open Source Software
Open Bqr an Open Framework for the assessment of Open Source SoftwareDavide Taibi
 
A GQM plan for the evaluation of the trustworthiness of open-source software
A GQM plan for the evaluation of the trustworthiness of open-source softwareA GQM plan for the evaluation of the trustworthiness of open-source software
A GQM plan for the evaluation of the trustworthiness of open-source softwareDavide Taibi
 

Mehr von Davide Taibi (18)

On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint
On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint
On the Relationship Between Coupling and Refactoring: An Empirical Viewpoint
 
From monolithic systems to microservices. a decomposition framework based on ...
From monolithic systems to microservices. a decomposition framework based on ...From monolithic systems to microservices. a decomposition framework based on ...
From monolithic systems to microservices. a decomposition framework based on ...
 
Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019
Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019 Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019
Serverless Anti-Patterns @Helsinki Serverless Days - 25.04.2019
 
Asterism: A Decentralized File Sharing for Mobile Devices
Asterism: A Decentralized File Sharing for Mobile DevicesAsterism: A Decentralized File Sharing for Mobile Devices
Asterism: A Decentralized File Sharing for Mobile Devices
 
Prioritizing Corrective Maintenance Activities for Android Applications: An I...
Prioritizing Corrective Maintenance Activities for Android Applications: An I...Prioritizing Corrective Maintenance Activities for Android Applications: An I...
Prioritizing Corrective Maintenance Activities for Android Applications: An I...
 
Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...
Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...
Ease2017 - Operationalizing the Experience Factory for Effort Estimation in A...
 
EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...
EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...
EASE2017 - Comparing Communication Effort within the Scrum, Scrum with Kanban...
 
Uno studio sulle strategie di marketing e comunicazione per il software libero
Uno studio sulle strategie di marketing e comunicazione per il software liberoUno studio sulle strategie di marketing e comunicazione per il software libero
Uno studio sulle strategie di marketing e comunicazione per il software libero
 
Un’esempio concreto di interazione tra pubblica amministrazione e pmi
Un’esempio concreto di interazione tra pubblica amministrazione e pmiUn’esempio concreto di interazione tra pubblica amministrazione e pmi
Un’esempio concreto di interazione tra pubblica amministrazione e pmi
 
OSS Marketing: How to make your product attractive
OSS Marketing: How to make your product attractiveOSS Marketing: How to make your product attractive
OSS Marketing: How to make your product attractive
 
20070619 javaday quali_p_so
20070619 javaday  quali_p_so20070619 javaday  quali_p_so
20070619 javaday quali_p_so
 
Defining an Open Source Software Trustworthiness Model
Defining an Open Source Software Trustworthiness Model Defining an Open Source Software Trustworthiness Model
Defining an Open Source Software Trustworthiness Model
 
Os Mi Devo Fidare
Os   Mi Devo FidareOs   Mi Devo Fidare
Os Mi Devo Fidare
 
Open Bqr an Open Framework for the assessment of Open Source Software
Open Bqr an Open Framework for the assessment of Open Source SoftwareOpen Bqr an Open Framework for the assessment of Open Source Software
Open Bqr an Open Framework for the assessment of Open Source Software
 
A GQM plan for the evaluation of the trustworthiness of open-source software
A GQM plan for the evaluation of the trustworthiness of open-source softwareA GQM plan for the evaluation of the trustworthiness of open-source software
A GQM plan for the evaluation of the trustworthiness of open-source software
 
Blogmeter
BlogmeterBlogmeter
Blogmeter
 
Open Bqr
Open BqrOpen Bqr
Open Bqr
 
Open Bqr
Open BqrOpen Bqr
Open Bqr
 

Kürzlich hochgeladen

SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 

Kürzlich hochgeladen (20)

SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 

Microservices Patterns, Issues, Migration Processes

  • 1. Microservice migration motivations, patterns and antipatterns Davide Taibi davide.taibi@tut.fi www.taibi.it Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 2. Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 3. Main Research Areas • Cloud and Web software Engineering • Microservices, Serverless • Migration Processes • Anti Patterns • Orchestration • Technical Debt Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 4. Software Architecture Evolution D.Taibi, V.Lenarduzzi, C.Pahl, A.Janes. Microservices Architectural Styles: Agile or not Agile? XP 2017 Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 5. Software Architecture Evolution D.Taibi, V.Lenarduzzi, C.Pahl, A.Janes. Microservices Architectural Styles: Agile or not Agile? XP 2017 Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 6. Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 7. Microservices Migration Processes Davide Taibi - Colloquium Series - SPLAB ZHAW Goal: Microservice Migration • Motivations and Expected Benefits • Processes • Issues 21 companies interviewed D. Taibi, Lenarduzzi, V. , and Pahl, C. , “Processes, Motivations and Issues for Migrating to Microservices Architectures: An Empirical Investigation”, IEEE Cloud Computing Journal, vol. 4, no. 5, 2017.
  • 8. Davide Taibi - Colloquium Series - SPLAB ZHAW Microservices - KölnMicroservices - Köln Migration Motivation
  • 9. Migration Process (1/2) Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 10. Migration Process (2/2) Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 11. Main Issues Identified Davide Taibi - Colloquium Series - SPLAB ZHAW Technical Issues • Decoupling from the monolithic system • Database migration and data splitting • Communication among services • Service orchestration complexity
  • 12. Main Issues Identified Davide Taibi - Colloquium Series - SPLAB ZHAW Effort-Related issues • Effort estimation and overhead • effort at least 20% higher • Effort required for the DevOps infrastructure • Effort required for library conversion
  • 13. Main Issues Identified Davide Taibi - Colloquium Series - SPLAB ZHAW Other issues • People’s minds • ROI achieved in longer time (or never) compared to monolithic systems
  • 14. Microservices Architectural Patterns Goal Classify the architectural Patterns proposed in the Literature D. Taibi, Lenarduzzi, V. , and Pahl, C. , “Architectural Patterns for Microservices: A Systematic Mapping Study”, in 8th International Conference on Cloud Computing and Services Science, CLOSER , 2018. Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 15. Paper Selection Searched for (microservice* OR micro-service*) AND (architect* OR migrat* OR modern* OR reengineer* OR re-engineer* OR refactor* OR re-factor* OR rearchitect* OR re-architect* OR evol*) Included non peer-reviewed contributions if their number of citations was higher than those of average peer-reviewed papers Summary 65% of these papers were published at conferences 23% were accepted at workshops only 7% of the papers were published as journal articles nearly 5% (2 papers) are non peer-reviewed websites Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 16. Paper Selection Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 17. Pattern Categories • Orchestration and Coordination • Deployment strategies • Data management / Data Storage Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 18. Shopping Cart Product Catalog Recommender System API Gateway Client- Specific APIs Protocol Translation Davide Taibi - Colloquium Series - SPLAB ZHAW API Gateway PatternOrchestration and Coordination
  • 19. Shop. Cart Instance 1 Service 1 REST API Registr y Client REST API Registr y Client REST API Registr y Client Shop. Cart Instance 2 Shop. Cart Instance 3 Service Registr y Register Registry -aware client Client-Side Discovery Pattern Davide Taibi - Colloquium Series - SPLAB ZHAW Orchestration and Coordination
  • 20. Shop. Cart Instance 1 Service 1 Load Balancer REST API Registry Client REST API Registr y Client REST API Registr y Client Shop. Cart Instance 2 Shop. Cart Instance 3 Service Registry Load Balance Register Query Request Server-Side Discovery Pattern Davide Taibi - Colloquium Series - SPLAB ZHAW Orchestration and Coordination
  • 21. Advantages and Disadvantages of the Identified Patterns Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 22. Classification of Advantages and Disadvantages of the Identified Patterns Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 23. Emerging Issues Comparison of SOA and Microservices. • differences not thoroughly investigated. • lack of comparisons (e.g., performance, development effort, maintenance). Microservices Explosion. • When qualities degrade? Negative Results. • In which contexts do microservices turn out to be counterproductive? Are there anti-patterns? Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 24. DevOps • DevOps pipeline is only partially covered by research work. • Only few papers propose specific techniques, and apply them to small example projects. • Release-specific techniques have not been investigated in our selected works. • No empirical validation have been carried out in the selected works. Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 25. Microservice Antipatterns and Bad Smells FOCUS: MICROSERVICES 56 IE E E S O F T WA R E | PU BLI S H E D BY T H E I E E E CO M PU T E R S O CI E T Y 074 0 -74 5 9/18 / $ 3 3.0 0 © 2 018 I E E E On the Definition of Microservice Bad Smells Davide Taibi and Valentina Lenarduzzi, Tampere University of Technology // To identify microservice-specific bad smells, researchers collected evidence of bad practices by interviewing developers experienced with microservice-based systems. They then classified the bad practices into 11 microservice bad smells frequently considered harmful by practitioners. // MICROSERVICES ARE CURRENTLY enjoying increasing popularity and diffusion in industrial environments, being adopted by several big players such as Amazon, LinkedIn, Netflix, and SoundCloud. Microservices are relatively small and autonomous ser- vices that work together, are mod- eled around a business capability, and have a single and clearly defined purpose.1,2 Microservices enable independent deployment, allowing small teams to work on separated and focused services by using the most suitable technologies for their job that can be deployed and scaled independently.1,2 Microservices are a newly developed architectural style. Several patterns and platforms such as nginx (www.nginx.org) and Kubernetes (kubernetes.io) exist on the market. During the migration process, practitioners often face com- mon problems, which are due mainly to their lack of knowledge regarding bad practices and patterns.3,4 In this article, we provide a cata- log of bad smells that are specific to systems developed using a micro- service architectural style, together with possible solutions to overcome these smells. To produce this catalog, we surveyed and interviewed 72 ex- perienced developers over the course of two years, focusing on bad prac- tices they found during the develop- ment of microservice-based systems and on how they overcame them. We identified a catalog of 11 microservice- specific bad smells by applying an open and selective coding5 proce- dure to derive the smell catalog from the practitioners’ answers. The goal of this work is to help practitioners avoid these bad prac- tices altogether or deal with them more efficiently when developing or migrating monoliths to microservice- based systems. As with code and architectural smells, which are patterns com- monly considered symptoms of bad design,1,6 we define microservice- specific bad smells (called “micro- service smells” hereafter) as indicators of situations—such as un- desired patterns, antipatterns, or bad practices—that negatively affect software quality attributes such as understandability, testability, extensi- bility, reusability, and maintainability of the system under development. Background Several generic architectural-smell detection tools and practices have been defined in the past years.7–9 Moreover, several microservice- specific architectural patterns have been defined.10 However, to the best of our knowledge, no peer-reviewed work and, in particular, no empirical studies have proposed bad practices, antipatterns, or smells specifically concerning microservices. However, some practitioners have started to discuss bad practices in microservices. In his ebook Micro- services AntiPatterns and Pitfalls, IEEE Software May/June 2018 Davide Taibi - Colloquium Series - SPLAB ZHAW D. Taibi and Lenarduzzi, V. , “On the Definition of Microservice Bad Smells”, IEEE Software , vol. 35, no. 3, 2018.
  • 26. Microservices Bad Smells Exploratory Survey (72 practitioners) [2] 11 Smells identified • Cyclic Dependencies • Problem of Microservices Explosion • More than 50 connected microservices become unmanageable Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 27. Davide Taibi - Colloquium Series - SPLAB ZHAW Microservice Bad Smells
  • 28. Microservice Bad Smells Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 29. Davide Taibi - Colloquium Series - SPLAB ZHAW Microservice Bad Smells
  • 30. Migration to Microservices and Technical Debt Davide Taibi - Colloquium Series - SPLAB ZHAW L. Valentina and Davide, T. , “Microservices, Continuous Architecture, and Technical Debt Interest: An Empirical Study”, in Euromicro/SEAA, Prague, 2018.
  • 31. Case Study - RQs RQ1: Is the TD of a monolithic system higher than the TD of the same system developed with a microservices architectural style? RQ2: Is the TD of a monolithic system growing with the same trend as a microservices-based system? Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 32. Case Study - Object One Italian Company Document Management System Java Deployed on Microsoft Azure Delivered as a web application +desktop application to support document uploading Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 33. Case Study - Object Monolithic system 280K lines of code >12 years old Expected Benefits -Ease maintenance -Separate each business process -Reduce the need for synchronization between the two development teams. Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 34. Case Study - Object 6 business process extracted into 6 MS Two of the six microservices were deeply re- architected after the first release MS1: MySQL replaced by MongoDB MS2: re-written from Java to in Python Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 35. Case Study – Results Davide Taibi - Colloquium Series - SPLAB ZHAW 0 2000 4000 6000 8000 10000 12000 14000 TechcnicalDebt Microservice1 Microservice2 Microservice4 Microservice3 Mar.2017 Jan.2018 April2017 May2017 June2017 July2017 Aug.2017 Sept.2017 Oct.2017 Nov.2017 Dec.2018
  • 36. Case Study Results: TD Trend Davide Taibi - Colloquium Series - SPLAB ZHAW TD Trend TD Trend Predicted TD without Migration No Migration Overall System TD Monolithic System Microservice Migration
  • 37. Case Study Results The TD of the monolithic system is lower than TD after the migration. TD tends to be more stable and to increase slower in each microservice compared to the whole system’s technical debt The Total TD grows faster compared to the TD growth before the migration. Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 38. Microservices Slicing with Process Mining Can we use process mining techniques to support slicing? Industrial Case Study with a SME • Legacy system developed in 2006 • Document Management System for tax accountants • > 1000 Classes Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 39. Idea Mining log files to identify business processes Identify potential MS candidate • Low coupling • High Cohesion Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 40. 5-steps process Davide Taibi - Colloquium Series - SPLAB ZHAW Step 1: Process Mining Step 2: Process Usage Ranking Step 3: Process-driven identification of decomposition solutions Step 4: Circular Dependencies, Cohesion, and Coupling Step 5: Identification of decomposition alternatives
  • 41. Log Files Example Davide Taibi - Colloquium Series - SPLAB ZHAW ID Start Timestamp Complete Timestamp Activity Class Method 1 02.01.2018 12:00:00:00 02.01.2018 12:00:00:36 Create Invoice MainInvoice createInvoice() 2 02.01.2018 12:00:01:00 02.01.2018 12:00:01:39 Validate Invoice ValidateInvoice validate() 3 02.01.2018 12:00:01:40 02.01.2018 12:00:01:45 Save Invoice MainInvoice save() 4 02.01.2018 12:00:01:45 02.01.2018 12:00:01:55 Save Invoice DB INVOICE 5 02.01.2018 12:00:01:56 02.01.2018 12:00:02:05 Save Invoice DB ACCOUNTANT
  • 42. Slicing Example Davide Taibi - Colloquium Series - SPLAB ZHAW InvoiceForm.submitButtonClick MainInvoice.createInvoice() ValidateInvoice.validate() MainInvoice.save() MainInvoice.sendToMinistry() SDI Webservice (Ministry of Finance Information System) INVOICE ACCOUNTANT CUSTOMER MainInvoice.updateStatus() AmazonGlacier.storePermanently() DBManager.read() InvoiceForm.getInvoiceDetails() MainInvoice.getInvoice() DBManager.save() DBManager WebApp MainInvoice Microservice 1 Microservice 2
  • 43. Microservices Adoption Framework • How to decide if migrate to Microservices or Not? • Which measure should be considered? • Literature: Limited comparison between MS and Monothic systems • Limited number of empirical studies on software qualities Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 44. MS Adoption Framework - Approach • Systematic Mapping Study • Metrics adopted in studies comparing MS and Monolithic systems • Survey (52 practitioners) • Which measures have you considered before migrating? • Which measures were useful? • Which measures should have been considered? • How useful are the metrics adopted in the mapping studies? Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 45. Preliminary Results (Mapping Study) Davide Taibi - Colloquium Series - SPLAB ZHAW Product related PerformanceAvailability Maintenance CHARACTERISTICS (RQ2) Meantimetorecover Downtime Meantimetofailure CPUutilization ResponseTime Pathlength Usageofcontainers Impactofprogramminglanguage #featurepermicroservice #requestsperminute Complexity Testability MEASURES (RQ3) Process related Cost Developmentindependencebetweenteams Continuousdelivery Reusability Personnel Infrastructure Developmentcost Costperhour Costpermillionofrequests Scalability Waitingtime
  • 46. Microservices and FaaS Practitioners started migrate to microsercvices and FaaS Mixed Approach (microsercvices + Functions) Open Issues • When and Why Extract a feature as Function or as Microservice? • Which pattern should be adopted Davide Taibi - Colloquium Series - SPLAB ZHAW
  • 47. Conclusion Microservices - Cagliari 11.07.2018Microservices - Köln 26/06/2017 Microservices - Köln 26/06/2017 Migration Motivation Migration Process (1/2) Microservices - Cagliari 11.07.2018 Microservices Architectural Patterns Goal Classify the architectural Patterns proposed in the Literature D. Taibi, Lenarduzzi, V. , and Pahl, C. , “Architectural Patterns for Microservices: A Systematic Mapping Study”, in 8th International Conference on Cloud Computing and Services Science, CLOSER , 2018. Microservices - Cagliari 11.07.2018 Microservices Bad Smells Exploratory Survey (72 practitioners) [2] 11 Architectural Smells identified • Cyclic Dependencies • Problem of Microservices Explosion • More than 50 connected microservices become unmanageable Microservices - Cagliari 11.07.2018 Microservices Technical Debt 8.9.201848 TD Trend TD Trend Predicted TD without Migration No Migration Overall System TD Monolithic System Microservice Migration Process Mining Slicing Microservice 1 Microservice 2 Microservice Adoption Framework Microservices and FaaS Practitioners started migrate to microsercvices and FaaS Mixed Approach (microsercvices + Functions) Open Issues • When and Why Extract a feature as Function or as Microservice? • Which pattern should be adopted
  • 48. References • D. Taibi, Lenarduzzi, V. , and Pahl, C. , “Processes, Motivations and Issues for Migrating to Microservices Architectures: An Empirical Investigation”, IEEE Cloud Computing Journal, vol. 4, no. 5, 2017. • D. Taibi, Lenarduzzi, V. , and Pahl, C. , “Architectural Patterns for Microservices: A Systematic Mapping Study”, in 8th International Conference on Cloud Computing and Services Science, CLOSER , 2018 • D. Taibi and Lenarduzzi, V. , “On the Definition of Microservice Bad Smells”, IEEE Software , vol. 35, no. 3, 2018 • P. Rosati, Fowley, F. , Pahl, C. , Taibi, D. , and Lynn, T. , “Making the Cloud work for Software Producers: linking Architecture, Operating Cost and Revenue”, in 8th International Conference on Cloud Computing and Services Science, 2018 • L. Valentina and Davide, T. , “Microservices, Continuous Architecture, and Technical Debt Interest: An Empirical Study”, in Euromicro/SEAA, Prague, 2018 Davide Taibi - Colloquium Series - SPLAB ZHAW