Processes, Motivations, and Issues for Migrating to Microservices Architectures: An Empirical Investigation
Status:: 🟩
Links:: 30_Knowledge/Microservices
Metadata
Authors:: Taibi, Davide; Lenarduzzi, Valentina; Pahl, Claus
Title:: Processes, Motivations, and Issues for Migrating to Microservices Architectures: An Empirical Investigation
Publication Title:: "IEEE Cloud Computing"
Date:: 2017
URL:: http://ieeexplore.ieee.org/document/8125558/
DOI:: 10.1109/MCC.2017.4250931
Bibliography
Taibi, D., Lenarduzzi, V., & Pahl, C. (2017). Processes, Motivations, and Issues for Migrating to Microservices Architectures: An Empirical Investigation. IEEE Cloud Computing, 4(5), 22–32. https://doi.org/10.1109/MCC.2017.4250931
Zotero
Type:: #zotero/journalArticle
Zotero::
Keywords:: [Microservices]
Relations
Abstract
In this paper, we identify a process framework based on the comparison of three different migration processes adopted by the interviewed practitioners, together with the common motivations and issues that commonly take place during migrations. In this work, we describe the results and provide an analysis of our survey, which includes a comparison of the migration processes, a ranking of motivations, and issues and some insights into the benefits achieved after the adoption. Maintainability and scalability were consistently ranked as the most important motivations, along with a few other technical and nontechnical motivations. Although return on investment was expected to take longer, the reduced maintenance effort in the long run was considered to highly compensate for this.
Notes & Annotations
📑 Annotations (imported on 2023-06-02#11:38:47)
"The term 'microservice' has been widely used since March 2012 to refer to applications developed as a set of relatively small, consistent, isolated, and autonomous services deployed independently, with a single and clearly defined purpose."
As for the motivations driving the adoption of microservices-based architectures, software maintenance was always reported and rated as very important by all the participants. Scalability, delegation of responsibilities to independent teams, and the easy support for DevOps also frequently drive adoption, while other motivations were only reported by migration consultants.
Maintainability. The modular architecture of microservices allows reducing the complexity of monolithic systems. Breaking a system into independent and self-deployable services enables developer teams to make changes and test their service independent of other developers, which simplifies distributed development.
Scalability. Scaling microservices is easier than scaling monoliths. Scaling monolithic systems requires huge investment in terms of hardware and often fine-tuning of the code. If there is a bottleneck in some component, a more powerful piece of hardware can be used, or multiple instances of the same monolithic application can be executed across several services and managed by a load balancer.
However, in a microservices-based system, each microservice can be deployed on a different server, with different levels of performance, and can be written in the most appropriate development language.
Delegation of Team Responsibilities. Since microservices do not have external dependencies, they can be developed by different teams independently, reducing communication overhead and the need for coordination among teams.
Because Everybody Does It. Microservices are cool, and a lot of large companies are adopting them.
DevOps Support. The adoption of a DevOps toolchain is supported by microservices. Since each service can be developed and deployed independently, each team can easily develop, test, and deploy their services independent of other teams.
The main issues reported are the complexity to decouple from the monolithic system, followed by migration and splitting of data in legacy databases and communication among services.
As reported in Table 3, improved maintenance was confirmed as the most important benefit. Practitioners reported that in the beginning they were aware that such a complex architecture might have a negative impact on software maintenance, but in the long run (at least one year, based on participant answers), they discovered that the architecture is less complex to understand and the system requires less maintenance.
Table description: The migration benefits identified in the survey
All the participants confirmed that the development of a microservices-based system has initial costs that are higher than those for developing a traditional system, with 24% reporting increased costs ranging from zero to 10% and the remaining 76% reporting an effort overhead between 20% and 30%.
All the participants also agreed that the higher cost overhead is highly compensated by the reduction of maintenance effort in the long run.
📑 Annotations (imported on 2023-06-02#11:40:32)
The reasons for migrating to microservices are manifold. Several participants migrated to microservices simply because it was the only feasible solution for reducing the growing complexity of their systems. Therefore, maintainability as a consequence of the properties of some microservices is the key driver for migration, whereas the increased initial cost turned out to be one of the main issues hindering adoption, even if such costs were highly compensated after the adoption because of the long-term return on investment.