Promises and Challenges of Microservices: An Exploratory Study
Fri 27 Aug 2021 23:20 - 23:30 - Human Aspects—Software Practices 2 Chair(s): Kostadin Damevski
Microservice-based architecture is a SOA-inspired principle of building complex systems as a composition of small, loosely coupled components that communicate with each other using language-agnostic APIs. This architectural principle is now becoming increasingly popular in industry due to its advantages, such as greater software development agility and improved scalability of deployed applications.
Existing literature mainly focuses on practices and challenges of the initial microservice build. Yet, not much information is available about the pitfalls and support organizations need in the long run. To fill this gap, we performed a broad and mixed-method study with practitioners developing microservice-based applications for commercial use for at least two years. The study includes in-depth interviews with 21 practitioners and a follow-up online survey with 37 respondents, covering 37 companies in total. By explicitly excluding ‘‘newcomers’’ and focusing the study on ‘‘mature’’ teams our goal was to collect best practices, challenges, and some existing solutions for these challenges employed by practitioners successfully developing microservice-based applications for commercial use.
Our results show that following the ‘‘standard’’ advice of splitting microservices based on business capabilities and using the most appropriate programming language for each microservice is not always fruitful. While our study practitioners started with such an approach, they later had to redefine and merge microservices, e.g., because the resulting product consumed an unacceptable amount of computing resources, and also restrict the number of languages that they use, e.g., because the end product was difficult to maintain.
Our study participants also learned that an early investment in a robust infrastructure to support automated setup and management, extensive logging and monitoring, tracing, and more, is one of the main factors contributing to the success of their development processes. Several practitioners indicated that while in practice they delayed setting up a solid infrastructure, they regretted such decisions in the future. They found that having a well-defined owner for each microservice is essential for the success of their development process, as this owner is the one to ensure the architectural integrity of the microservice, be the first to efficiently troubleshoot it, etc.
Our study also identified several common challenges related to managing code of microservices, where no explicit guidelines are available as part of the microservices ‘‘cookbooks’’. These include decisions on how to deal with code shared by several microservices, e.g., for authentication and logging, how to manage products consisting of multiple customer offerings, and more. Even though solutions to these challenges might exist in the software engineering field in general, they are still to be studied and adapted in the particular context of microservices. Our study lists different possible solutions applied by the studied companies and discusses the trade-offs related to each solution.
We believe that the results of our study can inform researchers and inspire novel solutions to some of the identified challenges. It can also benefit practitioners who are interested to learn from each other, borrow successful ideas, and avoid common mistakes.
Fri 27 AugDisplayed time zone: Athens change
11:00 - 12:00 | Human Aspects—Software Practices 2Research Papers / Journal First +12h Chair(s): Ingrid Nunes Universidade Federal do Rio Grande do Sul (UFRGS), Brazil, Ivica Crnkovic Chalmers University of Technology | ||
11:00 10mPaper | How Disabled Tests Manifest in Test Maintainability Challenges? Research Papers Dong Jae Kim Concordia University, Bo Yang Concordia University, Jinqiu Yang Concordia University, Tse-Hsun (Peter) Chen Concordia University DOI Pre-print | ||
11:10 10mPaper | Formal methods in dependable systems engineering: a survey of professionals from Europe and North America Journal First | ||
11:20 10mPaper | Promises and Challenges of Microservices: An Exploratory Study Journal First Yingying Wang University of British Columbia, Harshavardhan Kadiyala The University of British Columbia, Julia Rubin University of British Columbia | ||
11:30 30mLive Q&A | Q&A (Human Aspects—Software Practices 2) Research Papers |
23:00 - 00:00 | Human Aspects—Software Practices 2Journal First / Research Papers Chair(s): Kostadin Damevski Virginia Commonwealth University | ||
23:00 10mPaper | How Disabled Tests Manifest in Test Maintainability Challenges? Research Papers Dong Jae Kim Concordia University, Bo Yang Concordia University, Jinqiu Yang Concordia University, Tse-Hsun (Peter) Chen Concordia University DOI Pre-print | ||
23:10 10mPaper | Formal methods in dependable systems engineering: a survey of professionals from Europe and North America Journal First | ||
23:20 10mPaper | Promises and Challenges of Microservices: An Exploratory Study Journal First Yingying Wang University of British Columbia, Harshavardhan Kadiyala The University of British Columbia, Julia Rubin University of British Columbia | ||
23:30 30mLive Q&A | Q&A (Human Aspects—Software Practices 2) Research Papers |