
Microservice-based Architectures: An Evolutionary Software Development Model
Author(s) -
Aziz Fellah,
Ajay Bandi
Publication year - 2021
Publication title -
epic series in computing
Language(s) - English
Resource type - Conference proceedings
ISSN - 2398-7340
DOI - 10.29007/1gx5
Subject(s) - microservices , computer science , software engineering , software development , service oriented architecture , software evolution , component based software engineering , software architecture , software , distributed computing , operating system , software construction , programming language , web service , cloud computing
Microservices have recently emerged as an architectural style that gained widespread popularity in industries. Not long time ago, software applications were designed monolith- ically, that is all components were woven together as one single executable artifact unit sharing the resources of the same machine. In this paper, we look at microservice architec- tures through evolutionary lenses as it does not capture the essence of a new software move- ment. Microservices offer a new trend in software architecture and deliver a set of benefits and best practices. However, this is by no means without their own share of challenges and problems that are self-inflicted or inherited from its predecessors (i.e., component-based software architecture (CBSA), service-oriented architecture, (SOA), and service-oriented computing (SOC). The evolution of these different paradigms and their gradual interweav- ing have fostered the development of microservices afterwards. We introduce two finite state-based formalisms called, monitoring microservice automata (MMA) and container microservice automata (CMA). The former is a powerful and parallel formalism to model microservices’ infrastructures, including monitoring microservices’ functionalities, resource usage, compositions, and interface operations. The later models each microservice func- tionality independently as an automaton that accounts for local behavior that contains a microservice and its code. Such as code is required to run within an isolated environment and a system which is fully supported by MMA. As another phase of the evolution of ag- ile software development, microservice architectures have made their footprints in several industries such as Amazon, Twiter, PayPal, LinkedIn, Netflix, and SoundCloud.