27 research outputs found

    Size Matters: Microservices Research and Applications

    Full text link
    In this chapter we offer an overview of microservices providing the introductory information that a reader should know before continuing reading this book. We introduce the idea of microservices and we discuss some of the current research challenges and real-life software applications where the microservice paradigm play a key role. We have identified a set of areas where both researcher and developer can propose new ideas and technical solutions.Comment: arXiv admin note: text overlap with arXiv:1706.0735

    Проєктування рівня маршрутизації в мікросервісних архітектурах на платформі Spring

    Get PDF
    Предметом дослідження є маршрутизація запитів у мікросервісній архітектурі. Мета статті – розроблення цілісної концепції проєктування рівня маршрутизації запитів у мікросервісній архітектурі на прикладі стеку технологій Spring. Завдання: проаналізувати сучасні підходи щодо структури мікросервісної архітектури; визначити сутність маршрутизації та встановити процеси, що забезпечують маршрутизацію запитів; визначити стек технологій Spring, які реалізують маршрутизацію; спроєктувати рівень маршрутизації застосунку на платформі Spring. Упроваджуються такі методи: аналіз і синтез для вивчення технологій взаємодії між службами; абстрагування та узагальнення для визначення структури мікросервісної архітектури, рівня маршрутизації, узагальнення технологій, що забезпечують взаємодію між сервісами; моделювання з метою побудови моделі мікросервісної архітектури з виокремленням рівня маршрутизації та зв’язків  з іншими структурами моделі. Здобуто такі результати: досліджено структуру мікросервісної архітектури, зокрема рівень маршрутизації; визначено роль шаблонів проєктування, що забезпечують маршрутизацію: Service discovery, API Gateway, Load Balancer тощо; проаналізовано види  міжпроцесної взаємодії (синхронна, асинхронна, гібридна) та визначено переваги й доцільність застосування; розглянуто моделі відмовостійкості системи; визначено стек технологій на платформі Spring для реалізації рівня маршрутизації; розроблено модель проєкту багаторівневої мікросервісної архітектури із застосуванням стеку технологій Spring, що реалізує найбільш ефективні рішення в контексті маршрутизації запитів. Висновки: мікросервісну архітектуру доцільно розглядати як багаторівневу структуру, що будується на функціональних рівнях і зв’язках між ними; рівнем маршрутизації мікросервісів  потрібно вважати всі процеси, пов’язані з налагодженням міжпроцесної взаємодії, виявленням сервісів, балансуванням навантаження та забезпеченням відмовостійкості, створенням єдиної точки входу; Spring є популярною платформою розроблення мікросервісної  архітектури, що надає необхідні інструменти для реалізації маршрутизації запитів; розроблена модель проєкту є прикладом ефективних рішень щодо проєктування багаторівневої архітектури із застосуванням стеку технологій Spring  у контексті маршрутизації запитів.The subject matter of research is the routing of requests in the microservice architecture. The goal of the article is to develop a target design concept for the level of request routing in the microservice architecture using the Spring technology stack as an example. Tasks: to analyse modern approaches to the structure of microservice architecture; programming of the routing entity and establishment of processes that ensure the routing of requests; programming stacks of Spring technologies that implement routing; design the routing layer of the application on the Spring platform. The following methods are used: analysis and synthesis to study technologies of interaction between services; abstraction and generalization to determine the structure of the microservice architecture, routing level, generalization of technologies that ensure interaction between services; modelling for the purpose of building a model of microservice architecture, highlighting the level of routing and connections with other structural models. The following results were obtained: the structure of the microservice architecture was investigated, in particular the level of routing; the role of design patterns that provide routing is defined: Service discovery, API Gateway, Load Balancer, etc.; the types of interprocess interaction (synchronous, asynchronous, hybrid) were analysed and the advantages and expediency of the application were determined; models of system fault tolerance are presented; a stack of technologies on the Spring platform is defined for the implementation of the routing layer; a model of a multi-level microservice architecture project was developed using the Spring technology stack, which implements the most effective solutions in the context of request routing. Conclusions: it is advisable to consider microservice architecture as a multi-level structure built on functional levels and connections between them; the level of microservices routing should include all processes related to the establishment of interprocess interaction, service detection, load balancing and fault tolerance, and the creation of a single entry point; Spring is a popular microservice architecture development tool platform that provides requirements for implementing request routing; the developed project model is an example of effective solutions for designing a multi-level architecture using the Spring technology stack in the context of request routing

    From Monolithic Systems to Microservices: An Assessment Framework

    Get PDF
    Context. Re-architecting monolithic systems with Microservices-based architecture is a common trend. Various companies are migrating to Microservices for different reasons. However, making such an important decision like re-architecting an entire system must be based on real facts and not only on gut feelings. Objective. The goal of this work is to propose an evidence-based decision support framework for companies that need to migrate to Microservices, based on the analysis of a set of characteristics and metrics they should collect before re-architecting their monolithic system. Method. We designed this study with a mixed-methods approach combining a Systematic Mapping Study with a survey done in the form of interviews with professionals to derive the assessment framework based on Grounded Theory. Results. We identified a set consisting of information and metrics that companies can use to decide whether to migrate to Microservices or not. The proposed assessment framework, based on the aforementioned metrics, could be useful for companies if they need to migrate to Microservices and do not want to run the risk of failing to consider some important information

    How do Microservices Evolve?:An Empirical Analysis of Changes in Open-Source Microservice Repositories

    Get PDF
    Context.Microservice architectures are an emergent service-oriented paradigm widely used in industry to develop and deploy scalable software systems. The underlying idea is to design highly independent services that implement small units of functionality and can interact with each other through lightweight interfaces.Objective.Even though microservices are often used with success, their design and maintenance pose novel challenges to software engineers. In particular, it is questionable whether the intended independence of microservices can actually be achieved in practice.Method.So, it is important to understand how and why microservices evolve during a system’s life-cycle, for instance, to scope refactorings and improvements of a system’s architecture or to develop supporting tools. To provide insights into how microservices evolve, we report a large-scale empirical study on the (co-)evolution of microservices in 11 open-source systems, involving quantitative and qualitative analyses of 7,319 commits.Findings.Our quantitative results show that there are recurring patterns of (co-)evolution across all systems, for instance, “shotgun surgery” commits and microservices that are largely independent, evolve in tuples, or are evolved in almost all changes. We refine our results by analyzing service-evolving commits qualitatively to explore the (in-)dependence of microservices and the causes for their specific evolution.Conclusion.The contributions in this article provide an understanding for practitioners and researchers on how microservices evolve in what way, and how microservice-based systems may be improved

    SAT-Based Extraction of Behavioural Models for Java Libraries with Collections

    Get PDF
    Behavioural models are a valuable tool for software verification, testing, monitoring, publishing etc. However, they are rarely provided by the software developers and have to be extracted either from the source or from the compiled code. In the context of Java programs, a number of approaches exist for building behavioural models. Most of these approaches rely on the analysis of the compiled bytecode. Instead, we are looking to extract behavioural models-in the form of Finite State Machines (FSMs)-from the Java source code to ensure that the obtained FSMs can be easily understood by the software developers and, if necessary, updated or integrated into the original source code, e.g. in the form of annotations. Modern software systems are huge, rely on external libraries and interact with their environment. Hence, extracting useful behavioural models requires abstraction. In this paper, we present an initial approach to this problem by focusing on the extraction of FSMs modelling library APIs. We focus on the analysis of Java code involving the use of collections. To this end, we encode the operational semantics of collection operations using patterns of Boolean predicates. These patterns are instantiated based on the analysis of the source code of API implementation methods to form an encoding of the possible FSM transitions. A SAT solver is then used to determine the enabledness conditions (guards) of these transitions

    Technological governance: Opportunities for systemic design

    Get PDF
    Historically, systemic design (SD) has drawn on methodological aspects of system thinking. However, this is challenged by technology—which is simultaneously today’s milieu and methodology. Given this, we need a new composite of foundations and practices before SD can provide effective technological or design governance. I also discuss a modern update to boundary framing and microservices as a bridge to enriched practice alongside key movements like Penrosean rents and Wintelism
    corecore