•We first present our approach to systematically analyse grey literature on microservices.•We identify, analyse and compare the technical/operational pains of microservices.•We identify, analyse and ...compare the technical/operational gains of microservices.•We conclude by discussing the research directions stemming out from our analysis.
The design, development, and operation of microservices are picking up more and more momentum in the IT industry. At the same time, academic work on the topic is at an early stage, and still on the way to distilling the actual “Pains & Gains” of microservices as an architectural style. Having witnessed this gap, we set forth to systematically analyze the industrial grey literature on microservices, to identify the technical/operational pains and gains of the microservice-based architectural style. We conclude by discussing research directions stemming out from our analysis.
Microservices architecture has gained significant traction, in part owing to its potential to deliver scalable, robust, agile, and failure-resilient software products. Consequently, many companies ...that use large and complex software systems are actively looking for automated solutions to decompose their monolith applications into microservices. This paper rigorously examines 35 research papers selected from well-known databases using a Systematic Literature Review (SLR) protocol and snowballing method, extracting data to answer the research questions, and presents the following four contributions. First, the Monolith to Microservices Decomposition Framework (M2MDF) which identifies the major phases and key elements of decomposition. Second, a detailed analysis of existing decomposition approaches, tools and methods. Third, we identify the metrics and datasets used to evaluate and validate monolith to microservice decomposition processes. Fourth, we propose areas for future research. Overall, the findings suggest that monolith decomposition into microservices remains at an early stage and there is an absence of methods for combining static, dynamic, and evolutionary data. Insufficient tool support is also in evidence. Furthermore, standardised metrics, datasets, and baselines have yet to be established. These findings can assist practitioners seeking to understand the various dimensions of monolith decomposition and the community's current capabilities in that endeavour. The findings are also of value to researchers looking to identify areas to further extend research in the monolith decomposition space.
Microservices architecture has become enormously popular because traditional monolithic architectures no longer meet the needs of scalability and rapid development cycle, and the success of some ...large companies in building and deploying services is a strong motivation for others to consider making the change. However, performing the migration process is not trivial. Most systems acquire too many dependencies between their modules, and thus can't be sensibly broken apart. It is for this reason that studies that provide information associated with the migration process to practitioners are necessary. This study gathers, organizes and analyzes 20 migration techniques proposed in the literature. Results show that most proposals use approaches based on design elements as input; 90% of the proposals were applied to object-oriented software (Java being the predominant programming language); And that the main challenge is to perform the database migration.
Modernizing monolithic systems through microservices architectures (MSAs) promises significant benefits in terms of scalability, agility, and cloud adoption. However, this transition hinges on ...accurate and efficient microservices identification, a complex area of research still in its evolution. This systematic literature review delves into this challenge by exploring three critical questions: First, we examine how the field of microservices identification has evolved over time, analyzing publication trends, categorizing existing research, and mapping out different research objectives and methodologies employed. Second, we dive into the current state-of-the-art, showcasing cutting-edge methodologies and tools developed to address microservices identification challenges. We highlight promising approaches while identifying potential limitations. Third, we unveil both existing hurdles and future challenges in this domain, painting a comprehensive picture of the obstacles and opportunities that lie ahead. Our findings illuminate key areas demanding further attention, including the need for more automated and accurate identification tools, standardized evaluation benchmarks, and a deeper understanding of the human factors involved in successful transitions. By addressing these critical gaps, we aim to pave the way for smoother and more effective modernization of monolithic systems through microservices adoption.
The development of microservice systems is complex due to the impact consistency problems have on the business logic design. On the other hand, the implementation of a microservice requires extensive ...use of middleware technology, which delays the test and identification of the cases where consistency problems can occur. We introduce the Microservices Simulator object-oriented framework that supports the rapid prototyping of a microservice system designed according to the Transactional Causal Consistency model.
Microservices have allowed the decomposition of large monoliths and introduced the simple responsibility principle into its essence. It allowed complex systems to be more cost efficient and easily ...scalable. With this new architecture, new vulnerabilities were introduced, such as the large surface that started to get exposed to the internet. Instead of having one monolithic surface exposed, we started to have several small services exposed. New patterns were introduced to try to diminish these threats and among them the “API Gateway” pattern was introduced. The purpose of this article is to further explore the API Gateway pattern, and to further enhance the microservices communication security as part of that pattern. This research proposes a hybrid approach, using HTTPS and JWT only when strictly necessary, towards overcoming those recognized limitations of security and performance.
Furthermore, proof of concept on top of NB-IoT communication protocol was developed. It intends to explore the transmission of a large quantity of low-frequency data from devices to the cloud, while the communication maintains effective and with low latency. The created supporting microservices API followed the proposed architecture and was tested against security attacks towards mitigating its impacts.
Describing the architecture of microservices systems allows for the illustration of various aspects of design and implementation with information tailored to different stakeholders. On the one hand, ...the microservices architecture provides flexibility, scalability, faster deployment times, and the potential to design solutions incorporating multiple technologies. An architecture-centered, scenario-driven, iterative development method, on the other hand, is used to explain the system from the perspective of many stakeholders, such as project managers, system architects, developers, and end users. To complement this point of view, this paper proposes an architectural view model that highlights numerous viewpoints and disciplines in microservices-based software development. Such methods are typically well suited for developing and implementing microservices-based software processes to satisfy stakeholders' demands and expectations.
Software architecture is undergoing a transition from monolithic architectures to microservices to achieve resilience, agility and scalability in software development. However, with microservices it ...is difficult to diagnose performance issues due to technology heterogeneity, large number of microservices, and frequent updates to both software features and infrastructure. This paper presents MicroRCA, a system to locate root causes of performance issues in microservices. MicroRCA infers root causes in real time by correlating application performance symptoms with corresponding system resource utilization, with-out any application instrumentation. The root cause localization is based on an attributed graph that model anomaly propagation across services and machines. Our experimental evaluation where common anomalies are injected to a microservice benchmark running in a Kubernetes cluster shows that MicroRCA locates root causes well, with 89% precision and 97% mean average precision, outperforming several state-of-the-art methods.
A self-adaptive system can dynamically monitor and adapt its behavior to preserve and enhance its quality attributes under uncertain operating conditions. This article identifies key challenges for ...the development of microservice applications as self-adaptive systems, using a cloud-based intelligent video-surveillance application as a motivating example. It also suggests potential new directions for addressing most of the identified challenges by leveraging existing microservice practices and technologies.
Deep learning-based disease diagnosis applications are essential for accurate diagnosis at various disease stages. However, using personal data exposes traditional centralized learning systems to ...privacy concerns. On the other hand, by positioning processing resources closer to the device and enabling more effective data analyses, a distributed computing paradigm has the potential to revolutionize disease diagnosis. Scalable architectures for data analytics are also crucial in healthcare, where data analytics results must have low latency and high dependability and reliability. This study proposes a microservices-based approach for IoT data analytics systems to satisfy privacy and performance requirements by arranging entities into fine-grained, loosely connected, and reusable collections. Our approach relies on federated learning, which can increase disease diagnosis accuracy while protecting data privacy. Additionally, we employ transfer learning to obtain more efficient models. Using more than 5800 chest X-ray images for pneumonia detection from a publically available dataset, we ran experiments to assess the effectiveness of our approach. Our experiments reveal that our approach performs better in identifying pneumonia than other cutting-edge technologies, demonstrating our approach's promising potential detection performance.