769 research outputs found

    Microservices: Granularity vs. Performance

    Full text link
    Microservice Architectures (MA) have the potential to increase the agility of software development. In an era where businesses require software applications to evolve to support software emerging requirements, particularly for Internet of Things (IoT) applications, we examine the issue of microservice granularity and explore its effect upon application latency. Two approaches to microservice deployment are simulated; the first with microservices in a single container, and the second with microservices partitioned across separate containers. We observed a neglibible increase in service latency for the multiple container deployment over a single container.Comment: 6 pages, conferenc

    Microservice Transition and its Granularity Problem: A Systematic Mapping Study

    Get PDF
    Microservices have gained wide recognition and acceptance in software industries as an emerging architectural style for autonomic, scalable, and more reliable computing. The transition to microservices has been highly motivated by the need for better alignment of technical design decisions with improving value potentials of architectures. Despite microservices' popularity, research still lacks disciplined understanding of transition and consensus on the principles and activities underlying "micro-ing" architectures. In this paper, we report on a systematic mapping study that consolidates various views, approaches and activities that commonly assist in the transition to microservices. The study aims to provide a better understanding of the transition; it also contributes a working definition of the transition and technical activities underlying it. We term the transition and technical activities leading to microservice architectures as microservitization. We then shed light on a fundamental problem of microservitization: microservice granularity and reasoning about its adaptation as first-class entities. This study reviews state-of-the-art and -practice related to reasoning about microservice granularity; it reviews modelling approaches, aspects considered, guidelines and processes used to reason about microservice granularity. This study identifies opportunities for future research and development related to reasoning about microservice granularity.Comment: 36 pages including references, 6 figures, and 3 table

    Data distribution and exploitation in a global microservice artefact observatory

    Get PDF
    ​© 2019 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.Cloud computing and specifically the microservice architecture pattern is becoming an increasingly prominent paradigm in computer science. Many modern cloud applications are composed of a variety of different microservices, each potentially built in different languages, using different technologies and a different software artefact structure. What is needed is the capability to monitor this rapidly expanding field and leverage the data to enable further research and development of microservice architectures. Drawing inspiration from the global observatories used in geoscience and astronomy, the aim of this research initiative is the establishment of a global observatory for microservice artefacts, allowing the aggregation of data from different hubs and the execution of dynamic analysis on them

    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

    Defining Metrics for the Identification of Microservices in Code Repositories

    Get PDF
    Microsserviços tornaram-se o estilo de arquitetura mais utilizado entre todas as estratégias de desenvolvimento de software disponíveis. No entanto, as pesquisas sobre esse tema estão no início, o que dificulta a localização de aplicações de microsserviços em escala para análise. Portanto, há uma grande necessidade de novas investigações, bem como ferramentas para apoiar novos desenvolvimentos no campo de microsserviços. O primeiro objetivo deste trabalho é coletar características de microsserviços encontradas na literatura e traduzi-las em características mensuráveis no código. Com isso, fornecemos um conjunto abrangente de características, bem como métricas para identificá-las no código. Um segundo objetivo é usar essas métricas para identificar a base do código seguindo um estilo de arquitetura de microsserviço. Essa solução é disponibilizada por meio de uma ferramenta que permite aos usuários encontrar microsserviços em escalas e filtrá-los de acordo com suas necessidades. Isso pode ser usado para encontrar exemplos de microsserviços em uma linguagem de programação específica ou para criar corpora para estudos de pesquisa. Nossa avaliação mostra que nosso algoritmo pode identificar microsserviços com uma precisão de 85%.Microservices have become the most used architectural style among all available software development strategies. However, it is difficult to find microservice applications at scale for analysis. Therefore, there is a great need for new investigations as well as tools to support new developments in the field of microservices. The first goal of this work is to collect microservices characteristics found in the literature and translate them into measurable features in the code. With this, we provide a comprehensive set of characteristics as well as metrics to identify them in the code. A second goal is to design an algorithm to use such metrics to identify code basis following a microservice architectural style. This solution is made available through a tool that allows users to find microservices at scales and filter them according to their needs. This can be used to find examples of microservices in a specific programming language or to create corpora for research studies. Our evaluation shows our algorithm can identify microservices with a precision of 85%

    A Network Science-Based Approach for an Optimal Microservice Governance

    Get PDF
    With the introduction of microservice architecture for the development of software applications a new breed of tools platforms and development technologies emerged that enabled developers and system administrators to monitor orchestrate and deploy their containerized microservice applications more effectively and efficiently Among these vast arrays of technologies Kubernetes has become one such prominent technology widely popular due to its ability to deploy and orchestrate containerized microservices Nevertheless a common issue faced in such orchestration technologies is the employment of vast arrays of disjoint monitoring solutions that fail to portray a holistic perspective on the state of microservice deployments which in turn inhibit the creation of more optimized deployment policies In response to this issue this publication proposes the use of a network science-based approach to the creation of a microservice governance model that incorporates the use of dependency analysis load prediction centrality analysis and resilience evaluation to effectively construct a more holistic perspective on a given microservice deployment Furthermore through analysis of the factors mentioned above the research conducted then proceeds to create an optimized deployment strategy for the deployment with the aid of a developed optimization algorithm Analysis of results revealed the developed governance model aided through the utilization of the developed optimization algorithm proposed in this publication proved to be quite effective in the generation of optimized microservice deployment policie

    Enabling Community Health Care with Microservices

    Get PDF
    Microservice architectures (MA) are composed of loosely coupled, course-grained services that emphasise resilience and autonomy, enabling more scalable applications to be developed. Such architectures are more tolerant of changing demands from users and enterprises, in response to emerging technologies and their associated influences upon human interaction and behaviour. This article looks at microservices in the Internet of Things (IoT) through the lens of agency, and using an example in the community health care domain explores how a complex application scenario (both in terms of software and hardware interactions) might be modelled

    Rethinking the Delivery Architecture of Data-Intensive Visualization

    Get PDF
    The web has transformed the way people create and consume information. However, data-intensive science applications have rarely been able to take full benefits of the web ecosystem so far. Analysis and visualization have remained close to large datasets on large servers and desktops, because of the vast resources that data-intensive applications require. This hampers the accessibility and on-demand availability of data-intensive science. In this work, I propose a novel architecture for the delivery of interactive, data-intensive visualization to the web ecosystem. The proposed architecture, codenamed Fabric, follows the idea of keeping the server-side oblivious of application logic as a set of scalable microservices that 1) manage data and 2) compute data products. Disconnected from application logic, the services allow interactive data-intensive visualization be simultaneously accessible to many users. Meanwhile, the client-side of this architecture perceives visualization applications as an interaction-in image-out black box with the sole responsibility of keeping track of application state and mapping interactions into well-defined and structured visualization requests. Fabric essentially provides a separation of concern that decouples the otherwise tightly coupled client and server seen in traditional data applications. Initial results show that as a result of this, Fabric enables high scalability of audience, scientific reproducibility, and improves control and protection of data products
    corecore