Microservice Architecture Practices and Experience: a Focused Look on Docker Configuration Files

12/06/2022
by   Luciano Baresi, et al.
0

Cloud applications are more and more microservice-oriented, but a concrete charting of the microservices architecture landscape – namely, the space of technical options available for microservice software architects in their decision-making – is still very much lacking, thereby limiting the ability of software architects to properly evaluate their architectural decisions with sound experiential devices and/or practical design principles. On the one hand, Microservices are fine-grained, loosely coupled services that communicate through lightweight protocols. On the other hand, each microservice can use a different software stack, be deployed and scaled independently or even executed in different containers, which provide isolation and a wide-range of configuration options but also offer unforeseeable architectural interactions and under-explored architecture smells, with such experience captured mainly in software repositories where such solutions are cycled. This paper adopts a mining software repositories (MSR) approach to capture the practice within the microservice architecture landscape, by eliciting and analysing Docker configuration files, being Docker the leading technical device to design for, and implement modern microservices. Our analysis of Docker-based microservices gives an interesting summary of the current state of microservices practice and experience. Conversely, observing that all our datapoints have their own shape and characteristics, we conclude that further comparative assessment with industrial systems is needed to better address the recurring positive principles and patterns around microservices.

READ FULL TEXT

page 1

page 3

page 7

page 8

page 10

research
08/15/2021

A Qualitative Study of Architectural Design Issues in DevOps

Software architecture is critical in succeeding with DevOps. However, de...
research
05/17/2020

Capturing Software Architecture Knowledge for Pattern-Driven Design

Context: Software architecture is a knowledge-intensive field. One mecha...
research
03/14/2021

Software Architecture for ML-based Systems: What Exists and What Lies Ahead

The increasing usage of machine learning (ML) coupled with the software ...
research
04/14/2022

A Case for Microservices Orchestration Using Workflow Engines

Microservices have become the de-facto software architecture for cloud-n...
research
07/09/2020

A Reference Software Architecture for Social Robots

Social Robotics poses tough challenges to software designers who are req...
research
12/01/2022

An Extended Model of Software Configuration

Feature toggles and configuration options are modern programmatic techni...

Please sign up or login with your details

Forgot password? Click here to reset