Microservices and Their Design Trade Offs: A Self Adaptive Roadmap
Migrating to microservices (microservitization) enables optimising the autonomy, replaceability, decentralised governance and traceability of software architectures. Despite the hype for microservitization the state of the art still lacks consensus on the definition of microservices, their properties and their modelling techniques. This paper summarises views of microservices from informal literature to reflect on the foundational context of this paradigm shift. A strong foundational context can advance our understanding of microservitization and help guide software architects in addressing its design problems. One such design problem is finalising the optimal level of granularity of a microservice architecture. Related design trade offs include: balancing the size and number of microservices in an architecture and balancing the nonfunctional requirement satisfaction levels of the individual microservices as well as their satisfaction for the overall system. We propose how self adaptivity can assist in addressing these design trade offs and discuss some of the challenges such a selfadaptive solution. We use a hypothetical online movie streaming system to motivate these design trade offs. A solution roadmap is presented in terms of the phases of a feedback control loop.
2016 IEEE International Conference on Services Computing (SCC)