2nd of May 2018. My presentation done at the 16th International Conference on Software Architecture (ICSA), Seattle, USA.
Microservices are gaining tremendous traction in industry and a growing scientific interest in academia. More and more companies are adopting this architectural style for modernizing their products and taking advantage of its promised benefits (e.g., agility, scalability). Unfortunately, the process of moving towards a microservice-based architecture is anything but easy, as there are plenty of challenges to address from both technical and organizational perspectives.
In this paper we report about an empirical study on migration practices towards the adoption of microservices in industry. Specifically, we designed and conducted a survey targeting practitioners involved in the process of migrating their applications and we collected information (by means of interviews and questionnaires) on (i) the performed activities, and (ii) the challenges faced during the migration. Our findings benefit both (i) researchers by highlighting future directions for industryrelevant problems and (ii) practitioners by providing a reference framework for their (future) migrations towards microservices.
Accompanying paper: http://www.ivanomalavolta.com/files/papers/ICSA_2018.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Migrating towards Microservice Architectures: an Industrial Survey
1. Migrating towards Microservice Architectures:
an Industrial Survey
*paolo.difrancesco@gssi.it
‡{p.lago, i.malavolta}@vu.nl
Paolo Di Francesco*, Patricia Lago‡, Ivano Malavolta‡
2. 2Di Francesco, Lago, Malavolta
Paolo Di Francesco
Microservice architectures
MSA is an architectural style inspired by service-oriented computing
• Small services
• Running in own process
• Lightweight communication
Introduction
3. 3Di Francesco, Lago, Malavolta
Paolo Di Francesco
Adopting Microservices
Problem: Over time legacy systems grow and
become complex
• Hard to maintain, high coupling, …
• Long time to release feature, low
developers’ productivity, …
What if we consider migrating to MSA?
• Where to begin?
• What do we need?
• What are the challenges?
• What the management will say?
• ….
Introduction
Microservices
• Scalability
• Agility
• Maintainability
• Independent
releases
http://www.brsolutions.com/addressing-business-complexity/
4. 4Di Francesco, Lago, Malavolta
Paolo Di Francesco
Industrial Survey
Goal: Characterize the activities and the challenges faced by
industrial practitioners when migrating towards MSA
Introduction
5
13
#Responses
Interviews
Questionnaires
18
5. 5Di Francesco, Lago, Malavolta
Paolo Di Francesco
Migrating to Microservices
We framed the migration process in the Horseshoe Model1
Introduction
ReverseEngineering
ForwardEngineering
Architecture Transformation
1 R. Kazman et al. Requirements for integrating software architecture and reengineering models: CORUM II
Pre-existing
System
Microservice
Architecture
Pre-existing
Architecture
New
System
6. 6Di Francesco, Lago, Malavolta
Paolo Di Francesco
Demographic
• Roles: architects, CTOs, developers, DevOps engineer, industrial
researcher, VP engineer
• Monoliths: 17
• Web-based: 13
Results
Min Max Avg
Experience 5 33 15
Microservices 5 250 59
Duration 9 60 28
Teams* 1 20 6.7
Teams** 1 30 8
People per team* 4 20 8.3
People per team** 2 12 6.5
* Before the migration
** After the migration
7. 7Di Francesco, Lago, Malavolta
Paolo Di Francesco
Migration Activities
Migration starts with
• New functionalities as MS (10/18)
• Existing functionalities as MS (9/18)
Microservice adoption
• Phased adoption (14/18)
Finding:
• Migration process
• Organized in small increments
• May not have a defined-upfront end-point
Results
“There is no
reengineering project
or something that is as
a single goal of
rebuilding the system,
we are doing that as
part of our daily work.”
8. 8Di Francesco, Lago, Malavolta
Paolo Di Francesco
Migration Activities
New features are added during the migration
(17/18)
Finding:
• Agility is a relevant aspect when migrating
towards MSA
Results
“It was like an upgrade
of the system, not only
a migration. [..] We
ended up with an
architecture that had
better similarities to the
actual business.”
9. 9Di Francesco, Lago, Malavolta
Paolo Di Francesco
Migration Activities
Pre-existing data is mostly kept ‘as is’ (11/18)
Finding:
• Data is not being migrated
• May hinder
• Scalability
• Isolation
Results
Hide Implementation Details
Data Decentralization
https://www.martinfowler.com/articles/microservices.html#DecentralizedDataManagement
10. 10Di Francesco, Lago, Malavolta
Paolo Di Francesco
Migration Activities
Challenges in architecture transformation
• High coupling (9/18)
• Services boundaries identification (7/18)
• System decomposition (6/18)
Results
Architecture recovery
tools?
11. 11Di Francesco, Lago, Malavolta
Paolo Di Francesco
Action Points
Practitioners
1. Share your success stories
• To kickstart a MSA
• To reuse solutions
2. Check business-IT alignment
3. Monitor the development effort and migrate when it grows too
much
Researchers
1. Address how to migrate pre-existing data to microservices
Action Points
12. 12Di Francesco, Lago, Malavolta
Paolo Di Francesco
Conclusions
http://www.s2group.cs.vu.nl/icsa-2018-replication-package
Conclusions